Programme de la formation
Personalisation du programme
Certaines sections sont indiquées comme étant [OPT]ionnelles. Elles couvrent des sujets que les participants pourront apprendre par eux-même grâce aux bases du cours. Ils pourront le faire soit grâce au matériel pédagogique (et aux exercices inclus pour chaque section optionnelle) soit grâce aux nombreuses autres ressources disponibles en ligne. Ces sections sont optionnelles pour ne pas prolonger la formation au delà de trois jours. Nous invitons chaque client à personnaliser ce cours, en choisisant:
- soit de couvrir chaque section optionnelle, mais sans les exercices
- une section optionnelle présentée en entier avec ses exercices
- une version sur mesure de ce qui précède, décidée en amont du cours
Il est également possible de n'inclure aucune des sections optionnelles, afin de pouvoir passer plus de temps sur le tronc commun. En effet, toutes les notions optionnelels peuvent parfaitement être abordées en auto-didacte par le programmeur ayant de solides bases, et il peut-être plus intéressant d'utiliser le temps de formation pour approfondir et pratiquer plus largement les concepts fondamentaux et avancés de Rust.
[OPT] Créer des macros déclaratives
- Définir des macros déclaratives
- Gérer la visibilité des macros
- Règles d'hygiène
Aller plus loin avec les Traits
- La Règle de cohérence des Traits
- Les Traits fondamentaux de la librairie standard
- Traits et durée de vie (Add, Mul)
- Bornes de traits avancées
Ownership avancé
- Plongeons dans les règles d'emprunt
- Le sous-typage de lifetimes
- Stocker des références
- Implémenter des traits pour des références
Quelques notions de plus
- Etat global: const et static
- Le Turbo fish
Taille des types et boxing
- Les types de taille fixe et de taille dynamique
- Les types de données algébriques
- Le reference counting
Les Collections
- Types fondamentaux: Vec, HashMap, BTreeMap
- Les traits fondamentaux: Iterator, IntoIterator, Collect
La mutabilité intérieure
- Une discussion détaillée de RefCell
- Utilisons rayons pour pousser RefCell à ses limites
[OPT] Le dispatch dynamique
- Les objets de trait
- Des collections hétérogènes
- Les bornes de lifetime pour les objets de trait
La Concurence sans peur
- Rc et Arc
- Send et Sync
- Lancer des threads et passer des messages
[OPT] Le Rust Unsafe et la FFI
- Les pouvoirs d'unsafe
- Les pointeurs purs
- Les traits et fonctions unsafe
- Les bases de la FFI
- Appeler Rust depuis C et inversement