2 April 2021, Marcel Baumann, 25 views
- Overview of the lecture – 2/3 theory and paper exercises, 1/3 computer exercises -
- source code in Java to discuss architecture
- referenced books
- referenced articles
- must read: Additional information
- can read: Historical information
- The source code is the architecture
- Difference between to architect (process) and an architecture (result)
- If you think good architecture is expensive, try bad architecture
- Effectivity vs Efficiency
- Waste in design
- Good architects should be good developers
- Cowboy programmer
- Gold plated architecture
- Costs, ROI, optimum
-
DRY – Don’t Repeat Yourself -, YGNI – You aren’t Gonna Need It -, gardening a solution, legacy solutions, geriatric systems,
- Example of architecture styles:
- N-Tier,
- pipes and filter, - streams in Java -
- client-server, - JEE application servers – barebone servers and VM -
- A money related evolution
- whiteboard,
- batch, - batch module
- reactive, - Java RX
- microarchitecture, - Bounded Domain and parallel development -
- requires Docker and Kubernetes
- hexagon and onion – Business Domain Model -
- P2P – Reliability and fault tolerance -
- OOP Anti-Patterns
- Singletons are evil
- Never return a null value
- Return unmodifiable collections
- No Anemic domain classes
- DTO – Data Transfer Objects – are waste
- Class casting is an object-oriented design error
- Public static methods are suspect
- Abuse of utility classes
- God classes shall be forbidden
- Links
-
Practical part
- IntelliJ IDEA IDE – Analyze code, Gradle, git
- SonarLint plugin
- You could also use SonarQube cloud account
- PlantUML – optionally plugin for IntelliJ IDEA -
- AsciiDoc – optionally plugin for IntelliJ IDEA -
Viewable by everyone.
CC BY-NC licensed.