The software quality imperative
- Consequences of insufficient quality
- The infernal cycle: writing, rewriting
- The concept of technical debt
- Tools and processes: necessary, but not sufficient
- Quality control tools
- Process and formatting
- Limitations
- What is clean code?
Principles of clean design
- General principles
- Founding principles of OOP
- The four principles of Kent Beck
- Importance of naming
- Common sense by acronyms: YAGNI / KISS / DRY / POLA
- Some functional programming principles
- Minimize coupling, maximize cohesion
- SOLID principles
- Cohesion and coupling
- Stability and instability
- Supple design
- Intention-Revealing Interfaces
- Side-Effect-Free Functions
- Defensive Programming
- Conceptual Contours
- Standalone Classes and Closure of Operations
- Declarative Style of Design
- Bonus: the principle of symmetry
Improve the quality of existing code: smells and refactors
- The concepts of smell and refactor
- The smells of Martin Fowler
- Duplicated method
- Duplicated class
- Long method
- Long class
- Primitive obsession
- Brief overview of other smells
- Java effect
- Equality .. or not
- Immutability with holes
- Instant obsolescence
- Hide this exception that I can not see
- ArrayList obsession
- Weak design
- Technical Modules: Service-Dao-Entity
- Generate getters and setters
- Death by nesting: the devil's staircase
- Packages unpacked
- To be or not to be: the inappropriate relationship Is-not-a
- Javadoc and alibi tests
- The editorialist: the intelligence buried in the comments
- The night of living codes
- Properly modify a legacy application
Panorama of other clean design methods
- Test-first design at the service of quality
- Software Craftsmanship
- Standard design bricks
- The business domain as the core of the software: the Domain-driven Design approach
Dernière mise à jour : le 04/05/2024 à 13:05