Formation Rust

Apprenez les fondamentaux du langage de programmation Rust lors de cette formation Rust de 3 jours.

Prix (Formation inter-entreprise)

1800€ HT / personne

Durée

3 jours

Dates

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Cette formation Rust a pour objectif de vous transmettre les fondamentaux du langage afin que vous soyez à l'aise pour créer, débugger, tester et maintenir vos propres programmes et bibliothèques.

Elle s'adresse aux personnes ayant déjà de l'expérience en développement logiciel et souhaitant apprendre un langage de programmation moderne pour écrire de manière plaisante toutes sortes de programmes fiables et performants.

En plus de vous donner les connaissances et l'expérience nécessaires pour utiliser Rust, ces 3 jours de formation Rust vous donneront les clés pour vous repérer dans son écosystème et ses outils, ainsi que des prises de recul sur le génie logiciel dans son ensemble.
Chaque module sera l'occasion de pratiquer des exercices et projets concrets.

La fin de la formation sera réservée à de la pratique dirigée, orientée vers l'exploration de sujets au choix.

Covid-19: Nous restons ouverts. Cette formation est disponible à distance.

Les objectifs

  • Comprendre et écrire du code Rust
  • Se repérer dans l'écosystème Rust et découvrir quelques bibliothèques populaires

Pré-requis

  • Avoir une réelle expérience dans un langage de programmation
  • Être familier avec le terminal
  • Ordinateur portable à apporter

Le programme de la formation Rust

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é, shadowing, constantes)
- Blocs
- 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

Propriété (ownership) et emprunt (borrowing)


- Enjeux, contraintes et avantages de la propriété (ownership)
- Règles de fonctionnement
- Transférer la propriété avec move
- Emprunt (borrowing) grâce aux références
- Les différents types de références

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)
- Méthodes et fonctions associées

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


- Principe des traits
- Traits courants de la bibliothèque standard (Display, Clone, Add, …)
- Implémenter un trait
- Créer un trait
- Traits vs. énumération
- Principe de la durée de vie (lifetime)
- Manipuler les durées de vie

Collections


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

Jour 2 : Écosystème et outillage

Modules et crates


- Modules (déclaration, import, …)
- Portée des entités
- Arborescence du code
- Crates
- Types de crates

Outillage


- rustup (toolchain, cibles, …)
- Cargo
- Gestion des dépendances
- 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
- panic!
- Option
- Result
- L'opérateur ?
- 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
- Les traits Sync et Send
- Partager des données entre threads (Arc, Mutex, MPSC)
- Futures et async/await
- Écrire des programmes asynchrones avec 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.

Exemples de sujets :

- Gérer les traces d'exécution avec log et env_logger
- Écrire un programme CLI grâce à clap
- Gérer les dates et le temps avec Chrono
- Écrire une API HTTP avec actix-web
- Faire des requêtes HTTP avec reqwest
- Dialoguer avec une base de données grâce à SQLx
- Passer en mode manuel avec unsafe
- Interfaçage avec C/C++ (FFI)
- Écrire des macros simples
- Continuer à apprendre : quelques sources de veille

Télécharger le programme

Le(s) formateur(s)

David Sferruzza

David Sferruzza

Passionné depuis toujours par l'informatique au sens large, David Sferruzza est propulsé par sa curiosité. Celle-ci l'a poussé à faire des études d'ingénieur généraliste pour ensuite se recentrer sur le développement logiciel et ses nombreux domaines connexes.
Notamment adepte de programmation fonctionnelle (Rust, Haskell, Scala, Nix, ...), d'administration système, de pédagogie et de différents mélanges de ces trois ingrédients, il s'est régulièrement lancé des challenges pour continuer à apprendre : homme à tout faire d'une équipe de développeurs (PHP/Laravel, JavaScript), orateur dans des conférences internationales, docteur en génie logiciel, et parfois même rédacteur de contenus absurdes !

Jamais très éloigné de son éditeur de code, il accompagne des startups sur les aspects techniques depuis plusieurs années chez Startup Palace et écrit des logiciels (web, réseau, embarqué, …) pour Le Palace.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 82 formations au catalogue, 1275 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formations à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accéder au Manifeste

