Choisissez votre langue
Cours intermédiaire et avancé de programmation Rust
Plus de 2 millions d'apprenants dans le monde

Cours intermédiaire et avancé de programmation Rust

Faites passer vos compétences Rust de fonctionnelles à redoutables. Ce cours plonge en profondeur dans les patrons de possession avancés, la programmation asynchrone, les primitives de concurrence et le Rust non sécurisé — vous offrant les outils nécessaires pour créer des systèmes de qualité production en toute confiance. Maîtrisez les concepts qui distinguent les développeurs Rust compétents des développeurs exceptionnels.

Dedika pour entreprises

Ce que vous allez apprendre:

  • Appliquez des annotations de durée de vie avancées et des règles d'emprunt pour concevoir des API robustes et efficaces en matière d'allocation.

  • Construisez des programmes concurrents à l'aide de fils d'exécution, de canaux, de Mutex et des garanties Send et Sync de Rust.

  • Mettez en œuvre des pipelines async/await et comprenez les rouages des exécuteurs pour des applications réseau non bloquantes.

  • Créez des itérateurs personnalisés, des fermetures et des pipelines fonctionnels qui éliminent les allocations superflues sur le tas.

  • Concevez et auditez des abstractions non sécurisées, y compris la manipulation de pointeurs bruts et l'interopérabilité avec C via FFI.

  • Configurez les espaces de travail Cargo, les indicateurs de fonctionnalité et les pipelines d'IC pour gérer des projets Rust de qualité production.

Comment vous étudiez de façon pratique Cours intermédiaire et avancé de programmation Rust

Comment vous pratiquez Cours intermédiaire et avancé de programmation Rust

Pour vous, entreprise, qui souhaitez former votre équipe

Avec Dedika pour entreprises, le cours inclut des exercices et des exemples adaptés à votre propre entreprise et à ses besoins spécifiques.

Cliquez ici

Contenu du cours

8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

Rust Rappels sur la propriété et l'emprunt

  • Leçon 1 • Règles de propriété et sémantique de déplacement

    Couvre l'invariant de possesseur unique, les types par déplacement et par copie, et l'ordre de libération. Établit la base de sécurité mémoire dont dépend tout le cours.

  • Leçon 2 • Patrons de mutabilité intérieure

    Explique Cell, RefCell et leur vérification d'emprunt à l'exécution pour les cas où les règles à la compilation sont trop restrictives. Fait le pont entre les fondamentaux de la propriété et les patrons avancés d'état partagé.

  • Leçon 3 • Tranches, références et types de chaînes

    Fait la distinction entre str, String et les types de tranches ainsi que leur sémantique de référence. Renforce les concepts d'emprunt par la manipulation pratique de chaînes et de tableaux.

  • Leçon 4 • Règles d'emprunt et de référence

    Enseigne les références partagées et exclusives, les règles d'aliasing et les messages du vérificateur d'emprunt. Prépare directement les étudiants aux annotations de durée de vie dans les sections suivantes.

  • Leçon 5 • Annotations de durée de vie et élision

    Introduit la syntaxe explicite de durée de vie, les règles d'élision et les relations de durée de vie dans les structures. Permet aux étudiants d'écrire des API qui se compilent sans clonage inutile.

Chapitre 2Voir les détails

Fonctionnalités avancées du système de types

  • Leçon 1 • Types associés et familles de types

    Distingue les types associés des paramètres génériques et montre quand chacun est approprié. Prépare les étudiants à lire et à écrire correctement les traits d'itérateur et d'opérateur.

  • Leçon 2 • Types génériques et monomorphisation

    Couvre les structures, énumérations et fonctions génériques ainsi que les compromis de coût de la monomorphisation. Fournit le vocabulaire nécessaire pour comprendre les bornes de trait et la spécialisation.

  • Leçon 3 • Objets de trait et répartition dynamique

    Explique dyn Trait, les vtables, les règles de sécurité des objets et les implications sur le rendement. Équipe les étudiants pour choisir délibérément entre la répartition statique et dynamique.

  • Leçon 4 • Bornes de trait et clauses Where

    Enseigne les bornes en ligne, les clauses where et les bornes de trait de rang supérieur pour des API flexibles. Permet directement les patrons de trait avancés couverts dans les sections suivantes.

  • Leçon 5 • Surcharge d'opérateur et patron Newtype

    Implémente les traits d'opérateur standard et l'idiome newtype pour des encapsuleurs sûrs au niveau des types. Renforce les types associés tout en introduisant des techniques de conception d'API ergonomiques.

Chapitre 3Voir les détails

