GitScrum / Docs
Toutes les Bonnes Pratiques

Développement Backend avec GitScrum | Guide

Organisez efficacement le travail backend. Gérez développement d'API, bases de données et architecture services.

5 min de lecture

Le développement backend implique les APIs, les bases de données et les services qui alimentent les applications. GitScrum aide les équipes à organiser le travail backend avec des exigences techniques claires et des dépendances.

Structure des Tâches Backend

Tâches de Développement d'API

STRUCTURE DE TÂCHE ENDPOINT API :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ TÂCHE API BIEN STRUCTURÉE :                                 │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ BE-100 : Créer Endpoint Export Utilisateurs             ││
│ │                                                         ││
│ │ ENDPOINT :                                               ││
│ │ POST /api/v1/exports/users                              ││
│ │                                                         ││
│ │ REQUÊTE :                                                ││
│ │ {                                                        ││
│ │   "format": "csv" | "xlsx",                             ││
│ │   "filters": {                                          ││
│ │     "created_after": "date ISO",                        ││
│ │     "status": "active" | "inactive"                     ││
│ │   }                                                     ││
│ │ }                                                        ││
│ │                                                         ││
│ │ RÉPONSE (202) :                                          ││
│ │ {                                                        ││
│ │   "export_id": "uuid",                                  ││
│ │   "status": "processing",                               ││
│ │   "estimated_seconds": 30                               ││
│ │ }                                                        ││
│ │                                                         ││
│ │ ERREURS :                                                ││
│ │ 400 : Format ou filtres invalides                       ││
│ │ 403 : Pas de permission d'export                        ││
│ │ 429 : Trop d'exports en attente                         ││
│ │                                                         ││
│ │ IMPLÉMENTATION :                                         ││
│ │ ☐ Valider la requête                                    ││
│ │ ☐ Mettre en file d'attente le job                       ││
│ │ ☐ Créer l'enregistrement d'export                       ││
│ │ ☐ Retourner réponse async                               ││
│ │                                                         ││
│ │ TESTS :                                                  ││
│ │ ☐ Tests unitaires pour validation                       ││
│ │ ☐ Test d'intégration flux complet                       ││
│ │ ☐ Test de rate limit                                    ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ÉLÉMENTS CLÉS :                                             │
│ ✅ Contrat API complet (requête/réponse)                   │
│ ✅ Cas d'erreur documentés                                 │
│ ✅ Checklist d'implémentation                              │
│ ✅ Exigences de test                                       │
└─────────────────────────────────────────────────────────────┘

Travail sur les Bases de Données

STRUCTURE DE TÂCHE BASE DE DONNÉES :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ TÂCHE DE MIGRATION :                                        │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ BE-150 : Ajouter table exports                          ││
│ │                                                         ││
│ │ SCHÉMA :                                                 ││
│ │ ┌─────────────────────────────────────────────────────┐││
│ │ │ exports                                              │││
│ │ ├─────────────────────────────────────────────────────┤││
│ │ │ id: UUID (PK)                                        │││
│ │ │ user_id: UUID (FK → users)                           │││
│ │ │ type: VARCHAR(50)                                    │││
│ │ │ format: VARCHAR(10)                                  │││
│ │ │ status: VARCHAR(20) [pending, processing, done]      │││
│ │ │ file_url: TEXT (nullable)                            │││
│ │ │ error_message: TEXT (nullable)                       │││
│ │ │ expires_at: TIMESTAMP                                │││
│ │ │ created_at: TIMESTAMP                                │││
│ │ │ updated_at: TIMESTAMP                                │││
│ │ └─────────────────────────────────────────────────────┘││
│ │                                                         ││
│ │ INDEX :                                                  ││
│ │ ☐ user_id (filtrer par utilisateur)                    ││
│ │ ☐ status (traiter pending)                             ││
│ │ ☐ expires_at (job de nettoyage)                        ││
│ │                                                         ││
│ │ ROLLBACK :                                               ││
│ │ DROP TABLE exports;                                     ││
│ │                                                         ││
│ │ NOTES DE DÉPLOIEMENT :                                   ││
│ │ • Pas de downtime attendu (nouvelle table)              ││
│ │ • Exécuter en staging d'abord                           ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ CHECKLIST MIGRATION :                                       │
│ ☐ Fichier de migration créé                               │
│ ☐ Rollback testé                                          │
│ ☐ Déploiement staging vérifié                             │
│ ☐ Déploiement production planifié                         │
└─────────────────────────────────────────────────────────────┘

Conception d'API

Contrats d'Abord

DÉVELOPPEMENT CONTRAT-FIRST :
═════════════════════════════

WORKFLOW :
1. Définir le contrat API (OpenAPI/Swagger)
2. Reviewer avec l'équipe frontend
3. Générer mock server
4. Frontend développe avec mock
5. Backend implémente le contrat
6. Intégration et tests

AVANTAGES :
├── Développement parallèle
├── Moins de surprises d'intégration
├── Documentation automatique
└── Tests de contrat possibles

Labels Recommandés

Organisation par Type

LABELS BACKEND
══════════════

PAR TYPE :
├── api - Travail sur endpoints
├── database - Migrations, requêtes
├── service - Logique métier
├── integration - APIs tierces
└── infrastructure - Déploiement, config

PAR COUCHE :
├── controller - Handlers HTTP
├── service-layer - Logique métier
├── repository - Accès données
└── middleware - Auth, logging, etc.

PAR URGENCE :
├── hotfix - Correction production
├── security - Vulnérabilité
└── performance - Optimisation

Bonnes Pratiques

Structurer le Travail Backend

PratiqueBénéfice
Contrats API documentésIntégration fluide
Migrations avec rollbackDéploiement sûr
Tests pour chaque endpointQualité maintenue
Dépendances explicitesPlanification claire
Logs et monitoringDebug facilité

Erreurs à Éviter

ANTI-PATTERNS BACKEND
═════════════════════

❌ Endpoints mal documentés
└── Frontend bloqué, questions constantes

❌ Migrations sans rollback testé
└── Risque en production

❌ Pas de validation des entrées
└── Erreurs cryptiques

❌ Couplage fort frontend-backend
└── Changements difficiles

❌ Pas de monitoring
└── Problèmes invisibles

Solutions Connexes