Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 79 minIntermédiaire

Phase 2 : réaliser la solution en une heure

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • découper l'heure de réalisation en blocs ;
  • livrer le vital avant le confort ;
  • avancer par petits pas testés et sauvegardés avec Git ;
  • rédiger la documentation demandée.

1 exercice corrigé1 schéma

La phase 2 de l'E6 SLAM commence par une heure de préparation pendant laquelle tu réalises, seul et en autonomie, la solution que tu as présentée à la commission, ajustement compris. Tu travailles sur ton environnement, sous ta responsabilité, « dans le respect des consignes de sécurité, de sauvegarde des données et des ressources utilisées ». Ce chapitre organise cette heure pour qu'à la fin, quelque chose fonctionne, soit testé et puisse être prouvé pendant la recette.

L'heure en cinq blocs

0 min5 min35 min45 min55 min60 minRelire, lancer, sauvegarderplan et ajustement, application, tests, mysqldumpLe vitalle plus court chemin vers une solution qui marcheLe confortseulement si le vital est testé et commitéTests et documentation demandéetests automatisés, rapport de test ou doc techniquePréparer la recettedonnées de démonstration, commandes prêtes, notesgit commitgit commitgit commitLes durées sont des repères ; l'ordre, lui, ne change pas.
L'heure de réalisation : le vital d'abord, un commit après chaque étape qui marche

Ces durées sont un repère. L'ordre, lui, ne se discute pas : le vital avant le confort, et du temps gardé pour les tests et la documentation.

Les cinq premières minutes

Ne code pas tout de suite. Ces gestes t'évitent les pires surprises de l'heure.

  1. Relis le verso de l'expression des besoins et corrige ton plan si un ajustement a été demandé.
  2. Lance l'application et les tests existants. Tout doit être vert avant que tu touches au code : sinon, tu ne sauras pas si c'est toi qui as cassé quelque chose.
  3. Sauvegarde la base si tu vas la modifier : mysqldump -u root -p frais > avant-e6.sql. Une migration ratée se répare en une commande.
  4. Vérifie que ton dépôt est propre avec git status, et crée une branche pour l'évolution : git switch -c e6-renvoi.

Le vital avant le confort

Le vital, c'est le plus court chemin vers une solution qui répond au besoin de bout en bout et que la commission peut vérifier. Le confort, c'est tout ce qui l'améliore : l'écran soigné, les messages d'erreur détaillés, la pagination. Pour classer un élément, pose-toi une question : sans lui, la commission peut-elle constater que le besoin est rempli ? Si non, c'est du vital.

Évolution demandéeVitalConfort
Export CSV des notes validées d'un moisroute protégée, requête filtrée, fichier CSV avec en-têtenom de fichier daté, ordre des colonnes, bouton dans le front
Renvoi d'une note avec motifroute protégée, contrôle de l'état, motif obligatoire, stockageaffichage du motif côté salarié, notification
Contrôle des licences à l'installationrefus quand les licences sont épuisées, message clairécran des dépassements avec tri et couleurs

Une règle de sécurité demandée par le sujet, comme « seul un comptable peut… », fait toujours partie du vital : sans elle, la solution ne répond pas à la demande.

Avancer par petits pas testés

Ne code pas quarante minutes avant de tester. Écris cinq à dix lignes, vérifie, puis continue. Un bug ne peut venir que de ce que tu viens d'écrire, et tu le trouves en une minute au lieu de quinze.

Tu viens d'écrire…Tu vérifies avec…
une route vide qui renvoie { ok: true }un appel curl ou Postman
une requête SQLle client MySQL, avant de la mettre dans le code
une migration de baseDESCRIBE de la table et le comptage des lignes existantes
une règle de gestionun test automatisé, ou un appel qui doit être refusé
un écranle navigateur et sa console, ou le formulaire ouvert

Quand une erreur apparaît, lis-la avant de chercher. La première ligne dit quoi (TypeError: Cannot read properties of undefined (reading 'motif')), la première ligne de la pile qui cite ton fichier dit où (controllers/notes.js:42:31). Les lignes qui citent node_modules ne sont pas ton code.

Git, ton filet de sécurité

Un commit après chaque étape qui marche. Si la suivante casse tout, tu reviens en arrière en quelques secondes.

bash
git add -A
git commit -m "renvoi : table renvoi et migration"
# … une tentative qui casse tout …
git restore .              # annule les modifications non commitées
git log --oneline          # l'historique raconte ta démarche

