Essayer gratuitement
5 min lecture Guide 764 of 877

Développement Backend avec GitScrum

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