When you write software, you're not just interacting with operating systems and hardware: You're conversing with everyone who'll ever maintain or extend your code. Programmers who know how to communicate their intentions can create software that's far more successful throughout its entire lifecycle. Whether you realize it or not, you're constantly making decisions that impact how well your code communicates: all day long, sometimes even every minute. Kent Beck's Implementation Patterns will help you make those decisions far more effectively.
Beck has identified no less than 77 new patterns for making sure other humans know exactly what you're after: patterns for creating classes and methods, managing state, controlling program flow, even working with collections and frameworks.
For instance: What's the best way to communicate instance-specific behavior related to a class? When should you declare local variables? How do you clearly express your program's main flow of control, as well as less-frequently-used "exceptional flows"? How do you compose methods that are easier to understand, and when is it appropriate to override or overload methods? How can you take advantage of frameworks without locking yourself in more than necessary?
As you'd expect from the widely admired Kent Beck (Extreme Programming), each pattern is explained clearly and thoughtfully. You'll find plenty of Java examples, too: nothing too fancy for its own good, all of it extremely accessible to virtually any Java programmer.
Any professional writer will tell you that you don't really understand a topic until you try to explain it in writing. Even if, somehow, nobody ever sees your code, Beck's patterns will help you gain a far deeper understanding of what you're trying to accomplish -- so you can write better code from day one.
PHP increasingly offers developers strong object-oriented features. Using these features, PHP developers are leveraging powerful Java/C++-style design patterns, and creating utilities to streamline the entire development process. Matt Zandstra's PHP Objects, Patterns, and Practice illuminates all of this, helping you leverage PHP in complex, mission-critical environments.
Zandstra goes beyond teaching PHP 5's object features to help you think about objects more effectively, and make better design decisions. (He also previews PHP 6's long-awaited namespaces, and shows how to achieve many of the same benefits with PHP 5.)
Next, he migrates the programming industry's key design patterns to PHP: singleton, factory method, decorator, façade, observer, and many more. Finally, in an indispensable "practice" section, he turns to the challenges of building large-scale PHP software -- and the excellent tools now available to help teams document, manage, test, build, and deploy their code.