This book does justice to its title and subtitle- it clearly tells you the basic design principles to write good code which is easy to read, debug and extend. At first glance the title may seem misleading as it uses the word “Agile Developer” but there isn’t much specific to agile in the book, though familiarity with terms like Scrum or Kanaban or TDD would be an added advantage.
Salient features of the book:
- Emphasis is on the basic design principles like Cohesion, Coupling, Encapsulation, Redundancy, Coding to Interface. These are further built upon to introduce/redefine the ideas.
- Covers each concept in depth and with the aid of repetition of concepts helps in grooving them into the developers mind.
- References to other Books which cover a referred concept in depth which can help in in-depth study.
- Appendices with extra information to aid in better understanding.
- Concepts explained with simple examples to drive home the concept.
- People not familiar with coding/new to it might not find the book very appealing, hence I would recommend the book to someone who has worked on a large codebase and may be some legacy code (not dating back to 80s).
- Suggestion would be to read the Appendix first, might help for people who are not familiar with UML notation. Basic design principles are also explained there.
- Familiarity with GoF design patterns is a PLUS, as these have been referred all over the book.
- One can visit the references provided in each chapter to read up more.
So, if you are thinking of picking this book- I would say go ahead, you can always re-read it to refresh the concepts.
This review was originally posted at: Javaranch Book Review and I received a copy of the book for the reveiw.