Formation Rust.
96% de clients Sparks satisfaits (3317 notes)
Durée :
3 jours
numero vert : 0805 950 800 (service et appel gratuits)

Formation Rust.

Montez en compétences sur Rust, un langage de programmation sûr et ultra-rapide !

Lors de cette formation Rust de 3 jours, les apprenants découvriront les spécificités du langage, et comprendront pourquoi celui-ci devient l'une des technologies préférées des développeurs et développeuses. Après avoir exploré la syntaxe Rust, ils réaliseront différents ateliers pratiques, pour apprendre les bonnes pratiques de code, debug et test en Rust. Les principaux concepts de programmation mis en œuvre par Rust seront abordés de manière progressive tout au long de la formation : ownership, borrowing, lifetimes, mutabilité, etc.

Objectifs pédagogiques

Rust
à partir de
1890 €HT
Formation référencée Datadock

Référence :
1RUS
Durée :
3 jours
TP :
60%

Disponible en distanciel et dans 17 villes
Ce stage comprend
 21 heures de formation
60% de travaux pratiques
Prise en charge OPCO possible
Prérequis : Des connaissances en programmation et sur les systèmes Unix.

Programme de formation Rust.

Introduction à la formation Rust

Présentation générale et objectifs de cette formation Rust
Principales caractéristiques du langage, avantages et positionnement
Fonctionnement de Rust (vitesse, erreurs, sûreté, multithreading) et paradigmes de programmation
Installer Rust et Cargo, le gestionnaire de packages pour gérer dépendances et compilation
Démarrer un nouveau projet : crates et structure de base
Outils de développement
Documentation

Exemples de cas pratiques : tour de table, échanges sur les différents contextes professionnels et les perspectives d’application des nouvelles compétences, installation de rustup et mise en place de différents outils de développement. Codage d’un premier programme en Rust.

Syntaxe et concepts basiques de programmation Rust

Blocs de code, accolades, structures… découvrir la syntaxe de Rust
Variables, constantes et (im)mutabilité
Types primitifs : entiers, flottants, strings, tuples…
Expressions if, if else, boucles et boucles conditionnelles
Fonctions : déclaration, paramètres et retours
Définir un module
Tableaux et slices
Introduction aux macros
Commentaires

Exemples de cas pratiques : création de divers programmes en Rust (conversion de température, génération du nième nombre de la suite Fibonacci…) pour manipuler les concepts de base du langage.

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

Principe de fonctionnement et intérêt de l’ownership : mémoire et allocation
Comprendre les règles de l’ownership
Transférer la propriété : les moves
Références et borrowing
Opérateurs & et & mut

Exemples de cas pratiques : résolution de problèmes de programmation pour comprendre et mettre en application les concepts de propriété, emprunt et les slices. Echanges sur l’apport de tels principes dans les programmes Rust en termes de sécurité et de gestion de la mémoire, comparaison avec d’autres langages.

Types personnalisés : structures (structs) et énumérations (enums)

Utiliser les structs pour organiser la donnée : définition et instanciation
Méthodes et fonctions
Enumérations : Option et autres usages communs
Filtrage par motif (pattern matching) avec l’expression match
Déstructuration : tuples, énumérations, pointeurs…

Exemples de cas pratiques : écriture de programmes utilisant les structs et les enums, corrections de morceaux de code pour faire passer des tests (rustlings GitHub) et mise en œuvre de quelques patterns et anti-patterns de programmation Rust.

Gestion des erreurs

Les deux types d’erreurs sous Rust : recoverable et unrecoverable
Apports de l’approche Rust pour la gestion des erreurs
Utiliser la macro panic!
Result, principes de fonctionnement
La propagation d’erreurs
Gérer les erreurs dans main()

Exemples de cas pratiques : utilisation de la macro panic, résolution de problèmes de programmation avec l’enum Option, la méthode unwrap et les combinateurs, l’enum Result et ses alias, gestion de multiples types d’erreur avec try.

Généricité en Rust, traits et lifetimes

Principes de fonctionnement des traits dans Rust
Créer et implémenter un trait : Into, Drop, Iterator, Clone…
L’attribut derive
La surcharge d’opérateurs
Références et concept de durée de vie (lifetime)
Durées de vie statiques et associées
La généricité en Rust : types, fonctions, implémentations, restrictions…

