Learning Hours by Tag
Find a learning hour by a particular tag:
Approval Testing
- Leap Years with Approvals
 - Data-Driven Testing with Approvals
 - Discover and Formulate Scenarios for the Lift Kata
 - Printer Design
 - Lift Kata with Approvals
 - Filtering output that varies
 
Behavior Driven Development
- Leap Years with Approvals
 - Data-Driven Testing with Approvals
 - Example Mapping
 - Using TDD to write a Leap Years function
 - Example-guided design
 - Discover and Formulate Scenarios for the Lift Kata
 - Printer Design
 - Double-Loop TDD
 - Lift Kata with Approvals
 - Gherkin intro
 - Outside-in TDD
 
C/C++ Programming
- Supplying User Input via stdin
 - Refactoring Without Tools
 - Writing tests for pure functions
 - Sandboxing Introduction
 - TDD a state machine
 - From Struct to Class
 - Extracting Data Clumps
 - Parameterized Tests in Doctest
 - Test Fixture Introduction
 - TDD a lamp microcontroller
 - Test Fixture design
 - Move the patient into the surgery
 - Cover the patient with tests
 - Refactor the Patient for Testability
 - Return the patient
 
TextTest (Approval Testing Tool)
- Supplying User Input via stdin
 - Sandboxing Introduction
 - Filtering output that varies
 - TDD with TextTest
 
Architecture
- Simon Brown's C4 model - Intro
 - Modelling vs Diagramming
 - Simon Brown's C4 model - Container diagrams
 - The Divio Documentation System
 - User Documentation and code snippets
 - Architecture Decision Records
 
Reading Code
Legacy Code
- Code Smells - Introduction
 - Renaming Variables, Fields and Types
 - Reading by Renaming
 - Code Reading - Common Code Smells
 - Identify Paragraphs in Long Methods
 - Lift-Up Conditional Introduction
 - Lift-Up Conditional on Gilded Rose
 - Simplify Conditional
 - Peel - a strategy for difficult to test code
 - Strategy - Slice
 - Preparatory Refactoring
 - Move the patient into the surgery
 - Cover the patient with tests
 - Refactor the Patient for Testability
 - Return the patient
 
DevOps
Teamwork
Refactoring
- Vocabulary for Refactoring
 - Replace Nested Conditional with Guard Clauses
 - Misconceptions about Refactoring
 - Primitive Obsession
 - Refactoring Without Tools
 - Renaming Variables, Fields and Types
 - Design in the Red step
 - Change Signature
 - From Struct to Class
 - Extracting Data Clumps
 - Identify Paragraphs in Long Methods
 - Idiomatic Code
 - Keyboarding skills
 - Lift-Up Conditional Introduction
 - Split Loop
 - Replace Conditional With Polymorphism
 - Decompose Conditional
 - Refactoring Golf
 - Mending Law of Demeter Issues with Refactoring Tools
 - Lift-Up Conditional on Gilded Rose
 - Parallel Change
 - Roll Up Loop
 - Simplify Conditional
 - Split Phase
 - Split Variable
 - Preparatory Refactoring
 - Refactor the Patient for Testability
 - Return the patient
 
Small Steps
- Using TDD to write a Leap Years function
 - Design in the Red step
 - Example-guided design
 - Golden Rule of TDD
 - Selecting and ordering test cases
 - TDD cycles
 - Test Order
 - TDD a state machine
 - Iterative or Incremental
 - Fluency with TDD
 - TDD with a list
 - Make a test list
 - TDD a lamp microcontroller
 - Parallel Change
 - Take Smaller Steps
 - Triangulation
 - Slicing a task using ZOMBIES
 - Adding Behavior Instead Of Breaking Behavior
 - Outside-in TDD
 
Test Design
- Asserting on Collections of Objects
 - Benefits of Arrange - Act - Assert
 - Test Desiderata
 - Unit Tests Should Find Bugs
 - Test Names - the Osherove pattern
 - Test Doubles Intro
 - When you need a stub
 - Arrange - Act - Assert
 - Parameterized Tests in Doctest
 - Test Fixture Introduction
 - Four Pillars of a Good Test (Khorikov)
 - Parameterized Tests
 - Characteristics of Unit tests
 - Start with the Assertion
 - Test a Bug
 - Three parts of a test
 - Unit Test FIRST properties
 - Stubbing Dependencies
 - When you need a spy
 - Slicing a task using ZOMBIES
 - Custom Assertions
 - Test Fixture design
 - Test Fixtures - Readability vs Duplication
 - Styles of Unit Tests
 - Refactoring test inputs with Test Data Builders
 - Faking Dependencies
 - When you need a fake
 - When you need a mock
 - Gherkin intro
 - Mocking Dependencies
 - When to use a Test Double
 
Test Doubles
- Test Doubles Intro
 - When you need a stub
 - Stubbing Dependencies
 - When you need a spy
 - Faking Dependencies
 - When you need a fake
 - When you need a mock
 - Move the patient into the surgery
 - Mocking Dependencies
 - Cover the patient with tests
 - When to use a Test Double
 
Designing Unit Testable code
- Beck's 4 rules of simple design
 - The Dependency Inversion Principle
 - Reading by Renaming
 - Overdesign
 - Writing tests for pure functions
 - One function at a time, bottom up
 - Testing Private Methods
 - Mending Law of Demeter Issues with Refactoring Tools
 - Identify and Resolve Law of Demeter Violations
 - Peel - a strategy for difficult to test code
 - Strategy - Slice
 - Complexity / Collaborator quadrant analysis