Rust

Human Coders

Non finançable CPF
Tout public
En ligne
Public admis
Salarié en poste
Demandeur d'emploi
Entreprise
Etudiant
Prix
2160 €
Durée
Nous contacter
Localité
En ligne
Vous pouvez suivre cette formation depuis chez vous ou depuis n’importe quel endroit à distance.
En savoir plus sur les localités en présentiel
Objectifs
Comprendre et écrire du code Rust.
Se repérer dans l'écosystème Rust et découvrir quelques bibliothèques populaires.
Programme
Jour 1 : Comprendre et utiliser Rust
- Historique et positionnement de Rust
Bases du langage
- Commentaires
- Types primitifs (simples et composés)
- Fonctions
- Variables (typage, muabilité, constantes)
- Blocs et shadowing
- Structures de contrôle
- Les types structurés (exemple : Duration)
- Les types énumérés (exemple : Option)
- Filtrage par motif (pattern matching)
- Écrire dans la console

Possession (ownership) et emprunt (borrowing)

- Enjeux, contraintes et avantages de la possession (ownership)
- Fonctionnement de la possession
- Emprunt (borrowing) grâce aux références
- Les slices de chaînes de caractères

Créer des types

- Créer des alias de type
- Créer des types structurés (structs, tuple structs, unit structs)
- Créer des types énumérés (enum)
- Fonction et méthodes associées

Généricité et durée de vie (lifetime)

- Types de données génériques
- Créer et implémenter des traits
- Traits courants de la bibliothèque standard (Display, Clone, Add, ...)
- Traits vs. énumération
- Principe de la durée de vie (lifetime)
- Manipuler les durées de vie

Collections

- Fonctions anonymes (closures)
- Vec
- Slices
- HashSet
- HashMap
- Itérateurs

Jour 2 : Écosystème et outillage

Modules et crates

- Paquets et crates
- Modules (déclaration, import, ...)
- Visibilité des entités
- Arborescence des modules et des fichiers de code

Outillage

- rustup (toolchain, cibles, ...)
- Cargo
- Cargo : gestion des dépendances
- Cargo : déclarer et utiliser des features
- rustfmt
- Clippy

Tests et documentation

- Qualité et tests
- Écrire et lancer des tests (unitaires et d'intégration) avec Cargo
- Écrire et générer de la documentation avec Cargo
- Autres facilités de Cargo : les exemples et les benchmarks

Gestion des erreurs

- Recoverable vs. unrecoverable
- Faire planter le programme
- Option
- Result
- Gérer les erreurs dans une application (unwrap(), expect(), pattern matching, anyhow)
- Créer un type d'erreur structuré dans une bibliothèque (String, std::error::Error, thiserror)

Concurrence et asynchronisme

- Créer des threads
- Partager des données entre threads (Arc, Mutex, MPSC)
- Les traits Sync et Send
- Futures et async/await (et Tokio)

Jour 3 : Pratique dirigée

Sérialisation et désérialisation

- Fonctionnement et écosystème de Serde
- Utiliser serde_json en pratique
- Écrire un parser avec nom

Exploration et pratique à la carte

Suivant le temps restant et les envies des stagiaires, nous explorons des thèmes liés à Rust.
Cette exploration peut prendre la forme de discussions, de démonstrations ou de travaux pratiques en semi-autonomie, seul ou en binôme.

Envie d’en savoir plus sur cette formation ?

Documentez-vous sur la formation

Quelle est votre situation ?

Haut de page