Skip to content

Repository files navigation

Clean Code Slides

CILicense

Overview

This repository contains slide decks for Clean Code conversations and classes.

Development

Install Node.js 24 or later, Pandoc, and LaTeX. Then install the development dependencies and run the validation and rendering steps:

npm ci --ignore-scripts
make check
make -j

Everything under _site is generated. Each deck renders to a PDF, and the published index page is built from the Curriculum section below via index.template.html and index.lua, so the tables here are the only place the curriculum is edited.

Curriculum

Fundamentals (Yellow Belt)

#Session TypeName
1DiscussionIntroduction
2DiscussionNames++
3Coding Dojo"Change" Refactoring Kata (Python, C++)
4DiscussionFunctions
5Coding DojoFizzBuzz Kata (Python, C++)
6DiscussionFunction Structure
7Coding DojoTennis Kata (Python, C++)
8DiscussionForm
9Coding DojoBowling Kata (Python, C++)
10DiscussionTDD
11Coding DojoRepeat after Uncle Bob
12Discussion"Polly want a message"
13Coding DojoParticipant choice

SOLID (Orange Belt)

#Session TypeName
1DiscussionFoundations of the SOLID principles
2DiscussionThe Single Responsibility Principle
3Coding DojoGilded Rose Refactoring Kata (Python, C++)
4DiscussionThe Dependency Inversion Principle
5Coding DojoSmart Home Refactoring Kata (Python, C++)
6DiscussionThe Interface Segregation Principle
7Coding DojoMedia Player Refactoring Kata (Python, C++)
8DiscussionThe Open-Closed Principle
9Coding DojoExpense Report Refactoring Kata (Python, C++)
10DiscussionThe Liskov Substitution Principle
11Coding DojoGame of Life Refactoring Kata (Python, C++)

Advanced TDD (Green Belt)

#Session TypeName
1DiscussionAdvanced TDD
2Coding DojoRoman Numerals Kata (Python, C++)
3DiscussionClean Tests
4Coding DojoMars Rover Kata (Python, C++)
5Coding MobMars Rover Kata (Python, C++)
6DiscussionTest Design / Test Process
7Coding DojoHyper-optimized Telemetry Kata (Python, C++)
8DiscussionStudent Code Demo
9DiscussionMocking
10Coding DojoTire Pressure Monitoring Kata (Python, C++)
11DiscussionTransformation Priority Premise
12Coding Dojo"99 Bottles of Beer" Kata (Python, C++)
13DiscussionStudent Code Demo 2

Legacy Code (Blue Belt)

#Session TypeName
1DiscussionUnderstanding Legacy Code
2KataIdentifying Legacy Code Kata
3DiscussionBuilding a Safety Net
4KataCharacterization Testing Kata
5DiscussionSafe, Non-Invasive Changes
6KataSprouting & Wrapping Kata
7DiscussionCore Dependency Breaking Techniques
8KataDependency Breaking Kata
9DiscussionAdvanced Topics & Large-Scale Strategy
10KataLarge-Scale Refactoring Kata

Used by

Contributors

Languages