Clean Architecture ch1-ch3
20 Feb 2018
Notes on Robert C. Martin - Clean Architecture: A Craftsman’s Guide to Software Structure and Design, chapter 1-3.
The goal of software architecture is to minimize the human resources required to build and maintain the required system.
Two perspectives of software:
- behaviors (functions, features)
- architecture - software must be easy to change, however, when the scope grows, changes become harder and harder.
- Software architects are 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, modified and extended.
- If architecture comes last, then the system will become ever more costly to develop, and eventually change will become practically impossible for part or all of the system.
Paradigms: overview
- structured programming by Dijkstra - goto, if then else, do while until.
- object-oriented patterns - class, constructor, method
Object-oriented programming imposes discipline on indirect transfer of control.
- functional programming - lambda calculus, no assignment
Functional programming imposes discipline upon assignment.