Cover of The Pragmatic Programmer by Andrew Hunt, David Thomas - Business and Economics Book

From "The Pragmatic Programmer"

Author: Andrew Hunt, David Thomas
Publisher: Addison-Wesley Professional
Year: 1999
Category: Computers

🎧 Free Preview Complete

You've listened to your free 10-minute preview.
Sign up free to continue listening to the full summary.

🎧 Listen to Summary

Free 10-min Preview
0:00
Speed:
10:00 free remaining
Chapter 2: A Pragmatic Approach
Key Insight 1 from this chapter

The Essence of Good Design

Key Insight

Good software design is fundamentally about being easier to change. This 'Easier to Change' (ETC) principle asserts that a well-designed system adapts to its users through simple modifications. All recognized design principles, such as decoupling, the single responsibility principle, and effective naming, are specific manifestations of ETC. Decoupling isolates concerns, simplifying changes to individual parts. The single responsibility principle ensures that a shift in requirements affects only one module. Good naming significantly improves code readability, which is essential for efficient modification.

ETC operates as a guiding value in decision-making, subtly directing choices during development, rather than a rigid rule. Cultivating this mindset requires deliberate reinforcement; developers should consistently question if their actions make the system easier or harder to change, applying this query to every task, from saving a file to fixing a bug. While common sense often accurately predicts future changes, in uncertain scenarios, the most 'easy to change' approach involves making code replaceable, emphasizing decoupling and cohesion to prevent it from becoming a future impediment.

Uncertain situations also present opportunities to develop design instincts. Documenting design choices, potential changes, and tagging source code enables later review and feedback on how effectively those decisions supported actual modifications. This reflective analysis helps refine intuition for similar future challenges. All specific design concepts discussed are driven by this overarching ETC principle, reinforcing its central role in producing superior, faster, and more robust code, making the development process appear effortless.

📚 Continue Your Learning Journey — No Payment Required

Access the complete The Pragmatic Programmer summary with audio narration, key takeaways, and actionable insights from Andrew Hunt, David Thomas.