Wrote by Robert C. Martin
(1) Can you Spot the Differences?
(2) A tale of two apps below
- One enormous class. => 1300 lines
- 26 data members
- 40 public methods named “setFlagsForLaterProcessing”
- Long functions
- Badly named variables
- Tens of classes
- Several packages
- “Board”, “Game”, “Strategy” classes
- Small functions
- Comprehensive unit tests
(3) The User can’t tell
(4) Clean code == happy coding jobs
- ”If by life you were deceived, Don’t be dismal, don’t be wild!”
–Pushkin - If horrible code sucks the life out of you, what would you do?
(5) Remember it!
(6) Two reasons for you
(7) Foreword
(8) There will be code
“Nonsense! We will never be rid of code, because code represents the details of the requirements.”
(9) Bad code
- Kent Beck’s book Implementation Patterns. He says, “…this book is based on a rather fragile premise: that good code matters….”
- 1.“It was the bad code that brought the company down.”
- 2.“Of course you have been impeded by bad code. So then—why did you write it?”
- 3.“LeBlanc’s law: Later equals never.”
(10) The total cost of owning a mess
- No change is trivial
- The productivity of the team continues to decrease
- Add more new staff to the project in hopes of increasing productivity
- There is no way at all in the end