Exemples de cas pratiques : implémentations de différents types de traits, surcharge de l’opérateur d’addition avec le trait Add, mise en œuvre de types et fonctionnalités génériques, utilisation de la clause where pour expliciter une restriction.

Closures et itérateurs

Les closures (aussi appelées lambdas) : caractéristiques et syntaxe
Closures passées en paramètres
Types anonymes
Fonctions passées en paramètres
Fonctions d’ordre supérieur (HOF)
Créer ses propres itérateurs avec le trait Iterator

Exemples de cas pratiques : capture de variables par référence, par valeur, utilisation des closures avec des outils de la bibliothèque standard (itérateurs any, find), refactoring et mise en œuvre de la méthode next.

Multi-threading

Créer des threads
Transfert de données entre thread : message passing
Les traits Sync et Send

Exemples de cas pratiques : création de threads avec spawn, communication entre threads et manipulation de concepts de programmation concurrente.

Quelques concepts de programmation avancée en Rust

Fonctionnement des macros
Contourner la sûreté de Rust avec les blocs unsafe
Interfaçage avec C/C++

Notre charte qualité et éthique.

A travers sa Charte Engagement Qualité, Sparks s’engage à tout mettre en œuvre pour que chaque session de formation soit un succès et que votre satisfaction soit totale.

À propos de Rust.

Parmi les langages de programmation qui gagnent en popularité, Rust est sans doute l’un des plus intéressants : performant, sécurisé et mettant en œuvre une approche moderne du développement système, le langage développé par Mozilla se positionne comme un sérieux concurrent à C/C++. Appuyé par un riche écosystème d’outils et une communauté très active, Rust est un croisement entre langage impératif, fonctionnel, objet et concurrent.

En amont de votre formation Rust, vous pouvez regarder la vidéo ci-dessous, pour en apprendre un peu plus sur le langage et ses avantages :

Vous trouverez également ci-après une traduction des mots de Nicholas Matsakis et Aaron Turon de l’équipe Rust, qui constituent le préambule de la documentation officielle du langage :

Cela n’a pas toujours été très clair, mais le langage de programmation Rust est d’abord une histoire d’autonomisation. Peu importe le genre de code que vous écrivez actuellement, Rust vous permet d’aller plus loin, de programmer avec confiance, dans une plus grande variété de domaines qu’auparavant.
Prenez par exemple la programmation système, qui traite de détails bas niveau de gestion de la mémoire, représentation des données ou concurrence. Traditionnellement, ce travail est considéré comme obscur, et accessible à une poignée de développeurs qui ont passé des années à apprendre comme éviter ses pièges infâmes. Même ceux qui s’y risquent le font avec prudence, de peur que leur code ne soit exposé aux exploits, crashs ou corruptions.

Rust fait tomber ces barrières en éliminant les vieilles embûches, et fournit un ensemble d’outils conviviaux et performants pour vous aider tout au long du processus de développement. Les programmeurs ayant besoin de plonger dans le contrôle plus bas niveau peuvent le faire avec Rust, sans prendre le risque habituel de crash ou faille de sécurité, et sans avoir à apprendre les petits détails d’une chaîne d’outils capricieuse. Mieux encore, le langage est conçu pour vous guider naturellement vers un code fiable et efficient en termes de vitesse et consommation de la mémoire.

Les développeurs qui travaillent d’ores-et-déjà sur du code bas niveau peuvent utiliser Rust pour revoir leurs ambitions à la hausse. Par exemple, introduire du parallélisme est relativement peu risqué : le compilateur détectera les erreurs classiques pour vous. Vous pourrez attaquer des optimisations plus agressives de votre code, avec la certitude de ne pas causer de pannes ou vulnérabilités.

Mais Rust ne se limite pas à la programmation système de bas niveau. Il est suffisamment expressif et ergonomique pour construire des applications CLI, des serveurs web et plein d’autres types de codes agréables à écrire. Travailler avec Rust vous permet d’acquérir de nouvelles compétences, transférables d’un domaine à l’autre. Vous pouvez apprendre Rust en écrivant une application web, puis appliquer les mêmes principes sur votre Raspberry Pi.
Plongez dans le bain, préparez-vous à apprendre, et bienvenue dans la communauté Rust !

Amandine de Sparks
Des chiffres étincelants.
15 années
à vos côtés
+ de 1000
sujets de formation
2500
stagiaires formés en 2019
170
formateurs actifs en 2019
96%
de clients satisfaits
90%
de nos sessions inter-entreprises maintenues
HAUT