+ January 27, 2020 (9:30pm – 12:30am IST)
+ Robert C. "Uncle Bob" Martin
- SOLID principles of software design
- Clean Clode basics
- Ensure that dependencies are well managed so that the code remains flexible, robust, and reusable
- Understand costs and trade-offs associated with object-oriented design and get a leg up in ensuring that your code base is much cleaner
- Professional practices
Segment 1: Software Rot - Messy Code - Software Maintenance Cost - Degrading Designs - Other Factors (Rigidity, Fragility, Immobility, Viscosity, Needless Complexity, Needless Repetition, Opacity) - Code Smells
Segment 2: Remedies - Manage Dependencies - Separate Concerns - Applying Principles of Class Design - Attributes of Good Design
Segment 3: Clean Code - Clean Code Separates Levels of Detail - Clean Code Tells a Story - Clean Code Needs Few Comments - Clean Code Has Intention-Revealing - Clean Code Has Small Methods - Clean Code Has Command/Query Separation ...And MUCH More!
Q&A
Break (length: 5-10 min)
Segment 4: Professionalism - Understandable Code Doesn’t Just Happen - “But we don’t have time!” - Professional Responsibility - Make it YOUR Responsibility!
Segment 5: Test-Driven Development - The Three Laws of TDD - The Benefits of TDD - Parachute - Objections Heard (but not believed) - Test-Driven Development Cycle - Transform Design with Small Steps
Segment 6: SOLID - The History of SOLID - SRP -- The Single Repository Principle - OCP -- The Open Closed Principle - LSP -- The Liskov Substitution Principle - ISP -- The Interface Segregation Principle - DIP -- The Dependency Inversion Principle
Section 7: Practices - Practices that Fight Rot - Rules of Simple Design - Automated Testing - TDD & Refactoring - Transform Design with SMall Steps - Pair Programming - Collective Ownership - Continuous Integration
Conclusion - SOLID Review - Other Resources