Clean Craftsmanship

Author: Robert C. Martin
Publisher: Addison-Wesley
Date: November 2021
Pages: 416
ISBN: 978-0136915713
Print: 013691571X
Kindle:B095C16LSW
Audience: General
Rating: 4
Reviewer: Mike James
Well, I'm a clean craftsman - are you?

Robert C. Martin, usually known as Uncle Bob, has written at least 15 books and the uncharitable might say the same book 15 times. In case you have missed out on the cult of Bob, all I really need to tell you is that he is credited with inventing SOLID and being a promoter of Test Driven Design and Agile. However these aren't his real claim to fame - being an inspirational guru probably is. Not everyone agrees with his exact prescriptions for better code but you can't help like the intent - better code.

Banner

Books by Uncle Bob, how did he come by that moniker which he claims to dislike, are always very readable and very persuasive. There is an element of the suspension of critical faculties brought about by good humoured story telling. At the end of a comparison you are generally in agreement. It is usually only much later you start to think about the validity of the case. In this book I was taken by the comparison between double entry book-keeping, yes double entry book-keeping and test driven design. The idea is that double entry book-keeping made it possible to see what the inputs and the outputs were and so for the first time made running a business possible. So too TDD makes clean software possible for the first time. As a long time anti-TDD programmer, although I'm obviously not anti-tests per se, I found the argument compelling - yes I was convinced. Then I put the book down and all the counter arguments came flooding back - well at a trickle at least.

I'm not asking you to agree with me I'm just illustrating a common occurrence while reading the book - be on your guard. I think what I'm saying is that Uncle Bob is an avuncular salesman capable of selling whatever is going. I think he believes in what he is saying, but I also think he could change his mind and sell the new idea just as effectively. OK, I can't prove the last part, it's just a feeling I get as I read.

Now at this point you are probably thinking that this is all a very bad thing. It isn't. This particular book is motivational. It makes you want to get out of your seat and... or is it get into your seat as we are programming, .... do better. Uncle Bob's books aren't academic works on methodology but they sure are a pick-me-up.

 

This particular volume covers the psychological aspects that affect how clean the code is that a programmer produces. I quote: 

  • Moving towards the "north star" of true software craftsmanship: the state of knowing how to program well
  • Practical, specific guidance for applying five core disciplines: test-driven development, refactoring, simple design,
  • collaborative programming, and acceptance tests
  • How developers and teams can promote productivity, quality, and courage
  • The true meaning of integrity and teamwork among programmers, and ten specific commitments every software professional should make

Overall there is less technical focus in this book than the others which makes it even more "motivational". The book is divided into three parts:

I Craftsmanship - a look at what you are aspiring too and how TDD can help change your life through refactoring.

II The Standards - business aspirations such as how low we are prepared to reduce quality just to ship the software.

III Ethics - how to work with others including source control and teamwork

If you have read any other book of this sort you probably don't need to read this one, but it is fun - but don't take it hook, line and sinker -- put up a fight before Uncle Bob reels you in.

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


Data Structures and Program Design Using Java

Author: D. Malhotra, N. Malhotra
Publisher: Mercury Learning & Information
Pages: 430
ISBN: 9781683924647
Print: 1683924649
Kindle: B085W8GFW9
Audience: Java developers
Rating: 3
Reviewer: Alex Armstrong
Java is a good language to implement data structures.



Classic Game Design, 2nd Ed

Author: Franz Lanzinger
Publisher: Mercury
Pages: 293
ISBN: 978-1683923855
Print: 1683923855
Kindle:  B07S3ZW1Z8
Audience: Beginners to creating desktop games
Rating: 3
Reviewer: David Conrad
Subtitled, From Pong to Pac-Man with Unity, this is a very odd book. Don't let that put you off because s [ ... ]


More Reviews

Last Updated ( Monday, 05 September 2022 )