Page Details
access: Public image: https://covers.openlibrary.org/b/OLID/undefined-L.jpg publicUrl: https://openlibrary.org/works/OL17618370W read: Bool True onlineRating: Number 4.34 pages: Number 444.0 published: 2025-07-21 personalRating: Number 7.0 year: Number 2008.0 author: Robert C. Martin creationDate: 2025-06-01 modifiedDate: 2025-07-21 type: Book lastRead: 2024
I think it’s a good book for just thinking about code cleanliness and hygiene. Put to words very well a few concepts every software developer should know. Would recommend to anyone as they’re starting off.
Code examples written in #Programming_Language/Java
Notes
Chapter 15 JUnit Internals
A nice super beginner introduction to JUnit.
Alludes to Kent Beck and Eric Gamma creating the first JUnit implementation on a flight, see Kent Beck on creating JUnit (YouTube).
Is a backwards way of describing the use and benefit of [[Test Driven Development]].
Chapter 16 Refactoring SerialDate
Mostly skimmed over this. It applies the techniques previously described in the book to do so. It’s a refactoring exercise explained. Was a bit painful to read through it thoroughly, a lot of repetition of principles previously stated with examples.
Chapter 17 Smells And Heuristics
Flew through this chapter. It has lots of pretty easy to understand, widely applicable rules of thumbs about software development. Some are from [[Refactoring]].
[!quote] E1: Build Requires More Than One Step Building a project should be a single trivial operation. You should not have to check many little pieces out from source code control. You should not need a sequence of arcane commands or context dependent scripts in order to build the individual elements. You should not have to search near and far for all the various little extra JARs, XML files, and other artifacts that the system requires. You should be able to checkout the system with one simple command and then issue one other simple command to build it.
[!quote] E2: Tests Require More Than One Step You should be able to run all the unit tests with just one command. In the best case you can run all the tests by clicking on one button in your IDE. In the worst case you should be able to issue a single simple command in a shell. Being able to run all the tests is so fundamental and so important that it should be quick, easy, and obvious to do.