e81d88166b
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Backend : Java, Python, Bash
Points à vérifier en priorité selon le langage. Utiliser la grille de sévérité de SKILL.md.
Java (8 → 25)
- Version cible : vérifier que les features utilisées (records, pattern matching, sealed classes, virtual threads...) correspondent bien à la version de langage réellement ciblée par le module — un usage de feature récente dans un module encore en Java 8/11 est 🔴.
- Gestion d'exceptions : ne jamais avaler silencieusement (
catch (Exception e) {}) → 🔴 si ça masque une erreur réelle, 🟠 sinon. - Null-safety : préférer
Optionalen retour de méthode plutôt que retournernullsans le documenter. - Ressources :
try-with-resourcessystématique pour tout ce qui implémenteCloseable/AutoCloseable(fichiers, connexions DB, sockets). - Concurrence : attention aux collections non thread-safe partagées entre threads ; si virtual threads (Java 21+), vérifier l'absence de
synchronizedbloquant qui annule le bénéfice (pinning). - Build : cohérence Maven/Gradle avec le reste du studio, pas de dépendance ajoutée sans justification.
Python 3
- Typing : encourager les type hints sur les fonctions publiques/API, surtout dans du code partagé entre modules — absence de typing sur une fonction publique = 🟡.
- Gestion d'erreurs :
except Exception:nu ouexcept:bare = 🔴 (masque tout, y comprisKeyboardInterrupt/bugs). - Mutable default arguments (
def f(x=[])) = 🔴, piège classique. - Environnements : vérifier la présence d'un fichier de dépendances explicite (requirements.txt / pyproject.toml) et l'absence d'installs globales non versionnées.
- Context managers (
with) pour tout ce qui ouvre une ressource (fichiers, connexions DB/PostgreSQL, subprocess). - f-strings plutôt que
%ou.format()pour la lisibilité (🔵 suggestion seulement, pas bloquant).
Bash
set -euo pipefailen tête de script sauf raison explicite de ne pas l'avoir → absence = 🟠 (échecs silencieux en cascade).- Toujours quoter les variables (
"$var") sauf besoin explicite de split — variable non quotée dans un chemin de fichier = 🔴 potentiel (injection/špace bugs). - Éviter de parser
ls; préférer les globs oufind -print0/while read -r. - Vérifier les codes de sortie des commandes critiques plutôt que de supposer le succès.
- Scripts destinés à tourner en CI Gitea ou en conteneur : vérifier l'idempotence (peut être relancé sans effet de bord destructeur).