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.
Objectifs
Comprendre et écrire du code Rust.
Se repérer dans l'écosystème Rust et découvrir quelques bibliothèques populaires.
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.
- 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
Ces formations peuvent vous intéresser
Formation RUST
À DISTANCE
Non finançable CPF
À distance
Entreprise
ACCESS IT
Graduate Développeur web full stack
À DISTANCE
Finançable CPF
À distance
Tout public
Développeur Web et Web Mobile - Développement Web
À DISTANCE
Finançable CPF
À distance
Tout public
Webmaster Développeur avec WORDPRESS + HTML/CSS
LA CIOTAT, TOULON, STRASBOURG ET 10 AUTRE(S) LOCALITÉ(S)
Finançable CPF
À distance / En centre / En entreprise
Salarié en poste / Entreprise
FORMA13
R Niveau 2 - Développeur - Création de packages
À DISTANCE
Finançable CPF
À distance
Salarié en poste / Entreprise
ThinkR
Créer et administrer son site Internet
LA SALVETAT-SAINT-GILLES
Non finançable CPF
En centre
Salarié en poste / Entreprise
Les Clés de la Gestion
Les formations les plus recherchées
Paris
Lyon
Toulouse
Marseille
Montpellier
Bordeaux
Dijon
Mâcon
Nantes
Rennes
Informatique CPF
Informatique en Ligne
Webmaster
Webmaster CPF
Webmaster en Ligne
Programmation
Developpeur web
Creation site internet
Integrateur web
Technicien support informatique
Consultant en informatique
Administrateur systeme
Technicien informatique
Spark
Technicien reseaux
Creation site internet Aulnay-sous-Bois
Developpeur web Mantes-la-Jolie
Programmation Mantes-la-Jolie
Webmaster Beaumont-sur-Oise
Integrateur web Beaumont-sur-Oise
Integrateur web Goussainville
Webmaster Goussainville
Programmation Mantes-la-Ville
Developpeur web Mantes-la-Ville
Creation site internet Chelles