Programmation Rust

Rust

Cette formation a pour but de donner les bases du développement avec le langage Rust. Rust est un langage de programmation système ultra-rapide, qui prévient les erreurs de segmentation et garantit la sûreté entre threads. Il a été conçu pour être un langage sécurisé, concurrent, pratique, supportant les styles de programmation purement fonctionnel, modèle d'acteur, procédural, ainsi qu'orienté objet sous certains aspects.

Cette formation peut être dispensée en présentiel ainsi qu'à distance.

Langues: Français, Anglais

1700 € (Hors taxes)
3 jours (21 heures)

Plaquette de présentation


Pourquoi choisir cette formation ?

Cette formation s'effectue, pour chaque module, à 60% par des exercices pratiques et à 40% par des présentations. A la fin de la formation, les stagiaires sont autonomes dans leurs développement en Rust. Une attestation est remise à chaque stagiaire ayant suivi la formation complète.

Notre organisme de formation est référencé par DataDock.


Objectifs

  1. Réflechir comme un rustacean.
  2. Ecrire du code idiomatique Rust.
  3. Compiler et tester votre code.
  4. Choisir les structures de données adaptées à chaque usage.
  5. Utiliser différentes librairies du langage et la documentation.
  6. Comprendre les points forts et les points faibles du langage Rust.
  7. Devenir autonome : concevoir et implémenter votre première application Rust.

Prérequis

  • Connaissances de base en développement.
  • Environnement Unix / Linux.

Programme de la formation

Module 1 - Introduction
  • Positionnement du langage
    • Vitesse d'exécution
    • Gestion des erreurs
    • Sûreté
    • Multi-threading
  • Paradigmes de programmation
Module 2 - Programmation de base
  • Types primitifs
  • Fonctions
  • Variables et Mutabilité
  • Control flow
  • Types structurés
  • Types énumérés (enum, match, Option)
Module 3 - Propriété (Ownership) et références
  • Ownership
  • Référence et Emprunt
  • Slices
  • Durée de vie (lifetime)
  • Types contenant des références
Module 4 - Types avancés
  • Collections (String, Vec, HashMap)
  • Itérateurs
  • Gestion d'erreur (Result, propagation, panic)
  • Fermetures (Closure)
Module 5 - Généricité
  • Types génériques
  • Système de Trait
  • Traits standards
    • Surcharge d'opérateurs
Module 6 - Environnement de développement
  • Installation (rustup, paquets système)
  • Compilation et Système de build (rustc, cargo)
  • Gestionnaire de paquets (cargo et crates.io)
  • Tests unitaires
  • Documentation: rustdoc
  • Environnements / Editeurs
Module 7 - Multi-threading
  • Communication entre threads
  • Partage de données
  • Trait Send et Sync
Modules 8 - Programmation Rust avancée
  • Macros
  • Utiliser C/C++ depuis Rust
  • Utiliser Rust depuis C/C++
  • Unsafe Rust
Module 9 - Librairies standards et écosystème
  • std::*
  • Sérialisation avec serde
  • Non-blocking IO avec tokio
  • Accès base de données
  • Serveur web

Votre formateur

Laurent Wouters est co-fondateur de Cénotélie et un chercheur et formateur dédié. Laurent pratique ce langage au quotidien depuis plusieurs années, notamment dans le cadre du développement d'une plateforme en ligne pour le suivi de la croissance des cultures agricoles sur la base de l'analyse d'images satellite. Il s'agit d'un produit industriel complexe, dont tous les composants côté serveur sont écrits en Rust.
Pour un aspect plus visible, Laurent participe à Hime, dont une version du runtime est écrite en Rust.

Laurent détient un titre de doctorat en Théorie des langages. Durant ses activités de recherches il s'est passionné à comprendre comment les languages et la sémantique peuvent améliorer les pratiques de collaboration et l'ingénierie des systèmes complexes. Par ailleurs, il a participé à l'encadrement de plusieurs travaux de stage et de thèse. Avant de devenir un formateur professionnel, il s'est forgé une expérience en tant qu'enseignant dans plusieurs grandes universités parisiennes, dont l'Ecole Centrale de Paris.


Témoignages