Nom | Langage | Durée | From scratch ? | Tests existants ? | Solution ? | Apprentissages | Cas d'utilisation (ex : recrutement n1, formation TDD02, etc) | Mises à jour nécessaires ? |
---|---|---|---|---|---|---|---|---|
Elo Chart | < 3 hours | oui | non | non | Trouver une bonne liste de tests pour implémenter la formule | |||
Tennis Game | < 3 hours | oui | non | non | voir repo EmilyBache pour setup ? | |||
Game Of Life | < 3 hours | oui | non | non | ||||
Online Shopping | < 1 day | oui | non | non | ||||
Archi Clean | Java | 3 hours | non | oui | non | Refactoring API de GameOfLife | Java 8 | |
Archi Clean | Php | 3 hours | non | oui | non | Refactoring API de GameOfLife | ? | |
Archi Clean | Python | 3 hours | non | oui | non | Refactoring API de GameOfLife | - | |
Puissance 4 | > 1 jour | oui | non | à retrouver | TDD01 | |||
Kata Bank | Live code en outside-in de Sandro Mancuso | TDD01 | ||||||
Gilded rose | 3 hours | non | oui | Live code FLA | Pose de tests de caractérisation (boîte noire) | TDD02 | ||
Trip service | 3 hours | Live code Sandro Mancuso | Dépendances | TDD02 | ||||
Trivia | > 1 jour | TDD02 | ||||||
Mars Rover | 1 jour | oui | non | oui | Problématique d’extensibilité du code | TDD03 | ||
Risk Game Of Thrones | > 1 jour | oui | non | non | POO, Data structures | |||
Salle de sport | 3 hours | |||||||
Kuzco | 1 jour | oui | non | oui | ||||
kata-theater | oui | oui | non | |||||
Transitive Dependencies | oui | non | non | Data structures | ||||
Bowling | 3 hours | cf CTH | ||||||
CQRS and Event Sourcing Koans | ||||||||
Roman Numerals | ||||||||
URL Bar Runner |
Langage | Lien |
---|---|
Java | TODO |
Javascript | TODO |
Python | TODO |
- Limite à 1 sur les niveaux d'indentations
- Pas de else
- Single return statement
- Pas de if
- Pas de switch
- Une seule méthode par classe
- Immutabilité
- Respecter la loi de Déméter
- Pas de type primitifs
- Pas de getters/setters
- Maximum deux attributs par classe
- Maximum 50 lignes de code par fichier
- Que des fonctions, pas de classe
- TCR
- Baby steps : revert toutes les 2 minutes si les tests ne sont pas verts
- Pas d'exceptions comme valeur de retour
- Pas de variables globales
- Pas de valeurs de retour
- Pas de debugger ni "printf"
- Mute ping-pong si en pair
- Pas de boucles. Récursif, map, stream
- Que des exceptions
Sources
Pour enrichir la liste, les règles sont les suivantes :
- un repo = un kata dans un seul langage
- un README pour :
- présenter le kata
- objectif(s) pédagogique(s) du kata (pour faciliter la préparation d'une formation, d'un recrutement, etc)
- expliquer le setup
- optionnel : une branche solution avec des pistes de résolution, un step-by-step, ou plusieurs commits pour montrer les étapes de résolution du kata, etc
- Lister les apprentissages
- Extraire les 3 langages principaux pour les katas qui les ont déjà
- Mettre à jour les versions des katas existants si besoin (exemple : PR sur les repos existants)
- Remplir la section des starters en Java, JS, Python
- Proposer des solutions aux katas de la liste qui n'en ont pas encore
- Autre exemples d'exercices/katas : exercism.io