Tidy First?
Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
amazon.comGrowing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))
amazon.comStrategic Monoliths and Microservices: Driving Innovation Using Purposeful Architecture (Addison-Wesley Signature Series (Vernon))
amazon.comPractical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series)
amazon.comenvisioned by their original implementors. The more loosely coupled your systems, the easier they are to reconfigure and reengineer.
David Thomas • The Pragmatic Programmer: From Journeyman to Master
At a more technical level, the drive for better testability and deployability (particularly testability) encourages engineers to design systems that separate essential and accidental complexity more effectively. This in turn keeps your options more open for changes, even quite radical changes, in other architectural properties of the system. This a
... See more