|Dating Design Patterns|
|summary||Elements of reusable objective-oriented paired programming|
Why design patterns are neededMany will attest that the API to the WOMEN platform is somewhat obscure, contradictory and poorly documented. However, if you talk to any randomly selected groups of men, you will discover that the problems they face (whether in Pickup or Relationship states) are fundamentally the same. If there's a common set of problems, shouldn't there be a common set of solutions? Moreover, doesn't it bother you that programming geeks, who advocate code reusability and open-sourcing have not come up with reusable successful solutions for commonly occurring problems and have not documented them?
This book is the attempt to change that and unite all design patterns in a single documentation project. You can read the conversation that led to writing DDP (caution: those of you in love with Design Patterns' concept might have a hard time reading how it was all a hoax by the Gang of Four). Hopefully you will understand the danger of letting this knowledge out (hint: geeks who talk to attractive girls, date and get laid spend less time writing code, which could jeopardize some projects) and not recommend the book to everyone you know. The table of contents is available online as well (in PDF format), and you can see that the book is subdivided into two large sections - introduction and pattern catalog.
Introduction to dating design patternsIn the first part, the authors introduce the concepts of design patterns with several superfluous definitions in an attempt to outdo the academic titles types on Design Patterns in number of formal references and quoted italic text. They also provide the set of anti-patterns, which can be collected by surveying poor implementations of dating patterns. For example, the Iterator anti-pattern is described as "The nag. One of the most taxing on system resources. Also an anti-pattern when used to repeatedly ask the same woman for a date." Many developers fall into fallacy of thinking anti-pattern would do the job when a pattern does not work.
The chapter on refactoring talks about all the issues that must be taken care of before implementing any of the patterns. Each refactoring unit includes sub-sections on Motivation, Mechanics and Example. The motivation part explains how this refactoring unit can help publish an attractive public interface for FEMALE platform. The mechanics part usually includes a bulleted list of what needs to be done for the implementation. The example brings us into more practical world, where we can visualize how the refactoring units "Get a makeover", "Display yourself in a new context through third parties", "Publish a more restricted interface" and "Fake a phone call from an ex-girlfriend" can help interested geek attract female companions.
The second part is nothing more but a collection of 22 existing dating patterns. This part of the book will be even more familiar to those who read the original Design Patterns, as the headings, bulleted lists, sidebar notes and sub-chapter titles are all there. Each pattern is presented in the following format:
- Pattern name
- Problem statement (the authors acknowledge that for most of developers the problems reside in attempting to implement getLaid method successfully on FEMALE platform)
- Forces (why this pattern might lead to successful implementation)
- Solution (overview of what's required for successful implementation)
- Strategies (step-by-step guide with copious notes)
- Benefits and Drawbacks (analysis of when this design pattern makes sense and when it's not appropriate)
- Related patterns
Anyone who's ever been through UML or Design Patterns class will not have a problem with reading the pattern catalog. The pseudocode sometimes used to describe the pattern is somewhat close to Java and uses Camel notation for method calls, state and interface definitions. Luckily the book is void of any humor that design pattern writers usually try to sneak in, and is just plain formal scientific boring writing with SAT-level vocabulary that we all grew to love while reading the Gang of Four series.
The problem statements use clear language, allowing the reader to figure out whether he has the same problem (and thus should read the pattern to find out the solution) or move on to the next pattern. For example, the Jini Singles Bar pattern describes the following problem:
You're a great catch, of course, and you're looking for someone smart, funny, beautiful, who can talk about rock-climbing, Slashdot, politics and 19th century Serbo-Croatian playrights. It would also be nice if she were 24, between 5'6'' and 5'8'', of French extraction, interested in the songs of Owen Margolis, with dark long brown hair. However, you have not yet found this woman.
ConclusionThe point that authors try to emphasize is that Dating Design Patterns is a collection of researched, verified, formalized and proven to work patterns. Of course, there are numerous pages of already available documentation with questionable applicability, as well as HOWTO's from open-source luminaries, but they provide neither the variety of patterns that this book has, nor the exact step-by-step implementations.
As common with design patterns, there are areas where they work perfectly and there are cases, where they are not applicable at all. The collection (full list of patterns with appropriate poster is available from the official Web site) just provides the list of accepted solutions to common problems. Perhaps reading through all 22 patterns is an onerous task and should be left to those in academic world. However, the authors assure that the benefits of successful implementation outweigh the amount of resources that need to be dedicated. Now, if you'll excuse me, that girl from Barnes and Noble with very nice public properties is getting out of the shower and her private members are even more interesting.
Tim's review:Don't buy this book. None of the ideas in it work. Absolute garbage. Haugland's "advice" will not result in flocks of appropriate-sex singles following you out of every coffee bar, bookstore or tango lesson you happen to visit. Repeat: do not buy this book.
You can search for Dating Design Patterns from bn.com, or better yet, straight from the author. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.