I wanted to share another great book with everyone. Lately I’ve been doing a lot of development using PHP with the CakePHP framework. What is CakePHP? CakePHP is an Open Source web application framework for producing web applications. It is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT license. CakePHP provides an extensible architecture for developing, maintaining, and deploying web applications. There are plenty of tutorials available on the web for beginners that wish to utilize all that the CakePHP framework has to offer but if you want more in-depth knowledge and would like to begin developing more sophisticated applications then CakePHP 1.3 Application Development Cookbook is the right book for you.
Inside the Cookbook you will find a straightforward and easy to follow format, a selection of the most important tasks and problems, carefully organized instructions for solving the problem efficiently, clear explanations of what you did, and shows you how to apply the solution to other situations.
What this book doesn’t seem to cover is everything required to get you started. If you are looking for step by step tutorials starting you off with a “Hello World” example then this book is not for you. I suggest you get familiar with CakePHP before you get started with CakePHP 1.3 Application Development Cookbook. This book seems to be more centered around expanding your knowledge of the CakePHP framework. The book is very well written and contains over 60 great recipes for developing, maintaining, and deploying web applications.
If you are already familiar with the PHP language and CakePHP and want to build upon your knowledge to create more sophisticated web applications then I urge you to give this book a try. If nothing else it would be great to add to your reference collection. Below you will find a link to purchase this book on Amazon as well as a link to preview the 1st chapter of CakePHP 1.3 Application Development Cookbook.
Have you developed any web apps using CakePHP? Have you read this book? What do you think about CakePHP? Would love to hear from my readers. Have a great weekend everyone.
I’ve recently had the pleasure of reading Flash: Game Development by Example by Emanuele Feronato, published by Packt Publishing. This book is fantastic, no matter if you’ve never developed a game before or you’ve made a start but want to refine your skills and build complete, successful projects. Everything is very well structured which makes it easy to move a long at a fast pace. During the course of the book you will get to build 9 classic games with each game introducing new game development skills, techniques, and concepts. By the time you finish the book you will have built 10 complete games and have the skills you need to design and build your own game ideas.
In only 330 pages you will build games with AI, levels, shooting at moving targets, puzzles, scoring systems, time limits, and more. You’ll learn to build games in the style of Concentration, Minesweeper, Connect Four, Snake, Tetris, Astro-PANIC!, Bejeweled, Puzzle Bobble, and BallBalance.
What I like most about Game Development by Example is that the book not only walks you through the process of building these fun games but also does a very good job at explaining how everything works. If you’ve ever wanted to build your own game or are just curious how games are built then you should definitely give this book a try. Check out the link below.
Agile software development (Agile)
- Pros Minimizes feature creep by developing in short intervals resulting in miniature software projects and releasing the product in mini-increments.
- Cons Short iteration may add too little functionality, leading to significant delays in final iterations. Since Agile emphasizes real-time communication (preferably face-to-face), using it is problematic for large multi-team distributed system development. Agile methods produce very little written documentation and require a significant amount of post-project documentation.
Extreme Programming (XP)
- Pros Lowers the cost of changes through quick spirals of new requirements. Most design activity occurs incrementally and on the fly.
- Cons Programmers must work in pairs, which is difficult for some people. No up-front “detailed design” occurs, which can result in more redesign effort in the long term. The business champion attached to the project full time can potentially become a single point of failure for the project and a major source of stress for a team.
Joint application design (JAD)
- Pros Captures the voice of the customer by involving them in the design and development of the application through a series of collaborative workshops called JAD sessions.
- Cons The client may create an unrealistic product vision and request extensive gold-plating, leading a team to over- or under-develop functionality.
- Pros Creates minimalist solutions (i.e., needs determine technology) and delivers less functionality earlier; per the policy that 80% today is better than 100% tomorrow.
- Cons Product may lose its competitive edge because of insufficient core functionality and may exhibit poor overall quality.
- Pros Promotes strong collaborative atmosphere and dynamic gathering of requirements. Business owner actively participates in prototyping, writing test cases and performing unit testing.
- Cons Dependence on strong cohesive teams and individual commitment to the project. Decision making relies on the feature functionality team and a communal decision-making process with lesser degree of centralized PM and engineering authority.
- Pros Improved productivity in teams previously paralyzed by heavy “process”, ability to prioritize work, use of backlog for completing items in a series of short iterations or sprints, daily measured progress and communications.
- Cons Reliance on facilitation by a master who may lack the political skills to remove impediments and deliver the sprint goal. Due to relying on self-organizing teams and rejecting traditional centralized “process control”, internal power struggles can paralyze a team.
Source material from Wikipedia.