Introduction
Un plan de formation structuré est essentiel pour tout développeur souhaitant progresser efficacement. En 2026, combiner théorie et pratique via du code permet un suivi précis des acquis. Ce tutoriel vous montre comment concevoir un système simple mais complet pour gérer des parcours d'apprentissage.
Prérequis
- Node.js 20+
- Connaissances de base en TypeScript
- Un éditeur comme VS Code
Initialiser le projet
mkdir plan-formation
cd plan-formation
npm init -y
npm install typescript @types/node
npx tsc --initCette commande crée le dossier du projet et installe TypeScript pour typer notre plan de formation. Le fichier tsconfig.json généré permet une compilation stricte adaptée aux débutants.
Définir les types
export interface Module {
id: number;
titre: string;
duree: number;
complete: boolean;
}
export interface PlanFormation {
id: number;
nom: string;
modules: Module[];
}Ces interfaces TypeScript définissent la structure d'un plan de formation. Elles garantissent la cohérence des données et facilitent la maintenance du code.
Créer les données initiales
import { PlanFormation } from './types';
export const planInitial: PlanFormation = {
id: 1,
nom: "Débutant TypeScript",
modules: [
{ id: 1, titre: "Bases du langage", duree: 4, complete: false },
{ id: 2, titre: "Types et interfaces", duree: 3, complete: false },
{ id: 3, titre: "Fonctions avancées", duree: 5, complete: false }
]
};Ce fichier contient un exemple concret de plan de formation. Il est prêt à l'emploi et peut être importé dans n'importe quelle application.
Fonction de progression
import { PlanFormation } from './types';
export function calculerProgression(plan: PlanFormation): number {
const total = plan.modules.length;
const completes = plan.modules.filter(m => m.complete).length;
return total > 0 ? Math.round((completes / total) * 100) : 0;
}
export function marquerComplete(plan: PlanFormation, moduleId: number): PlanFormation {
return {
...plan,
modules: plan.modules.map(m =>
m.id === moduleId ? { ...m, complete: true } : m
)
};
}Ces fonctions calculent le pourcentage de progression et marquent un module comme terminé. Elles sont pures et facilement testables.
Script principal
import { planInitial } from './data';
import { calculerProgression, marquerComplete } from './progression';
let monPlan = planInitial;
console.log("Progression initiale:", calculerProgression(monPlan), "%");
monPlan = marquerComplete(monPlan, 1);
console.log("Progression après module 1:", calculerProgression(monPlan), "%");Ce script exécutable démontre l'utilisation complète du plan de formation. Exécutez-le avec ts-node pour voir les résultats en direct.
Bonnes pratiques
- Toujours typer les données avec des interfaces
- Séparer les responsabilités (types, données, logique)
- Ajouter des tests unitaires pour les fonctions de calcul
- Versionner les plans de formation
- Rendre le système extensible pour de nouveaux modules
Erreurs courantes
- Oublier de mettre à jour l'objet après modification
- Ne pas gérer les cas de liste vide
- Utiliser des any au lieu de types stricts
- Ignorer la validation des identifiants de modules
Pour aller plus loin
Découvrez nos formations Learni pour approfondir la création d'applications de suivi de formation.