TDD and Refactoring Help

Clean Code Course by Uncle Bob

  • 2시간씩 온라인으로 1주에 하나의 주제씩

  1. Clean Code 1: What does it mean to be clean?

    • The Fragile Premise.

    • The Grand Redesign.

    • Code Rot.

    • What is Clean Code?

  2. Clean Code 2: Functions.

    • Some Bad Code.

    • Function size.

    • Do one thing.

    • Extract till you Drop.

    • Class Discovery.

  3. Clean Code 3: Function Structure.

    • The Fan-out problem.

    • Avoiding Switch Statements.

    • Managing Function Arguments.

    • Side Effects and Temporal Couplings.

    • Command/Query Separation.

    • Exception Handling.

    • DRY

    • Structured Programming

  4. Clean Code 4: Meaningful Names.

    • Length and Scope

    • Revealing Intent.

    • Disinformation.

    • Meaningful Distinctions.

    • Encodings.

    • Mappings.

  5. Clean Code 5: Comments.

    • The proper use of comments.

    • Good Comments.

    • Bad Comments.

  6. Clean Code 6: Formatting.

    • Formatting Matters.

    • Vertical Formatting.

    • Horizontal Formatting.

    • Coding Standards.

  7. TDD 1: The Three Laws.

    • Discipline.

    • Why TDD?

    • Debugging.

    • Documentation.

    • Design.

    • Maintaining Control.

    • Clean Tests.

  8. TDD 2: Specificity and Transformations.

    • What/how to test.

    • Getting Stuck.

    • Transformation Priority Premise.

  9. TDD 3: Test Design.

    • Fragile Tests.

    • Decoupling tests and production code.

    • The specificity/generality division.

  10. TDD 4: Mocking and Patterns.

    • Mocking History.

    • Dummies

    • Stubs

    • Spies

    • Mocks

    • Fakes.

    • Test Specific Subclass.

    • Self Shunt.

    • The Humble Object

  11. TDD 5: The Big Picture.

    • When TDD works, and when it doesn’t.

    • Acceptance testing.

    • The testing pyramid.

  12. Clean Agile 1: Executive Summary.

    • Agile Overview.

    • Planning in detail.

  13. Clean Agile 2: Engineering.

    • TDD

    • Refactoring

    • Simple Design

    • Pairing/Mobbing

    • Continuous Build/Integration/Deployment

    • Summary.

Last modified: 14 June 2024