Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions DECISIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,34 @@ Entrées **antéchronologiques** (la plus récente en haut). La date au format `

---

## 2026-06-18 — Ajout de l'outil pédagogique « Clean Code »

- **Contexte** : enrichir le catalogue d'un outil sur les chapitres-clés de
*Clean Code* (Robert C. Martin), sur le même modèle que SOLID (hub + détail),
sans refactor du cœur.
- **Décision** : suivre ADD-A-TOOL.md à la lettre en calquant SOLID. Nouveau
modèle `CleanCodePrinciple` (champs techniques anglais `slug`/`icon`, contenu
FR), constante statique `CLEAN_CODE_PRINCIPLES` (8 chapitres : noms, fonctions,
commentaires, mise en forme, gestion des erreurs, limites, classes, tests),
hub `/clean-code` (grille de cartes) + détail `/clean-code/:chapitre`
(résolution réactive du param, repli vers le hub si slug inconnu, réutilise
`SequentialNavComponent` et `neighborSlug`). Routes lazy, entrée `navLinks`
après SOLID, entrée seed `Tool` `order: 6`. Contenu pédagogique **statique
côté front** ; seul le registre `Tool` passe par l'API (cf. STATE-AND-DATA.md).
- **Options écartées** : (1) réutiliser tel quel le modèle `SolidPrinciple`
(rejeté — le champ `lettre` est propre à l'acronyme SOLID ; on le remplace par
`numero` de chapitre, tout en gardant `nomEn`/`nomFr` qui restent pertinents) ;
(2) un composant de détail générique partagé SOLID ↔ Clean Code (rejeté — même
raison que la factorisation des détails du 2026-06-17 : abstraction « au cas
où », templates de contenu trop proches mais pas identiques) ; (3) servir le
contenu via l'API/seed (rejeté — le contenu enseigné reste statique).
- **Pourquoi** : extensibilité par addition, cohérence visuelle (DA festive,
tokens `--cc-*`, mixins `shared/styles/detail`) et structurelle avec les outils
existants, sans dépendance ni refactor.
- **Trace** : branche `feat/clean-code` — `npm run check` vert (front : lint +
build ; back : lint + 9 tests). Re-seed (`npm run seed`) non lancé (écrit en
base) — à exécuter au déploiement.

## 2026-06-17 — Toolbar (shell) alignée sur la DA festive

- **Contexte** : la toolbar gardait l'esthétique « atelier » sobre (fond
Expand Down
10 changes: 10 additions & 0 deletions backend/seed/data.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,16 @@ const tools = [
available: true,
order: 5,
},
{
slug: 'clean-code',
name: 'Clean Code',
description:
'Les huit chapitres-clés de Robert C. Martin — noms, fonctions, commentaires, erreurs, classes, tests — pour un code qu’on relit sans effort.',
icon: 'cleaning_services',
route: '/clean-code',
available: true,
order: 6,
},
];

const checklist = [
Expand Down
1 change: 1 addition & 0 deletions frontend/src/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export class AppComponent {
{ label: 'Checklist Code Review', link: '/code-review' },
{ label: 'Bonnes pratiques', link: '/bonnes-pratiques' },
{ label: 'Principes SOLID', link: '/solid' },
{ label: 'Clean Code', link: '/clean-code' },
{ label: 'Design Patterns', link: '/design-patterns' },
{ label: 'Claude Code', link: '/claude-code-setup' },
];
Expand Down
14 changes: 14 additions & 0 deletions frontend/src/app/app.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,20 @@ export const routes: Routes = [
(m) => m.DesignPatternDetailComponent
),
},
{
path: 'clean-code',
loadComponent: () =>
import('./features/clean-code/clean-code.component').then(
(m) => m.CleanCodeComponent
),
},
{
path: 'clean-code/:chapitre',
loadComponent: () =>
import('./features/clean-code-detail/clean-code-detail.component').then(
(m) => m.CleanCodeDetailComponent
),
},
{
path: 'claude-code-setup',
loadComponent: () =>
Expand Down
Loading
Loading