Nos clients

Formation Rust

Apprenez les fondamentaux du langage de programmation Rust lors de cette formation Rust de 3 jours.

Cette formation Rust a pour objectif de vous transmettre les fondamentaux du langage afin que vous soyez à l'aise pour créer, débugger, tester et maintenir vos propres programmes et bibliothèques.

Elle s'adresse aux personnes ayant déjà de l'expérience en développement logiciel et souhaitant apprendre un langage de programmation moderne pour écrire de manière plaisante toutes sortes de programmes fiables et performants.

En plus de vous donner les connaissances et l'expérience nécessaires pour utiliser Rust, ces 3 jours de formation Rust vous donneront les clés pour vous repérer dans son écosystème et ses outils, ainsi que des prises de recul sur le génie logiciel dans son ensemble.
Chaque module sera l'occasion de pratiquer des exercices et projets concrets.

La fin de la formation sera réservée à de la pratique dirigée, orientée vers l'exploration de sujets au choix.

Covid-19: Nous restons ouverts. Cette formation est disponible à distance.

Les objectifs

  • Comprendre et écrire du code Rust
  • Se repérer dans l'écosystème Rust et découvrir quelques bibliothèques populaires

Pré-requis

  • Avoir une réelle expérience dans un langage de programmation
  • Être familier avec le terminal
  • Ordinateur portable à apporter

Le programme de la formation Rust

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é, shadowing, constantes)
- Blocs
- 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

Propriété (ownership) et emprunt (borrowing)


- Enjeux, contraintes et avantages de la propriété (ownership)
- Règles de fonctionnement
- Transférer la propriété avec move
- Emprunt (borrowing) grâce aux références
- Les différents types de références

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)
- Méthodes et fonctions associées

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


- Principe des traits
- Traits courants de la bibliothèque standard (Display, Clone, Add, …)
- Implémenter un trait
- Créer un trait
- Traits vs. énumération
- Principe de la durée de vie (lifetime)
- Manipuler les durées de vie

Collections


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

Jour 2 : Écosystème et outillage

Modules et crates


- Modules (déclaration, import, …)
- Portée des entités
- Arborescence du code
- Crates
- Types de crates

Outillage


- rustup (toolchain, cibles, …)
- Cargo
- Gestion des dépendances
- 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
- panic!
- Option
- Result
- L'opérateur ?
- 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
- Les traits Sync et Send
- Partager des données entre threads (Arc, Mutex, MPSC)
- Futures et async/await
- Écrire des programmes asynchrones avec 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.

Exemples de sujets :

- Gérer les traces d'exécution avec log et env_logger
- Écrire un programme CLI grâce à clap
- Gérer les dates et le temps avec Chrono
- Écrire une API HTTP avec actix-web
- Faire des requêtes HTTP avec reqwest
- Dialoguer avec une base de données grâce à SQLx
- Passer en mode manuel avec unsafe
- Interfaçage avec C/C++ (FFI)
- Écrire des macros simples
- Continuer à apprendre : quelques sources de veille

Télécharger le programme

Le(s) formateur(s)

David Sferruzza

David Sferruzza

Passionné depuis toujours par l'informatique au sens large, David Sferruzza est propulsé par sa curiosité. Celle-ci l'a poussé à faire des études d'ingénieur généraliste pour ensuite se recentrer sur le développement logiciel et ses nombreux domaines connexes.
Notamment adepte de programmation fonctionnelle (Rust, Haskell, Scala, Nix, ...), d'administration système, de pédagogie et de différents mélanges de ces trois ingrédients, il s'est régulièrement lancé des challenges pour continuer à apprendre : homme à tout faire d'une équipe de développeurs (PHP/Laravel, JavaScript), orateur dans des conférences internationales, docteur en génie logiciel, et parfois même rédacteur de contenus absurdes !

Jamais très éloigné de son éditeur de code, il accompagne des startups sur les aspects techniques depuis plusieurs années chez Startup Palace et écrit des logiciels (web, réseau, embarqué, …) pour Le Palace.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 82 formations au catalogue, 1275 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012