Stratégies de gestion des erreurs

  • Leçon 1 • Panique, déroulement et récupération

    Distingue les erreurs récupérables des paniques, explique le déroulement vs l'arrêt, et couvre catch_unwind. Complète le tableau de la gestion des erreurs avec des stratégies de sécurité pour les cas limites.

  • Leçon 2 • Bibliothèques logicielles d'erreurs et ergonomie

    Examine thiserror pour dériver des types d'erreur et anyhow pour les erreurs au niveau des applications. Enseigne quand utiliser chaque approche selon le contexte de bibliothèque ou d'application.

  • Leçon 3 • L'opérateur point d'interrogation

    Explique comment ? se désucre, les conversions From et la sémantique de retour anticipé en détail. Permet aux étudiants d'écrire du code de propagation concis entre plusieurs types d'erreur.

  • Leçon 4 • Combinateurs Result et Option

    Couvre map, and_then, unwrap_or et les combinateurs associés pour une gestion ergonomique des erreurs. Établit des patrons idiomatiques avant d'introduire l'opérateur point d'interrogation.

  • Leçon 5 • Types d'erreur personnalisés

    Conçoit des énumérations implémentant Error, Display et le chaînage de source pour des diagnostics riches. Se connecte à l'opérateur ? en implémentant les conversions From requises.

Chapitre 4Voir les détails

Fermetures, itérateurs et patrons fonctionnels

  • Leçon 1 • Trait Iterator et évaluation paresseuse

    Implémente le trait Iterator à partir de zéro et explique le chaînage d'adaptateurs paresseux. Montre comment les abstractions sans coût éliminent les allocations intermédiaires.

  • Leçon 2 • Capture de fermeture et traits Fn

    Explique Fn, FnMut, FnOnce, la capture par référence vs par déplacement et le dimensionnement des fermetures. Fournit la connaissance des traits nécessaire pour passer des fermetures à travers les frontières des API.

  • Leçon 3 • Itérateurs et adaptateurs personnalisés

    Construit des itérateurs personnalisés avec état et des structures d'adaptateur qui encapsulent des itérateurs existants. Renforce les compétences en propriété et durée de vie tout en étendant l'écosystème des itérateurs.

  • Leçon 4 • Adaptateurs d'itérateur courants

    Couvre map, filter, flat_map, zip, enumerate et take en profondeur avec des exemples réels. Développe l'aisance avec le vocabulaire des adaptateurs utilisé dans tout le code Rust idiomatique.

  • Leçon 5 • Adaptateurs de consommation et collecteurs

    Enseigne fold, sum, collect, partition et unzip pour terminer les pipelines d'itérateurs. Relie l'évaluation paresseuse aux types de sortie concrets via le trait FromIterator.

Chapitre 5Voir les détails

Pointeurs intelligents et gestion de la mémoire

  • Leçon 1 • Combinaison de pointeurs intelligents

    Montre Rc<RefCell<T>> et Arc<Mutex<T>> pour l'état mutable partagé. Relie la mutabilité intérieure du chapitre 1 aux scénarios à plusieurs possesseurs.

  • Leçon 2 • Implémentation de pointeurs intelligents personnalisés

    Construit un pointeur intelligent personnalisé en implémentant Deref, DerefMut et Drop. Approfondit la compréhension du fonctionnement interne des pointeurs de la bibliothèque standard.

  • Leçon 3 • Dispositions mémoire et allocateurs

    Examine la disposition des structures, le remplissage, l'alignement et l'interface de l'allocateur global. Équipe les étudiants pour optimiser l'utilisation de la mémoire et intégrer des allocateurs personnalisés.

  • Leçon 4 • Comptage de références avec Rc et Arc

    Compare Rc pour la possession partagée monothread et Arc pour la possession partagée multithread. Prépare les étudiants à la programmation concurrente en introduisant les contraintes de sécurité des fils d'exécution.

  • Leçon 5 • Box et allocation sur le tas

    Explique Box<T> pour l'allocation sur le tas, les types récursifs et le stockage d'objets de trait. Établit le pointeur intelligent le plus simple avant d'introduire les variantes à comptage de références.

Chapitre 6Voir les détails

Concurrence et parallélisme

  • Leçon 1 • Opérations atomiques et patrons sans verrou

    Explique les types atomiques, l'ordonnancement mémoire et la comparaison-échange pour les algorithmes sans verrou. Prépare les étudiants à raisonner sur les modèles mémoire matériels dans le code critique pour le rendement.

  • Leçon 2 • Itérateurs parallèles et parallélisme de données

    Introduit le parallélisme de données via des patrons d'itérateurs parallèles et des ordonnanceurs à vol de travail. Relie les compétences en itérateurs du chapitre 4 à l'optimisation du rendement multicœur.

  • Leçon 3 • Passage de messages avec les canaux

    Implémente des patrons producteur-consommateur en utilisant des canaux mpsc et explique la contre-pression. Fournit une alternative sûre à l'état partagé pour la communication entre fils d'exécution.

  • Leçon 4 • Primitives de synchronisation d'état partagé

    Couvre Mutex, RwLock, Condvar et Barrier pour coordonner l'accès des fils d'exécution aux données partagées. S'appuie sur Arc du chapitre 5 pour implémenter des structures de données concurrentes sûres.

  • Leçon 5 • Fils d'exécution et traits Send et Sync

    Couvre thread::spawn, JoinHandle et les traits marqueurs Send/Sync qui imposent la sécurité des fils d'exécution. Établit les garanties de concurrence au moment de la compilation propres à Rust.

