What does it mean to constantly address design while building code? In this class we will all jointly develop a small codebase, Randori style. You’ll contribute to the continuous design decisions needed to grow a healthy system while having fun in a fun, slightly boisterous but safe and comfortable environment.
- 
    The value of up-front design 
- 
    The TDD cycle 
- 
    TDD schools 
- 
    Test-first vs. test-after 
- 
    Simple Design - 
        Incrementalism 
- 
        Minimizing duplication 
- 
        Maximizing expressiveness 
- 
        Minimizing speculative design 
 
- 
        
- 
    Other design heuristics - 
        Code smells 
- 
        SOLID 
- 
        Design patterns 
 
- 
        
- 
    Refactoring 
- 
    Dependency management 
- 
    Test doubles / mocks 
- 
    Measuring design health 
- 
    Sustaining quality 
 
       
      