docling-studio/docs/audit/audits/04-kiss.md
Pier-Jean Malandrino f6030bb2f1 fix(docs): resolve mkdocs strict mode build failure (#145)
- Add all process docs to mkdocs.yml nav (15 missing pages)
- Replace relative links to files outside docs/ with absolute GitHub URLs
- Add docs/audit/ directory (templates + reports)
- Add validation config to allow unlisted audit reports as info-level
2026-04-10 15:11:29 +02:00

43 lines
1.9 KiB
Markdown

# Audit 04 — KISS (Keep It Simple, Stupid)
**Objectif** : verifier que le code reste simple et ne contient pas de sur-ingenierie.
**Cible** : `document-parser/` (hors `.venv/`, `__pycache__/`), `frontend/src/`
---
## Checklist
| # | Item | Poids |
|---|------|-------|
| 4.1 | Pas de design pattern complexe la ou un simple `if` ou une fonction suffit (factory, strategy, observer superflus) | 2 |
| 4.2 | Le code resout le probleme actuel, pas un probleme hypothetique futur (pas de genericite prematuree) | 2 |
| 4.3 | Pas de fonction wrapper qui ne fait qu'appeler une autre fonction sans valeur ajoutee | 1 |
| 4.4 | Utilisation des outils standard (Python stdlib, Vue composables natifs) avant de creer des solutions maison | 1 |
| 4.5 | Configuration simple — pas de systeme de config complexe la ou une variable d'env suffit | 1 |
| 4.6 | Pas d'indirection inutile — le chemin d'execution d'une requete ne traverse pas plus de couches que necessaire | 2 |
| 4.7 | Pas de meta-programmation ou de magie (decorateurs complexes, metaclasses) sauf necessite avere | 2 |
| 4.8 | Les structures de donnees utilisees sont les plus simples possibles (liste plutot que arbre si la liste suffit) | 1 |
---
## Commandes de verification
```bash
# 4.1 — Patterns potentiellement superflus
grep -rn "class.*Factory\|class.*Strategy\|class.*Observer\|class.*Builder\|class.*Singleton" document-parser --include="*.py" --exclude-dir=.venv
# 4.7 — Meta-programmation
grep -rn "__metaclass__\|type(.*,.*,.*)\|__init_subclass__\|__class_getitem__" document-parser --include="*.py" --exclude-dir=.venv
# 4.3 — Fonctions tres courtes (potentiels wrappers inutiles, < 3 lignes)
# Verification manuelle recommandee sur les fonctions identifiees
```
---
## Regles de notation
- Tout item de poids 3 non conforme = ecart `[CRIT]`
- Tout item de poids 2 non conforme = ecart `[MAJ]`
- Tout item de poids 1 non conforme = ecart `[MIN]`