Clean Architecture: A Craftsman's Guide to Software Structure and Design
Rate it:
Open Preview
4%
Flag icon
Architecture is a hypothesis, that needs to be proven by implementation and measurement. —Tom
4%
Flag icon
The only way to go fast, is to go well.
6%
Flag icon
When software is done right, it requires a fraction of the human resources to create and maintain.
6%
Flag icon
The goal of software architecture is to minimize the human resources required to build and maintain the required system.
6%
Flag icon
The measure of design quality is simply the measure of the effort required to meet the needs of the customer. If that effort is low, and stays low throughout the lifetime of the system, the design is good. If that effort grows with each new release, the design is bad. It’s as simple as that.
7%
Flag icon
The developers may think that the answer is to start over from scratch and redesign the whole system—
7%
Flag icon
The reality is less rosy: Their overconfidence will drive the redesign into the same mess as the original project.
8%
Flag icon
Every software system provides two different values to the stakeholders: behavior and structure. Software developers are responsible for ensuring that both those values remain high.
8%
Flag icon
To fulfill its purpose, software must be soft—that is, it must be easy to change.
8%
Flag icon
From the stakeholders’ point of view, they are simply providing a stream of changes of roughly similar scope. From the developers’ point of view, the stakeholders are giving them a stream of jigsaw puzzle pieces that they must fit into a puzzle of ever-increasing complexity.
8%
Flag icon
EISENHOWER’S MATRIX
8%
Flag icon
I have two kinds of problems, the urgent and the important. The urgent are not important, and the important are never urgent.1
8%
Flag icon
The first value of software—behavior—is urgent but not always particularly important.
8%
Flag icon
The second value of software—architecture—is important but never particularly urgent.
9%
Flag icon
This challenge is doubly important if you are a software architect. Software architects are, by virtue of their job description, more focused on the structure of the system than on its features and functions. Architects create an architecture that allows those features and functions to be easily developed, easily modified, and easily extended.