It's been a while since the last Journal, so instead of a Book Review of the Month, we present those reviews that have scored a whopping 10 out of 10 horseshoes during the last year.
Mastering Regular Expressions by Jeffrey E. F. Friedl
"Mastering Regular Expressions" takes a great book and modernizes it to include the latest programming languages. The book starts out with assuming you know anything about Regular Expressions -- aside from the concept to be interested in picking up the book.
The author introduces regular expressions through examples and quickly introduces the constructs. The second third of the book goes into the details of how regular expressions are processed. This includes correctness and efficiency issues. The final third on the book goes over the syntax in Java, .NET, Perl and PHP. Tools like grep and awk are described in the text as well.
An alternate title for this book would have been "Thinking in Regular Expressions." Even if you think you know regular expressions, this book teaches you how much more there is to learn. It also teaches you some of the finer points of regular expressions in your favorite programming language along with cross references to the earlier part of the book.
The author uses good analogies to make the text understandable. After awhile, the concepts get so complicated that you have to read it many times to understand. A typically O'Reilly book. I've only had this book two weeks and I've already used it to make me a more effective developer!
More info at amazon.com
Release It! by Michael Nygard
Many of the texts on software engineering discuss following some methodology to produce an ideal design. Working developers quickly learn that the ideal is rarely reality and things happen once we release software out into the wild. Michael Nygard's "Release It!" picks up where these other books leave off.
Nygard talks about all the things that can and will go wrong in the finely crafted software we were sure was ready for production. A full two-thirds of the book is focused on capacity and stability issues including patterns and anti-patterns for both. The remainder of the book deals with general design issues as well as maintaining health and status in an operational system. "Release It!" provides many first hand accounts to illustrate his points, beginning with the Exception that grounded an airline, and these stories serve as excellent motivators. It's better to learn from the mistakes of others, and I really appreciated the detail Nygard went into addressing some of these horror stories.
The Pragmatic Programmers have a few "must read" books and "Release It!" is another one. After reading it and heeding its advice, you'll feel a bit better knowing that your software is better prepared for the rigors of production.
More info at amazon.com
Continuous Integration by Paul Duvall, Steve Matyas and Andrew Glover
"Continuous Integration" is part of the Addison Wesley series. This series includes books like "Refactoring to Patterns". "Continuous Integration" definitely meets the standards of this series.
Each chapter describes CI related practices. There is a chapter dedicated to risks reduced by CI including anti-patterns like "It works on my machine." Each chapter ends with questions to get you thinking about CI in YOUR process. I particularly like how the authors address the "CI is good but my project is special" problem.
The authors give examples in different languages including Java, .NET and Ruby. The appendices on resources and tools are very useful. The book goes beyond CI and addresses continuous inspection and deployment. My only problem when reading the book is that I forgot I was supposed to be writing a review. It was so good, I just got caught up in the book!
Do check out the companion website integratebutton.com. It currently contains video examples of three practices described in the book. The materials are presented in slide and diagram format. It reinforced the book nicely because it was like a guru explaining his experiences. It also goes into much more detail than the book has room for on each topic.
This is an excellent book and the website adds to it!
More info at amazon.com