Rust Professionnel 2/2

Cette formation Rust en deux modules est construite pour des développeurs ayant déjà une petite expérience de la programmation fonctionnelle, et veut batir dessus une expertise avancée en Rust. Ce dernier, en tant que langage de bas niveau, allie robustesse et performance en un seul paquet, ce qui est en fait un challenger sérieux de C et C++.

Ce second module plonge dans les aspects avancés des traits et de l'ownership, qui pave le chemin pour discuter des notions plus avancées, telles que l'encapsulation, la concurrence, les collections, etc. Toutes les sections incluent des exercices que les participants résolvent en session, avec l'aide des formateurs. Aussi, ce module déplie un exemple de bout en bout, qui permet aux participants de suivre et de contribuer à une base de code croissante effectuant des tâches non triviales. La version finale fait environ 3.5 kLOC.

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

Rust Professionnel 2/2

Durée: 3 jours Prix: 2000 EUR HT/pers Pratique: 50%
Prérequis
  • Prog. Fonctionnelle
  • Rust module 1
Public
  • Développeurs
Objectifs Pédagogiques
  • Personalisation du programme
  • [OPT] Créer des macros déclaratives
  • Aller plus loin avec les Traits
  • Ownership avancé
  • Quelques notions de plus
  • Taille des types et boxing
  • Les Collections
  • La mutabilité intérieure
  • [OPT] Le dispatch dynamique
  • La Concurence sans peur
  • [OPT] Le Rust Unsafe et la FFI
Indicateurs de résultats

Pas encore disponibles.

Version: 20 septembre 2022

Adrien Champion (Rust)

Adrien est un développeur R&D senior chez OCamlPro depuis 2018 après avoir obtenu une thèse de doctorat et un post-doc au Japon. Adrien développe en Rust depuis les premières versions du compilateur Rust, et maintient plusieurs paquets open-source en Rust tel que hashconsing, rsmt2, zdd ou safe_index.

Informations pratiques

Contact

Vous pouvez nous contacter par le formulaire en haut de page de chaque formation, ou par mail à contact@ocamlpro.com.

Délais d'accès

Nos formations sont organisées à la demande, dans les deux mois suivant la prise de contact. En cas de personnalisation, le délai d'organisation peut être étendu en conséquence, comme négocié au préalable avec les participants.

Modalités d'inscription et déroulement

Nos formations peuvent être réalisées en présentiel ou à distance.

Avant la formation

  • Entretien ou questionnaire pour identifier les attentes et besoins.
  • Envoi des éléments administratifs : convention, livret d’accueil et règlement intérieur.
  • Envoi des ressources et des instructions pour le bon déroulement de la séance.

Pendant la formation

  • Le stagiaire se présente à la formation avec son ordinateur personnel.
  • Les horaires pour nos formations inter-entreprises in-situ sont :
    • Début de la formation - 9h30
    • Pause déjeuner - 12h à 13h
    • Fin de la formation - 17h30
  • Évaluation tout au long de la formation (mise en situation, quiz, interrogation)

A la fin de la formation

  • Remise d’une attestation de formation
  • Questionnaire d’auto-évaluation
  • Questionnaire de satisfaction permettant d’évaluer la formation

Après la formation

  • Questionnaire de satisfaction à froid (à 3 mois de la formation)

Méthodes mobilisées et modalités d'évaluation

Nos formations s'effectuent par groupes d'au plus 10 personnes, avec un ou deux formateurs en fonction de la quantité d'ateliers pratiques inclus dans la formation.

En fonction du niveau des apprenants et de la taille du groupe, plusieurs modalités pédagogiques peuvent être mises en place : ateliers avec exercices pratiques, discussions guidées, le développement collaboratif, etc.

Les formations peuvent inclure des projets à développer en autonomie, avec l'objectif de consolider les connaissances apprises.

Les ressources pédagogiques sont produites par l'équipes OCamlPro en vue des formations. Les documents sont généralement en anglais, mais peuvent être traduits en français à la demande.

L'évaluation des acquis de la formation se fera en séance au travers d'ateliers, d'exercices et/ou de travaux pratiques.

Accessibilité, handicap

Pour toutes nos formations, nous réalisons des études préalables à la formation pour adapter les locaux, les modalités pédagogiques et l’animation de la formation en fonction de la situation de handicap annoncée. Nous sommes à votre écoute pour toute question ou besoin spécifique, contactez-nous à contact@ocamlpro.com

Prises en charge OPCO et CFP

Nos formations ne sont pas qualifiantes ni certifiantes, et ne peuvent donc être prises en charge par le CFP.

La prise en charge OPCO dépend de la certification Qualiopi. OCamlPro n'a pas encore obtenu cette certification, mais cette demande est en cours.

Après obtention de cette certification, les deux conditions suivantes devront aussi être réunies :

  • la prise en charge doit être totale et couvrir l’ensemble du coût de la formation
  • l’accord de prise en charge doit nous parvenir au plus tard 5 jours avant la session de formation