git restore . jette toutes les modifications depuis le dernier commit : vérifie avec git status ce que tu vas perdre avant de la lancer. Tes messages de commit servent aussi pendant la recette : git log --oneline montre à la commission que tu as travaillé par étapes testées. Le cours Git et GitHub détaille ces commandes.

La documentation demandée

L'expression des besoins indique la documentation à présenter « en appui de la solution » : rapport de test, documentation technique, rapport d'incident ou documentation utilisateur. Elle fait partie de la production attendue. Prévois dix minutes et un modèle prêt dans ton dépôt.

DocumentContenu minimal
Rapport de testun tableau : cas testé, données, résultat attendu, résultat obtenu, conforme ou non ; la commande qui lance les tests automatisés
Documentation techniquece qui a changé (tables, routes, fichiers), la migration à appliquer, les règles de gestion, comment tester
Rapport d'incidentle symptôme, comment le reproduire, la cause, la correction, le test qui empêche le retour du bug
Documentation utilisateurce que l'utilisateur peut faire de nouveau, pas à pas, avec le message qu'il verra en cas d'erreur

Un rapport de test court, mais rempli avec de vrais résultats, vaut mieux qu'un rapport long qui décrit des tests jamais lancés. Un exemple complet figure dans l'épreuve blanche n° 1.

Quand tu bloques

Fixe-toi une règle : quinze minutes sans progrès sur un point, tu changes d'approche.

  • Simplifie : la version la plus simple qui répond au besoin (un calcul en JavaScript au lieu d'un pipeline d'agrégation, une requête au lieu d'une procédure).
  • Contourne : passe au point suivant du vital et reviens plus tard.
  • Laisse une trace : un commentaire // À FAIRE : … qui dit ce qui manque et comment tu le ferais. Tu t'en serviras à la recette.

Un blocage expliqué pendant la recette rapporte plus qu'un silence. La commission évalue aussi ta démarche, pas seulement le résultat.

Les cinq dernières minutes

Arrête de coder. Prépare la recette :

  • les données de démonstration en base (une note clôturée à renvoyer, un compte de chaque rôle) ;
  • les commandes curl ou les requêtes Postman enregistrées, dans l'ordre où tu vas les montrer ;
  • les tests lancés une dernière fois, leur sortie visible dans un terminal ;
  • une note de trois lignes : ce qui marche, ce qui manque, comment tu le finirais.

Le chapitre la recette et l'entretien d'explicitation montre comment présenter tout cela.

Exercice

Exercice Découper et minuter une heure Réussi À revoir

Expression des besoins, réalisation Sorbier Frais : « Les comptables veulent exporter au format CSV la liste des notes validées d'un mois donné, pour la transmettre au cabinet qui gère la paie. Documentation à présenter : rapport de test. »

  1. Sépare le vital du confort.
  2. Écris le plan minuté de l'heure, avec les commits prévus.
Voir la réponseMasquer la réponse de l'exercice

1. Vital et confort.

VitalConfort
route GET /api/notes/export?mois=AAAA-MM réservée aux comptablesbouton « Exporter » dans le front
contrôle du format du mois (400 sinon)nom de fichier daté, BOM UTF-8 pour le tableur
requête des notes validee du mois, avec le nom du salariécolonnes supplémentaires, tri
CSV avec en-tête, séparateur ;, champs échappéstest de bout en bout depuis le front
rapport de test rempli

2. Le plan.

MinutesÉtapeCommit
0 à 5relire, lancer l'API et les tests, git switch -c e6-export
5 à 12route vide protégée par requireRole('comptable'), testée avec curl (401, 403, 200)« export : route protégée »
12 à 22requête SQL testée dans le client MySQL, puis dans la route ; réponse en JSON pour vérifier« export : notes validées du mois »
22 à 35génération du CSV, en-têtes HTTP, contrôle du mois« export : fichier CSV »
35 à 45confort : bouton dans le front si le reste est vert« export : bouton dans la liste »
45 à 55deux tests supertest (403, 400), rapport de test« export : tests et rapport »
55 à 60préparer la recette

Le code de cette route est détaillé dans le chapitre les évolutions types.

Tu avais trouvé ?

Chapitre terminé !

Fais l'exercice avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Les évolutions types et leur méthodeRevoir le sommaire du cours