Objectifs pédagogiques
- Découvrir et utiliser le langage Rust
- Installer l'environnement de développement
- Décrire les concepts de base (ownership et mutabilité)
- Appliquer le polymorphisme et les traits
- Utiliser l'ordre supérieur
- Découvrir les collections
- Décrire la concurence sans peur.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir de bonnes connaissances en programmation, ainsi que des notions d'algorithmique.
Public concerné
Développeurs.
Programme
Se familiariser avec Rust
- Un peu d'histoire sur Rust
- Les inspirations de Rust
- Les motivations pour ses fonctionnalités essentielles
Installer l'environnement de développement
- Installation de l'environnement
- Le compilateur et le système de "build"
- Le gestionnaire de paquets
- La gestion des tests
- La documentation
- Les éditeurs et les modes
Comprendre les concepts de base
- Les conventions de syntaxe
- Les types et expressions
- Les fonctions
- Les types définis par l'utilisateur
- Conditions et branches
- Le mode "panic"
- Implémentations
- Les boucles
Ownership et mutabilité
- Les références et la mutabilité
- La sémantique du "copy" et du "move"
- L'emprunt et le "pattern matching"
- La mutabilité
- Des notions de base sur les "lifetimes"
- Les slices
Le polymorphisme et les traits
- Le polymorphisme simple
- Définir et implémenter des traits
- Le polymorphisme contraint
- Les bases des objets de trait
L'ordre supérieur
- Les traits de fonctions : Fn, FnMut, FnOnce
- Les clôtures
- Les clôtures "move"
Les collections
- Types fondamentaux : Vec, HashMap, BTreeMap
- Les traits fondamentaux : Iterator, IntoIterator, Collect
La concurence sans peur
- Rc et Arc
- Send et Sync
- Lancer des "threads" et passer des messages
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)
Les + de la formation
Attention, si la formation a lieu dans les locaux du partenaire, chaque stagiaire devra venir avec son propre ordinateur.