03 - Workflow de Développement
Audience : Développeurs
Durée estimée : 15-30 minutes (lecture)
Prérequis : 02 - Lancement des Services terminé
1. Vue d’ensemble
Section titled “1. Vue d’ensemble”Le workflow de développement suit la méthodologie Vertical Slice Workflow définie dans le SOP (docs/SOP/Standard-operating-procedure.md).
Le cycle de vie d’un objet est : DOC → SPEC → CODE → TEST → INTÉG
2. Cycle de vie d’un objet
Section titled “2. Cycle de vie d’un objet”2.1. Étape 1 — DOC : La Fiche d’Objet
Section titled “2.1. Étape 1 — DOC : La Fiche d’Objet”- Action : Transformer le template générique en fiche d’objet concrète
- Emplacement :
docs/[Couche]/[Dossier]/[nom].objectData.md - Règle d’or : La fiche d’objet est la source de vérité absolue. Le code ne doit jamais diverger de la fiche.
2.2. Étape 2 — SPEC : Contrats d’Entrée/Sortie
Section titled “2.2. Étape 2 — SPEC : Contrats d’Entrée/Sortie”- Action : Documenter les contrats avant toute ligne de code
- Contenu :
- Inputs : Paramètres, headers, body
- Outputs : Status codes, headers de réponse, body
- Side effects : Écritures KV, Queues, R2, Webhooks
- Erreurs : Cas d’erreur et codes HTTP associés
2.3. Étape 3 — CODE : Implémentation
Section titled “2.3. Étape 3 — CODE : Implémentation”- Action : Développement strictement guidé par la fiche d’objet
- Règle : Aucune supposition n’est permise ; la fiche dicte l’implémentation.
2.4. Étape 4 — TEST : Validation à 3 Niveaux
Section titled “2.4. Étape 4 — TEST : Validation à 3 Niveaux”| Niveau | Moment d’exécution | Méthodologie |
|---|---|---|
| Unitaire | Immédiatement après le code | Vitest / Testing Library (composants) ; tests isolés pour Workers (wrangler dev + curl) |
| Intégration | Avant de passer à l’objet suivant du même slice | Test de l’objet avec ses dépendances directes (ex: schéma Sanity + requête GROQ + rendu Astro) |
| End-to-End (E2E) | À la fin du slice complet | Playwright : parcours utilisateur réel (ex: publier un article → webhook → rebuild → recherche Pagefind) |
2.5. Étape 5 — INTÉG : Vérification de Cohérence
Section titled “2.5. Étape 5 — INTÉG : Vérification de Cohérence”- Action : “Integration check” pour s’assurer que le nouvel objet ne casse aucun objet existant
- Méthode : Relance des tests E2E des slices précédents
3. Workflow Quotidien Type
Section titled “3. Workflow Quotidien Type”3.1. Matin
Section titled “3.1. Matin”- Sélectionner l’objet du jour (dans le slice en cours)
- Ouvrir la fiche d’objet associée
- Vérifier le statut des dépendances en amont
3.2. Phase DOC (30-60 min)
Section titled “3.2. Phase DOC (30-60 min)”- Compléter la fiche avec les valeurs réelles
- Définir les contrats d’entrée/sortie
- Rédiger les cas de test attendus
3.3. Phase CODE (2-4h)
Section titled “3.3. Phase CODE (2-4h)”- Implémentation guidée par la fiche
- Tests unitaires itératifs
3.4. Phase INTÉG (30-60 min)
Section titled “3.4. Phase INTÉG (30-60 min)”- Tests d’intégration avec les objets liés du même slice
- Mise à jour de la fiche si la réalité technique a divergé
3.5. Fin de journée
Section titled “3.5. Fin de journée”- Commit formaté :
slice[X]-objet[Y]: implémentation + fiche à jour - Vérification du statut du CI
4. Utilisation de Taskfile
Section titled “4. Utilisation de Taskfile”4.1. Commandes principales
Section titled “4.1. Commandes principales”# Lister toutes les tâchestask --list
# Installer les dépendancestask install
# Lancer le serveur de développementtask dev
# Lancer le Sanity Studiotask dev:studio
# Lancer les Workers Cloudflaretask dev:form-handlertask dev:submission-processor
# Construire l'applicationtask build
# Lancer les teststask test
# Lancer le lintingtask lint
# Vérifier les typestask typecheck
# Vérifier la qualité (lint + typecheck)task check4.2. Commandes Workers
Section titled “4.2. Commandes Workers”# Typecheck des services Workerstask typecheck:services
# Typecheck du form-handlertask typecheck:form-handler
# Typecheck du submission-processortask typecheck:submission-processor4.3. Commandes de nettoyage
Section titled “4.3. Commandes de nettoyage”# Nettoyer tout (node_modules + builds)task clean
# Nettoyer uniquement les node_modulestask clean:deps
# Nettoyer uniquement les buildstask clean:build5. Workflow Git
Section titled “5. Workflow Git”5.1. Créer une branche
Section titled “5.1. Créer une branche”# Se mettre sur developgit checkout develop
# Pull les dernières modificationsgit pull origin develop
# Créer une branche featuregit checkout -b feature/slice-X-tache5.2. Commiter les modifications
Section titled “5.2. Commiter les modifications”# Ajouter les fichiersgit add .
# Commitergit commit -m "feat: description de la modification"
# Pushergit push origin feature/slice-X-tache5.3. Créer une Pull Request
Section titled “5.3. Créer une Pull Request”- Aller sur GitHub
- Cliquer sur “New Pull Request”
- Sélectionner la branche
feature/slice-X-tacheversdevelop - Remplir le template de PR
- Soumettre pour review
6. Dépannage
Section titled “6. Dépannage”6.1. Problèmes courants
Section titled “6.1. Problèmes courants”| Symptôme | Cause probable | Solution |
|---|---|---|
| Fiche d’objet non synchronisée | Code modifié sans mise à jour de la fiche | Mettre à jour la fiche avant commit |
| Tests unitaires échouent | Implémentation incorrecte | Corriger l’implémentation selon la fiche |
| Tests d’intégration échouent | Dépendances mal configurées | Vérifier les dépendances et la configuration |
| Typecheck échoue | Types incorrects | Corriger les types selon l’interface définie |
6.2. Ressources
Section titled “6.2. Ressources”- SOP :
docs/SOP/Standard-operating-procedure.md - Taskfile :
Taskfile.yaml - Documentation Astro : https://docs.astro.build/
- Documentation Sanity : https://www.sanity.io/docs
7. Checklist de validation
Section titled “7. Checklist de validation”Avant de commiter une modification, vérifier :
- La fiche d’objet est à jour
- Les contrats d’entrée/sortie sont documentés
- L’implémentation suit la fiche d’objet
- Les tests unitaires passent
- Les tests d’intégration passent
- Le typecheck passe
- Le linting passe
- Le commit est formaté correctement
8. Prochaine étape
Section titled “8. Prochaine étape”Une fois le workflow compris, passer à : 04 - Tests et Validation
9. Historique des modifications
Section titled “9. Historique des modifications”| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |