Descriptif
Rust : programmation système sûre est une formation de 4 jours (28 heures), de niveau expert, rattachée au domaine « Développement logiciel, informatique et Web ». Écrire du code système sûr en Rust, sans gestion manuelle de la mémoire. Conçue et animée par des praticiens en activité, elle alterne apports ciblés (30 %) et mises en pratique (70 %) sur des laboratoires individuels accessibles depuis un navigateur, avec des cas inspirés des secteurs banque, assurance et services publics. Le parcours s'appuie sur 16 laboratoires dédiés, provisionnés à la demande et accessibles trente jours après la session. Disponible en inter-entreprises, en intra sur catalogue et en version sur mesure adaptée au contexte de l'entreprise.
Objectifs pédagogiques
À l'issue de la formation, le participant sera capable de :
- Propriété, emprunt et durée de vie
- Types, traits et généricité
- Gestion des erreurs, modules et écosystème cargo
- Concurrence sans data race et interopérabilité
Programme détaillé
| N° | Contenus et activités | Durée |
|---|---|---|
| Jour 1 | ||
| 1 | Cadrage expert : parcours C, C++ ou Java des participants, exigences de sûreté et de performance, présentation du fil rouge et de l'environnement cargo en navigateur | 0,5 h |
| 2 | Modèle mémoire de Rust : propriété, déplacement, copie, emprunts partagés et exclusifs, durées de vie | 2 h |
| 3 | Travaux pratiques : faire compiler une série de programmes refusés par le borrow checker et expliquer chaque diagnostic | 2 h |
| 4 | Types, motifs et exhaustivité : structures, énumérations, Option et Result, filtrage par motifs, slices et chaînes | 1,5 h |
| 5 | Travaux pratiques : modéliser le domaine du fil rouge en types rendant les états invalides irreprésentables | 1 h |
| Jour 2 | ||
| 6 | Traits et généricité : définition et implémentation, objets de trait, généricité monomorphisée, traits standards de la bibliothèque | 2 h |
| 7 | Travaux pratiques : concevoir une abstraction de stockage par traits et en fournir deux implémentations interchangeables | 2 h |
| 8 | Durées de vie explicites, structures empruntant des données, Cow, Box, Rc et RefCell : arbitrer entre elles | 1,5 h |
| 9 | Travaux pratiques : refactoriser une structure de données pour supprimer les copies inutiles et mesurer le gain | 1,5 h |
| Jour 3 | ||
| 10 | Gestion des erreurs : Result et opérateur ?, thiserror et anyhow, erreurs de bibliothèque contre erreurs d'application | 1,5 h |
| 11 | Travaux pratiques : normaliser la gestion d'erreurs du projet et couvrir les chemins d'échec par des tests | 1,5 h |
| 12 | Écosystème cargo : espaces de travail, fonctionnalités conditionnelles, dépendances, clippy, rustfmt, documentation et tests de documentation | 1,5 h |
| 13 | Travaux pratiques : découper le projet en espace de travail multi-crates et outiller la chaîne de qualité | 1,5 h |
| 14 | Étude de cas : arbitrages d'architecture sur un composant critique - sûreté, performance, dépendances et coût de maintenance | 1 h |
| Jour 4 | ||
| 15 | Concurrence sans data race : traits Send et Sync, fils d'exécution, canaux, Arc et Mutex, parallélisme de données avec rayon | 1,5 h |
| 16 | Travaux pratiques : paralléliser le traitement du fil rouge et démontrer l'absence de course par construction | 2 h |
| 17 | Asynchrone et interopérabilité : async et await avec tokio, FFI extern C, blocs unsafe et invariants à garantir | 1,5 h |
| 18 | Travaux pratiques : exposer une fonction Rust à un appelant C puis appeler une bibliothèque C depuis Rust | 1,5 h |
| 19 | Synthèse : critères d'adoption de Rust, mesure avec criterion, coût de compilation et plan d'action individuel | 0,5 h |
Méthodes pédagogiques
- Pédagogie active : 50 % du temps en pratique encadrée — laboratoires cloud provisionnés par participant, travaux pratiques guidés, fil rouge applicatif —, le reste en apports structurés, démonstrations commentées, cadrage et évaluation
- répartition calculée sur le déroulé détaillé de cette formation, et non annoncée de façon uniforme
- classe inversée avec prérequis sur le LMS
- apprentissage adaptatif selon le positionnement initial
- travaux en binômes
- classe virtuelle en séquences de 3 h 30 maximum sur Microsoft Teams
- support clair, complet et paginé remis à chaque participant
Technologies et outils mobilisés
Rust, cargo, ownership, borrow checker, traits, gestion d’erreurs, tests
Modalités d'évaluation et de validation
- Positionnement initial en ligne
- quiz de validation à chaque séquence
- évaluation finale des acquis (QCM et mise en situation)
- satisfaction à chaud
- questionnaire de transfert à 30 jours
- attestation de fin de formation
Plateforme, laboratoires et ressources
- Plateforme LMS DATAROCKSTARS : parcours, quiz et supports. Environnements de laboratoire provisionnés à la demande, isolés par participant et accessibles depuis un navigateur — 16 laboratoires dédiés à ce programme. Accès maintenu trente jours après la session
