A l’issue de la formation le participant sera capable de :
● Connaître les spécificités et le positionnement de Rust
● Mettre en place un environnement de développement
● Découvrir le langage et son écosystème
● Savoir documenter, tester et déboguer son code
● Gérer les erreurs proprement
● Connaître et utiliser quelques bibliothèques populaires
- Nos Nouvelles Formations
- Développement
Formation RUST
Objectifs
Prérequis
● Expérience en développement système
● Familiarité avec Unix/Linux et le terminal
Cette formation ne peut être financée que dans le cadre d’un projet d’entreprise (prise en charge entreprise ou OPCO). Les dossiers à financement personnel et CPF ne sont pas pris en compte.
Public
Développeurs, Ingénieurs, Consultants, Chercheurs, Architectes, Chefs de projet
Formation(s) associée(s)
Dernière mise à jour
Programme mis à jour le 03 octobre 2024
Bon à savoir
Evaluez votre niveau
Pour vous aider à bien choisir votre formation, nous vous proposons soit un entretien avec le formateur soit un test d’évaluation. Cela vous assurera que vous disposez des connaissances nécessaires pour suivre la formation dans des conditions optimales.
Formations modulables
Toutes nos formations sont disponibles en présentiel comme en distanciel, en mode coaching individuel ou en groupe de 3 à 6 participants maximum.
Travaux pratiques
Nos formations comprennent de nombreux travaux pratiques pour un meilleur apprentissage (60 % de pratique). Nous proposons également de travailler sur vos données pour une meilleure expérience.
Les Modules
de formation
Module1
Jour 1 : J’appréhende Rust parce que…
Ice Breaker
Entrée en matière : Sous la forme d’une discussion ludique de quelques minutes, chacun se présente rapidement et élabore sur ses raisons d’entreprendre l’apprentissage de Rust, son cadre d’utilisation ainsi que ses éventuels craintes et blocages liés au langage.
Découverte de Rust
Rapide historique récapitulatif
Rust dans le panorama actuel : Pourquoi un nouveau langage ?
Les atouts majeurs de Rust : sécurité, performance et productivité
Connaître et comprendre les limites du langage
Configuration et Premiers Pas
Installation détaillée : Rustup, Cargo et Rust
Initiation à l’environnement de développement : savoir s’outiller
Votre premier programme Rust : “Hello, World!”
Atelier : Installez Rust et Cargo via Rustup puis mettez en place votre environnement de travail et votre IDE avec VSCode et toutes les extensions appropriées. Écrivez, compilez et exécutez votre premier programme en Rust.
Plongée dans l’Écosystème
Cargo : bien plus qu’un gestionnaire de paquets
De la rédaction au déploiement : Compiler et exécuter votre code
Assurer la qualité : Documenter, tester et utiliser Clippy pour le linting
Adoptez les bonnes pratiques : formatez automatiquement le code
Gérer les dépendances de manière efficace
Atelier : Expérimentez à travers deux mini-applications (fibonacci & fizzbuzz),
mettez en œuvre les tests unitaires, faites la chasse aux warnings avec Clippy et documentez votre projet.
Typage de Données
Un langage riche et sécurisé : exploration détaillée des types
Structures de données complexes : Tuples, pointeurs, tableaux, slices, vecteurs…
Travail avec les chaînes : De l’unicode aux strings Rust
Conversion de types et alias : Écrire du code sûr et lisible
Exploration de la Syntaxe
Fondamentaux du Langage : Variables, structures de contrôle et fonctions
Comprendre l’ownership et le borrowing : les références partagées et exclusives
Structures Complexes : Structures, énumérations et leurs utilisations
Rust propre et idiomatique : Pattern matching, implémentations et closures
Atelier : Développez une application de conversion de température mettant en œuvre des structures et syntaxes idiomatiques variées et appropriées, tout en suivant toujours les meilleures pratiques de test unitaire, formatage et linting.
Module2
Jour 2 : Je pense que Rust… ?
Ice Breaker
Entrée en matière : Chacun résume les points clefs qui structurent sa vision du langage Rust sous la forme d’une discussion ludique de quelques minutes suivie d’un Quiz récapitulatif des concepts abordés la veille et d’une session de questions/réponses.
Modularité en Rust
Écrire un programme en une seule ligne, c’est possible !
Les quatre mots d’ordre : lisibilité, maintenabilité, réutilisabilité et interopérabilité
Exploration des spécificités et mécanismes d’import et de modularisation.
Création de Modules : Définir, déclarer et intégrer des modules dans votre application.
Visibilité et Portée : Contrôle d’accès et interaction entre modules.
Atelier : Réorganisez les applications précédemment développées en modules et sous modules proprement découpés et agencés. Utilisez les attributs de visibilité ainsi que les imports appropriés et apprenez à concevoir un prélude.
Gestion des Erreurs
Philosophie des erreurs en Rust : une véritable gestion
Différencier et traiter les erreurs récupérables et irrécupérables
Le trait Error en profondeur : Centraliser la gestion d’erreurs
Techniques avancées : Propagation, erreurs personnalisées et librairies spécialisées
Atelier : Concevez une stratégie idiomatique et globale de gestion d’erreurs puis mettez la en œuvre au sein des applications précédemment développées en anticipant divers scénarios ainsi qu’en choisissant la librairie la plus adaptée au cas d’usage (ThisError, Anyhow, Eyre…).
Traits et la Généricité
Découverte des traits, sous-traits et de leur rôle central
Fonctions génériques : réutilisez le code à l’infini
Stockez tous vos fruits dans le même panier avec les trait objects
Sous le capot : monomorphisation et dynamic dispatch
Utilisation avancée des traits : types associés et généricité
Atelier : Améliorez la qualité des applications précédemment développées en y intégrant votre implémentation des traits standard Display, Debug, Default, Eq, Ord, From et Into.
Module3
Jour 3 : J’aimerais que Rust… ?
Ice Breaker
Entrée en matière : Chacun exprime une ou plusieurs de ses attentes concernant Rust au cours d’une discussion ludique de quelques minutes suivie d’un Quiz récapitulatif des concepts abordés la veille et d’une session de questions/réponses.
Collections de Données
Maîtriser les collections standard : Vecteurs, hashmaps, sets, et plus
Accéder élégamment et efficacement aux données avec les Entries
Techniques avancées : Itérateurs et opérations courantes
Construire n’importe quelle collection à partir d’un itérateur
Atelier : Exploiter le potentiel des traits Iterator et IntoIterator en réimplémentant fizzbuzz et fibonacci sous forme d’itérateurs et de deux manières différentes.
Macros et Métaprogrammation
(Re)Découverte des macros natives
Les macros en Rust : sécurité et hygiène
Macros déclaratives ou procédurales
Écrire ses propres macros avec macro_rules!
Aller plus Loin avec Rust
Domaines avancés : code unsafe, parallélisme, asynchrone,
interopérabilité et développement embarqué
Panorama des bibliothèques populaires et ressources pour l’apprentissage continu
Atelier : Sérialisez et désérialisez les structures précédemment implémentées avec Serde dans différents formats (JSON, YAML, TOML et beaucoup d’autres) de manière transparente. Explorez les interactions avec d’autres langages et plateformes.
Session de pratique finale
Atelier : Mettez en œuvre toutes les compétences acquises pour résoudre un ensemble de puzzles, mélangeant les concepts abordés au cours de la formation.
Wrap-up
Après cette formation, Rust me paraît… ?
Clôture de la session : Chacun exprime ses impressions concernant Rust et la formation au cours d’une discussion ludique de quelques minutes suivie d’une session de questions/réponses puis du Quiz final d’évaluation des acquis.
Les prochaines
sessions de formation
Sur demande
Vous souhaitez organiser cette formation à une date spécifique ?Contactez-nous en remplissant le formulaire ci-dessous
04 novembre 2024
30 décembre 2024
17 février 2025
14 avril 2025