MongoDB Applied Design Patterns by Rick Copeland (O’Reilly Media) is another in a series of patterns books that I would highly recommend for the implementer that knows the technology but is trying to discover if a previous solution (via a pattern) has been found for their problem.
As to the reader, MongoDB Applied Design Patterns is not for the MongoDB “Hello World” level implementer. There is a basic assumption that the reader understands how to implement basic MongoDB solutions and is now ready to implement more advanced solutions using established patterns. The Use Cases in the second half of the book were probably the most useful for me. It not only gave me ideas of how to solve certain patterns of problems, but allowed me to explore features of MongoDB that I had not had a chance to explore.
I appreciated that Copeland explored several important topics at the beginning of the book. For example, he takes time to explain how important it is to MongoDB solutions for optimization to be considered at the beginning of the design vs. afterwards. Along with those lessons, Copeland provides detailed examples of the “why” instead of leaving the reader to just trust his statements.
I’d highly recommend MongoDB Applied Design Patterns to the implementer that is ready to move beyond the basics and move into highly viable and scalable solutions using MongoDB pattern as their initial template.
Disclaimer: I received a free electronic copy of this book as part of the O’Reilly Blogger Program
I picked up Head First Design Patterns by Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra while working through some particularly difficult design/code reviews. In these reviews, I found that very few developers actually knowingly use design patterns beyond the most simplistic of forms. In fact, during several interviews, I asked candidates what design patterns they could name and most could not name a single one. However, when I asked them if they had heard of the Singleton Pattern, they immediately began giving examples of writing code to meet this pattern. With this discovery, I quickly began recommending this book to java developers of all levels as a way to renew why we design code the way we do.
Head First Design Patterns quickly gives the reader exposure to some of the most common patterns and why they work. Does this book cover every possible pattern and the intricacies in its use? No. However, it brings to the reader a mode of thought that begins to look at design patterns as a way to solve common problems without “reinventing the wheel.” The examples are relatively simple to understand and the writing style straightforward and logic in its flow.
I recommend Head First Design Patterns to any entry through advanced level developer or designer in the object-oriented world that desires to find a solution to common problems in a way that allows your design/code reviewer and maintainers the ability to understand why the design/code was “done” the way that is was “done” in a less-than-four-hour line-by-line review meeting.