Book review: Adaptive Code via C#
Author: Kasper B. Graversen
This book has a lot to offer. I'd recommend it to junior and senior people any time.
Please show your support by sharing and voting:
Despite the title being fairly narrow (agile and SOLID), there are gold nuggets to be picked here. The target audience of the book are more junior people, but the way most parts of the book take on relentless abstractions and code reuse via wrappers, delegators, adaptors and lambdas, is a great read for anyone. I have 10+ years experience in the IT world, so naturally not all parts of the book was of relevance.
The book contains two major parts, SCRUM and SOLID. And here I may be over simplifying things, since, as stated in the title, we are dealing with "agile coding" not necessarily agile software development.
The SCRUM part was largely irrelevant to me. I appreciate the author acknowledging that agile is not always a good fit - as it is not. The second part pertained how to write good code. The 15 year old SOLID principles from Mr. Uncle Bob are explained in detail. The original writings still freely available online, is around 20 odd pages, if memory serves me, whereas the book takes 170 pages. Good examples are served the reader. Some more elaborate than others.
At times though, I feel as though important stories are left out. Like when reading the chapter on Dependency injection (the D in SOLID) I really miss a discussion on static and dynamic properties (what references can be constructor injected by an IOC framework, and which can't and how you tend to shape your code differently in accordance with this).
But for the most part, the examples are well thought out and often chapters take outset in some sample code which along with explanations are refactored into something better. Here and there the terminology is not as stringent as one would have hoped. For example when explaining polymorphism, is it not clear that it is merely the references that are able to refer to different object of different types. A more longwinded story of objects taking many forms is presented. But those situations are rare, and I was able to live with them without killing myself or burning the book.
The language used is easily understandable for a person whose second language is English. Concepts are well explained and code examples are progressively enhanced, just as you experience when coding.
Great read. Please serve more.