Sponsored links


Valid XHTML 1.0!
Valid CSS!
Product: Book - Paperback
Title: Working Effectively with Legacy Code
Publisher: Prentice Hall PTR
Authors: Michael Feathers
Rating: 5/5
Customer opinion - 5 stars out of 5
Don't maintain code without it!


(Copy of a review found at http://www.masterprogrammer.info)

The Point

If you need to fix, maintain or extend code without tests, and you're trying to do it without having a copy of this book by your side, you might as well just jab yourself in the stomach with a knife. Michael Feathers does for legacy code what the Gang of Four did for design: establish a vocabulary to make it easier to understand and communicate about how to work with legacy code.

The Details

There are some books that we use as references when we teach courses or do some consulting. These are usually the fundamental texts that provide an appropriate foundation for the reader in a given topic area: Java programming, programmer testing, enterprise architecture, what have you. Even before the book had been released, we were recommending it in courses on Test-Driven Development. The reason is clear: true greenfield projects are few and far between. A team trying to adopt Test-Driven Development has enough to learn; we can't leave them to their devices to figure out what they're going to do starting Monday. "How do we deal with the 250,000 lines of untested code we still need to use?" A Master Programmer cannot leave a team like that hanging.

Enter Michael Feathers and his years of experience rescuing legacy codebases. He has distilled his secrets into a collection of fundamental techniques combined with a catalog of strategies and approaches. In many ways, WELC is like other "how to" books: it starts with setting the context for the techniques, describes them with examples, then adds a catalog of ways to break dependencies in the back. One of the things that differentiates this book is the chapter titles. They are whimsical and, as a result, effective. Some examples follow.

* It Takes Forever to Make a Change
* I Need to Make Many Changes in One Area
* My Application Has No Structure
* This Class Is Too Big and I Don't Want It to Get Any Bigger

We have struggled with maintaining existing code, and in the process have had many of the exact complaints that Michael has made into chapter titles. Each chapter is rich with useful examples in Java, C# and C++. You'd be surprised how many requests we get for courses teaching Test-Driven Development in C++, and they have plenty of legacy code to work around! Michael's conversational style gives you the feeling of having him along side while you work, and frankly, you can't get Michael for only USD 45 plus taxes, but the book is a bargain at twice the price.

Post Script

In order to add book reviews to this web site (masterprogrammer.info), we needed to add a feature to a small amount of legacy code in PHP. (We're still learning how to test-drive PHP-based web sites, so we've made the classic mistake of worrying about it later. See how easy it is?) We used techniques like Sprout Method to make safe changes to the code that generates our Self-Study bookshelf while adding the ability to link a book to our review. What more proof do you need? To purchase Michael's excellent book, go back to our Self-Study bookshelf and click on Working Effectively with Legacy Code.



Product: Book - Paperback
Title: Embedded Linux: Hardware, Software, and Interfacing
Publisher: Addison-Wesley Professional
Authors: Craig Hollabaugh
Rating: 5/5
Customer opinion - 5 stars out of 5
Excellent!


I picked this book up -- in a word, excellent. Much of the work in this book is very similar to the current embedded project that my company is working on.
The specific hardware related topics, and the pictures of oscilliscopes and block diagrams will make the hardware people in my company happy -- the scripts and code will me the software people happy.
This book is well written, comprehensive, and a high recommended text for companies undergoing embedded linux project development.



Product: Book - Paperback
Title: CSS Pocket Reference, 2nd Edition (Pocket Reference (O'Reilly))
Publisher: O'Reilly
Authors: Eric Meyer
Rating: 4/5
Customer opinion - 4 stars out of 5
Handy, updated reference (2nd Ed)


This is the companion to the CSS Cookbook. The pocket guide is pretty much an index of classes, elements, and allowed values, with descriptions of each. Of particular interest, though, is the front section which deals with some common layout and compatibility issues, as well as soem definitions that are used as conventions within CSS.

There's not much to say about this guide expect that it lives up to its name - Pocket Reference. As a quick reference to CSS, I haven't found anything easier and better equipped, and Eric Meyer is still the guru, as far as I'm concerned. Buy a couple of copies, dogear some pages, and make your own notes on the margins. Keep one at your desk, and one in your laptop case - you'll use it more than you think!



Product: Book - Paperback
Title: Incident Response and Computer Forensics, Second Edition
Publisher: McGraw-Hill Osborne Media
Authors: Chris Prosise, Kevin Mandia, Matt Pepe
Rating: 5/5
Customer opinion - 5 stars out of 5
Best IR book


This is a great book.
I think it is the best incident response book available.
These guys really know their stuff and the book has a ton of good information.
If you plan to do IR: GET THIS BOOK!!!!