Logo de l'organisme de formation

La formation au coeur de l'avenir technologique

Représentation de la formation : Programmation - Langage Rust

Programmation - Langage Rust

Formation à distance
Durée : 21 heures (3 jours)
Taux de satisfaction :
9,5/10
(4 avis)
Durée :21 heures (3 jours)
HT
Se préinscrire
Durée :21 heures (3 jours)
HT
Se préinscrire
Durée :21 heures (3 jours)
HT
Se préinscrire

Formation créée le 22/11/2022. Dernière mise à jour le 20/03/2023.

Version du programme : 1

Programme de la formation

Objectif de formation : Comprendre le fonctionnement du langage Rust, ses avantages puis maîtriser son utilisation et ses concepts pratiques

Objectifs de la formation

  • Découvrir, comprendre et utiliser le langage Rust et son écosystème dans vos futurs projets
  • Utiliser la programmation concurrente et la bonne gestion d’erreur avec Rust
  • Migrer efficacement vos applications C ou C ++ vers un environnement Rust

Profil des bénéficiaires

Pour qui
  • Développeurs
  • Architectes
Prérequis
  • Connaissances de base d’un système Unix
  • Connaissance en programmation bas niveau

Contenu de la formation

  • Introduction
    • Présentation générale et objectifs de cette formation Rust
    • Principales caractéristiques du langage, avantages et positionnement
    • Fonctionnement de Rust (vitesse, erreurs, sûreté, multithreading) et paradigmes de programmation
    • Installer Rust et Cargo, le gestionnaire de packages pour gérer dépendances et compilation
    • Démarrer un nouveau projet : crates et structure de base
    • Outils de développement
    • Documentation
    • Cas pratiques : tour de table, échanges sur les différents contextes professionnels et les perspectives d’application des nouvelles compétences, installation de rustup et mise en place de différents outils de développement. Codage d’un premier programme en Rust via notre formation
  • Syntaxe et concepts basiques de programmation Rust
    • Présentation de la syntaxe de Rust
    • Variables, constantes et (im)mutabilité
    • Types primitifs
    • Expressions if, if else, boucles et boucles conditionnelles
    • Fonctions : déclaration, paramètres et retours
    • Définition d'un module
    • Tableaux et slices
    • Introduction aux macros
    • Commentaires
    • Cas pratiques : création de divers programmes en Rust (conversion de température, génération du nième nombre de la suite Fibonacci…) pour manipuler les concepts de base du langage.
  • Ownership & Borrowing
    • Utilisation des structs pour organiser la donnée : définition & instanciation
    • Méthodes & fonctions
    • Enumérations
    • Filtrage par motif (pattern matching) avec l’expression match
    • Déstructuration
    • Cas pratiques : écriture de programmes utilisant les structs et les enums, corrections de morceaux de code pour faire passer des tests (rustlings GitHub) et mise en œuvre de quelques patterns et anti-patterns de programmation Rust
  • Gestion des erreurs
    • Erreurs recoverable & unrecoverable
    • Rust & la gestion des erreurs
    • Macro panic!
    • Result, principes de fonctionnement
    • Propagation d’erreurs
    • Gestion des erreurs dans main()
    • Cas pratiques : utilisation de la macro panic, résolution de problèmes de programmation avec l’enum Option, la méthode unwrap et les combinateurs, l’enum Result et ses alias, gestion de multiples types d’erreur avec try.
  • Généricité en Rust, traits et lifetimes
    • Principes de fonctionnement des traits dans Rust
    • Création & implémentation d'un trait
    • Attribut derive
    • Surcharge d’opérateurs
    • Références et concept de durée de vie (lifetime)
    • Durées de vie statiques et associées
    • Généricité en Rust
    • Cas pratiques : implémentations de différents types de traits, surcharge de l’opérateur d’addition avec le trait Add, mise en œuvre de types et fonctionnalités génériques, utilisation de la clause where pour expliciter une restriction
  • Closures
    • Capturing variables
    • Closures
    • Performance
    • Sécurité
    • FnOnce & FnMut
    • Callbacks
  • Itérateurs
    • Iterator & IntoIterator traits
    • Adapters
    • Consuming iterators
    • Implémentation de son propre itérateur
    • Cas pratiques : capture de variables par référence, par valeur, utilisation des closures avec des outils de la bibliothèque standard (itérateurs any, find), refactoring et mise en œuvre de la méthode next
  • Multi-threading
    • Création des threads
    • Transfert de données entre thread
    • Traits Sync et Send
    • Cas pratiques : création de threads avec spawn, communication entre threads et manipulation de concepts de programmation concurrente.
  • Pour aller plus loin avec Rust
    • Fonctionnement des macros
    • Contournement de la sûreté de Rust avec les blocs unsafe
    • Interfaçage avec C/C++
Équipe pédagogique

Professionnel expert technique et pédagogique

Suivi de l'exécution et évaluation des résultats
  • Feuilles de présence
  • Questions orales ou écrites (QCM)
  • Mises en situation
  • Formulaires d'évaluation de la formation
  • Certificat de réalisation de l’action de formation
Ressources techniques et pédagogiques
  • Espace numérique de travail
  • Documents supports de formation projetés
  • Exposés théoriques
  • Etude de cas concrets
  • Quiz en salle
  • Mise à disposition en ligne de documents supports à la suite de la formation

Qualité et satisfaction

Taux de satisfaction des apprenants, nombre d'apprenants, taux et causes des abandons, taux de retour des enquêtes, taux d'interruption en cours de prestation...
Taux de satisfaction des apprenants
9,5/10
(4 avis)