In 'Clean Code: A Handbook of Agile Software Craftsmanship,' Robert C. Martin provides practical advice, best practices, and principles to help software developers write high-quality code. The book emphasizes the importance of code readability, changeability, extensibility, and maintainability. It covers various aspects such as naming conventions, function design, comments, and testing, with a focus on making code easy to understand and modify. Martin also introduces several key concepts, including the 'Boy Scout Rule' and the 'Law of Demeter,' to improve coding practices.
This book, written by the 'Gang of Four' (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides), is a comprehensive guide to software design patterns. It is divided into two parts, with the first part discussing object-oriented design techniques and the second part detailing 23 classic design patterns. The book includes examples in C++ and Smalltalk and has been highly influential in the field of software engineering, emphasizing principles such as programming to an interface rather than an implementation and favoring object composition over class inheritance.
This book by Robert C. Martin focuses on what it means to be a professional software developer. It covers various aspects of software development, including the importance of taking responsibility, saying no when necessary, and committing to tasks. The book emphasizes techniques such as Test-Driven Development (TDD), refactoring, and time management. Martin uses anecdotes and real-life stories from his 42-year career to illustrate key points, making the book engaging and practical. It also delves into social aspects of daily work, such as communication, collaboration, and continuous learning.
Following up on their recent discussion on software design (inspired by Book Overflow!), John Ousterhout and Robert "Uncle Bob" Martin join Carter and Nathan for their first ever joint interview! Join them as they discuss what it was like working together, how the discussion came to be, and what they both learned from the process!
Ousterhout/Martin Discussion: https://github.com/johnousterhout/aposd-vs-clean-code
-- Books Mentioned in this Episode --
Note: As an Amazon Associate, we earn from qualifying purchases.
----------------------------------------------------------
A Philosophy of Software Design by John Ousterhouthttps://amzn.to/3XCPliz (Paid Link)Clean Code by Robert Martinhttps://amzn.to/4iJ4Ttq (Paid Link)
Clean Coder, The: A Code of Conduct for Professional Programmers by Robert C. Martin
https://amzn.to/3E9zf9l (Paid Link)
We, Programmers: A Chronicle of Coders from Ada to AI by Robert Martin
https://amzn.to/42aW194 (Paid Link)
Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
https://amzn.to/4hRbYa3 (Paid Link)
Structured Analysis and System Specification by Tom DeMarco, P. J. Plauger
https://amzn.to/3E0Y7QD (Paid Link)
Practical Guide to Structured Systems Design by Meilir Page-Jones
https://amzn.to/4hNd8mV (Paid Link)
Design by Contract: By Example First Edition by Richard Mitchell, Jim McKim, Bertrand Meyer
https://amzn.to/4i4X6VW (Paid Link)
Structured Programming by Edsger Wybe Dijkstra, C. A. R. Hoare, Ole-Johan Dahl
https://amzn.to/42fXfzX (Paid Link)
On the Criteria To Be Used in Decomposing Systems into Modules by D.L. Parnas
https://wstomv.win.tue.nl/edu/2ip30/references/criteria_for_modularization.pdf
----------------
00:00 Intro
03:11 Origin of the debate
06:52 Motivation for the debate
11:35 How did you settle on the terms of the debate?
14:30 Overcoming Self-Doubt and Engaging with others
20:06 Influences in Developing Design Aesthetics
28:45 Taking time for Deep Thinking vs Shallow thinking
33:58 Writing Code and Reducing Cognative Load
39:05 Encouraging healthy debate
42:38 Coding Style, Retirement, and what’s next
49:40 Final Thoughts
----------------
Spotify: https://open.spotify.com/show/5kj6DLCEWR5nHShlSYJI5L
Apple Podcasts: https://podcasts.apple.com/us/podcast/book-overflow/id1745257325
X: https://x.com/bookoverflowpod
Carter on X: https://x.com/cartermorgan
Nathan's Functionally Imperative: www.functionallyimperative.com
----------------
Book Overflow is a podcast for software engineers, by software engineers dedicated to improving our craft by reading the best technical books in the world. Join Carter Morgan and Nathan Toups as they read and discuss a new technical book each week!
The full book schedule and links to every major podcast player can be found at https://www.bookoverflow.io