Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Notice the pattern that I’ve quite deliberately set up in introducing these three programming paradigms: Each of the paradigms removes capabilities from the programmer. None of them adds new capabilities. Each imposes some kind of extra discipline that is negative in its intent. The paradigms tell us what not to do, more than they tell us what to d
... See moreRobert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Object-oriented programming imposes discipline on indirect transfer of control.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Functional programming imposes discipline upon assignment.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Ultimately, we can arrange these four couplets into priorities: 1. Urgent and important 2. Not urgent and important 3. Urgent and not important 4. Not urgent and not important Note that the architecture of the code—the important stuff—is in the top two positions of this list, whereas the behavior of the code occupies the first and third positions.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
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. Unfortunately, they often focus on one to the exclusion of the other. Even more unfortunately, they often focus on the lesser of the two values, leaving the software sy
... See moreRobert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
when you get software right, something magical happens: You don’t need hordes of programmers to keep it working. You don’t need massive requirements documents and huge issue tracking systems.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Structured programming imposes discipline on direct transfer of control.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Dijkstra once said, “Testing shows the presence, not the absence, of bugs.” In other words, a program can be proven incorrect by a test, but it cannot be proven correct. All that tests can do, after sufficient testing effort, is allow us to deem a program to be correct enough for our purposes.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
The first value of software is its behavior. Programmers are hired to make machines behave in a way that makes or saves money for the stakeholders.
Robert C. Martin • Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Getting software right is hard. It takes knowledge and skills that most young programmers haven’t yet acquired. It requires thought and insight that most programmers don’t take the time to develop. It requires a level of discipline and dedication that most programmers never dreamed they’d need. Mostly, it takes a passion for the craft and the desir
... See more