Enforcing Architecture in Legacy Systems
summary
Shows that executable ArchUnit rules make architecture explicit and enforceable in legacy Java code using the Spring PetClinic demo, proving naming rules, layered dependencies and module-cycle checks by analyzing compiled bytecode. Demonstrates a practical workflow: commitable rule library reused across microservices, CI/IDE runs, and a freeze known violations file so teams block new regressions while clearing hundreds (dozens to 500+) of existing violations incrementally. Tests fail on violations, succeed when refactored, and detect cycles and missing security/transaction annotations.
AI-written summary · about
chapters (14)
- 0:00Introduction to legacy systems
- 4:25Architecture erosion in legacy systems
- 9:01Demo project setup
- 11:36Enforcing naming conventions
- 15:59Acknowledging existing violations
- 19:34Structuring code by layers
- 25:17Refining layer structure
- 25:39Checking module dependencies
- 31:37Cross-cutting concerns
- 36:10Technical system structure
- 37:13Domain architecture rules
- 38:18Legacy system improvements
- 41:12Summary and closing
- 42:28Q&A session
related talks
24mUnit Testing Your Architecture
22mArchitecture & ArchUnit
49mBottom-up Architecture: Bridging the Architecture-Code Gap
49mArchUnit: Guarding the Logic of Your Application
42mArchitecture testing with ArchUnit: Implementation for DDD
01h 27mWhoops! Where did my architecture go?
50mBuilding Evolutionary Architectures
01h 34mThe Intersection of Architecture and Implementation