Chapitre 7Voir les détails

Rust asynchrone et le modèle d'exécuteur

  • Leçon 1 • Syntaxe Async et Await

    Couvre async fn, les blocs async, .await et comment ils se composent en pipelines plus grands. Développe une aisance pratique avant d'introduire les détails de l'exécuteur et de l'environnement d'exécution.

  • Leçon 2 • E/S asynchrones et réseau

    Implémente des clients et serveurs TCP asynchrones en utilisant des E/S non bloquantes et des flux asynchrones. Applique les connaissances de l'exécuteur à des scénarios réels de programmation réseau.

  • Leçon 3 • Patrons asynchrones et pièges

    Aborde les erreurs asynchrones courantes : appels bloquants dans un contexte asynchrone, sécurité d'annulation et bornes Send. Équipe les étudiants pour déboguer et optimiser le code asynchrone en production.

  • Leçon 4 • Futures et le trait Future

    Explique le trait Future, Poll, Waker et la transformation en machine d'état des fonctions asynchrones. Fournit la base conceptuelle pour tous les patrons asynchrones qui suivent.

  • Leçon 5 • Exécuteurs et environnements d'exécution

    Compare les exécuteurs monothread et multithread, l'ordonnancement des tâches et la configuration de l'environnement d'exécution. Permet aux étudiants de sélectionner et configurer l'environnement d'exécution adapté à leur charge de travail.

Chapitre 8Voir les détails

Rust non sécurisé et FFI

  • Leçon 1 • Le mot-clé Unsafe et les superpouvoirs

    Définit les cinq opérations unsafe, le contrat unsafe et le principe de surface unsafe minimale. Établit le modèle mental pour tous les sujets unsafe ultérieurs.

  • Leçon 2 • Implémentation d'abstractions unsafe

    Construit des abstractions sûres sur du code unsafe, y compris un tampon minimal de type Vec. Montre comment encapsuler des invariants pour que les appelants n'aient jamais besoin d'unsafe.

  • Leçon 3 • Exposition de Rust à C et audit d'unsafe

    Exporte des fonctions Rust pour consommation C et introduit des outils pour auditer le code unsafe. Complète le tableau FFI et inculque une discipline de révision de sécurité.

  • Leçon 4 • Pointeurs bruts et arithmétique de pointeurs

    Couvre la création de *const T et *mut T, le déréférencement et les règles d'arithmétique de pointeurs. Prépare les étudiants à la gestion manuelle de la mémoire et à la manipulation de pointeurs FFI.

  • Leçon 5 • Notions de base de l'interface de fonctions étrangères

    Déclare des fonctions extern C, gère les types C et gère la propriété à travers la frontière FFI. Permet aux étudiants d'appeler des bibliothèques C existantes depuis Rust en toute sécurité.

Certification

Votre certificat valide de réussite

Ce cours est pour vous :

  • Ingénieurs back-end : cherchant à remplacer C ou C++ par un code système plus sûr.

  • Développeurs embarqués : prêts à appliquer Rust à des environnements nus et no_std.

  • Contributeurs aux logiciels libres : souhaitant lire et écrire des internes avancés de bibliothèques Rust.

  • Architectes logiciels : conception de systèmes distribués à haut débit et à mémoire efficace.

  • Diplômés en informatique : faisant le pont entre les connaissances académiques et les patrons Rust de production.

  • Programmeurs amateurs : qui ont terminé des projets Rust pour débutants et veulent un vrai défi.

Ce que nos apprenants disent

Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir à changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Numérique
J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.
Mariana Ferres
Mariana FerresÉtudiante en Photographie
J'aime le contenu et la façon dont il est présenté ainsi que la transcription des vidéos, ce qui accélère le processus !
Luciana Alvarenga
Luciana AlvarengaÉtudiante en Design d'Ongles
La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.
André Felipe
André FelipeÉtudiant en Ingénierie de Prompt

Formations principales

FAQ

Qui est Dedika?

Le certificat est-il valable au Canada ?

Les cours sont-ils gratuits?

Quelle est la charge de travail des cours?

Comment sont les cours?

Comment fonctionnent les cours?

Quelle est la durée des cours?

Quel est le coût ou le prix des cours?

Qu’est-ce qu’un cours EAD ou en ligne et comment ça fonctionne?

Cours PDF