Sélectionner une page
Formations Langage Autres langages Formation Rust Langage Programmation Ultra-Rapide

Formation Rust

Rated 4,4 out of 5
Rust Logo
Prix 2490€ HT / personne
Durée 4 jours (28 heures)
Parcours CPF

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en CPF

Présentation

Notre formation Rust vous permettra de découvrir ce nouveau langage de programmation Open Source créé par Mozilla Research, conçu pour aider les développeurs à concevoir des applications ultra-rapides et sécurisées. Il permet d’éviter les erreurs de segmentation et assure la sécurité des threads, le tout avec une syntaxe élégante. Il a de très bonnes performances via sa gestion de la mémoire faite au niveau du compilateur et une compilation native.

Durant ce cours, vous apprendrez toutes les capacités qu’offre Rust telles que le haut niveau d’abstractions, la sécurité garantie de la mémoire, des threads sans problème de concurrence, des templates : trait-based generics, du pattern matching, l’inférence de type, et un binding C efficace, le tout avec runtime minimal !

Sa conception vous permettra de créer des programmes qui ont la performance et le contrôle d’un langage de bas niveau tel que le C, mais avec les abstractions puissantes d’un langage de haut niveau (C#, Java…). Ces propriétés rendent Rust adapté aux programmeurs qui ont de l’expérience dans des langages comme C/C++ ou Python, et qui recherchent une alternative plus sûre afin d’écrire un code qui fonctionne plus efficacement sans sacrifier l’expressivité.

La devise de Rust est :
Performance, Sécurité, Productivité, choisissez-en trois !

À travers cette formation, vous apprendrez à utiliser tous les concepts de Rust à savoir : borrowing, ownership, lifetimes, mutabilité, génériques et bien d’autres choses afin de développer efficacement vos prochains projets !

Comme dans toutes nos formations, celle-ci vous présentera la toute dernière version de Rust Programming Language, Rust 1.74.

 

Objectifs

  • Découvrir, comprendre et utiliser le langage Rust et son écosystème dans vos futurs projets
  • Utiliser la programmation concurrente et la bonne gestion d’erreur avec Rust
  • Migrer efficacement vos applications C ou C ++ vers un environnement Rust

 

Public visé

Développeurs.

 

Pré-requis

  • Connaissances de base d’un système Unix
  • Connaissance de programmation (C, C#, Java, C#)

 

POUR ALLER PLUS LOIN

 

Pré-requis logiciels

  • Installer Docker et Docker Compose
  • Installation de gnuplot

 

Recommandations de lecture avant et après la formation

  • Un article qui montre étude de cas sur l’écriture d’une application Rust avec seulement qu’une API Minimale
  • Cet article présente le langage de programmation Rust ainsi que les raisons de sa popularité
  • Une vidéo explicative en quelques minutes du langage de programmation Rust crée par Fireship

Programme de la formation Rust

 

Introduction à Rust

  • Téléchargement et installation de l’environnement Rust
    • rustup, cargo, rustc, crates.io
  • Mon premier programme
  • Ecrire vos tests unitaires : unit tests
  • Command-line arguments
  • Ecrire son web-serveur

 

Types basique : Basic types

  • Machine types
    • Integer, Floating-point, bool, Characters types
  • Tuples
    • Pointer types
    • References
    • Boxes
    • Raw pointers
  • Arrays, Vectors, and Slices
  • String types

 

Ownership

  • Ownership
  • Moves : operations, control flow, indexed content
  • Copy types : exception
  • Rc & Arc: shared ownership

 

Les conditions

  • if, else if et else
  • Les loops (loop, for et while)

 

References

  • References as values
  • Rust references VS C++ references
  • Assignation, comparaison, Null
  • References to slices and trait objects
  • Passing & Returning
  • Structs
  • Lifetime parameters
  • Sharing VS mutation

 

Expressions

  • Blocks & semicolons
  • Declarations
  • if and match, if let
  • Loops
  • Return expressions
  • Function & method calls
  • Fields & elements
  • Reference operators
  • Arithmetic, bitwise, comparison, and logical operators
  • Assignment, Type casts, Closures
  • Precedence & Associativity

 

Gestion d’erreur

  • Panic
  • Aborting, Result, Catching, Ignoring
  • Result type aliases
  • Propagating errors
  • Manipuler plusieurs types d’erreurs
  • Custom error type

 

Tools : Crates and modules

  • Crates : Build profiles
  • Modules : separate files
  • Visibility
  • Paths & imports
  • The standard prelude
  • Items : building blocks
  • Library
  • Répertoire src/bin
  • Attributes
  • Tests & documentation
  • Integration tests & Unit test
  • Benchmarks, Fuzzing
  • Doc-tests
  • Specifying dependencies
  • Versions
  • Cargo.lock
  • Publication : crates.io
  • Workspaces

 

Structs

  • Named-field structs
  • Tuple-like, Unit-like structs
  • Struct layout
  • Définir : methods implémentation
  • Generic structs
  • Lifetime parameters
  • Héritage : Traits for struct types
  • Mutabilité interne

 

Enums & patterns

  • enums : Rich data structures using
  • Generic enums
  • Patterns
    • Literals, variables, wildcards
    • Reference, Tuple & struct patterns
      Matching multiple, guards, @ patterns
  • Remplir : binary tree

 

Traits & Generics

  • Trait objects, layout
  • Drop, Sized, Clone, Copy
  • Deref & DerefMut, Default
  • AsRef & AsMut
  • Borrow & BorrowMut
  • From & Into
  • Borrow & ToOwned
  • Self in traits
  • Subtraits
  • Static methods
  • Associated types (or, how iterators)
  • Generic traits (or, how operator overloading)
  • Buddy traits (or, how rand::random())
  • Reverse-engineering bounds

 

Surcharge d’opérateurs

  • Operator overloading
  • Arithmetic and bitwise operators
  • Unary, Binary operators
  • Affectation : Compound assignment operators
  • Egalité : Equality tests
  • Ordered comparisons
  • Index & IndexMut
  • Autre opérateurs

 

Closures

  • Capturing variables
  • Closures : Borrow, steal, function & types
  • Performance
  • Sécurité
  • FnOnce & FnMut
  • Callbacks

 

Iterateurs

  • Iterator & IntoIterator traits
    • iter & iter_mut methods
    • drain methods
  • Adapters
    • Map & filter
    • filter_map & flat_map
    • scan
    • take & take_while, skip & skip_while
    • peekable, fuse
    • Reversible iterators and rev
    • inspect, chain, enumerate, zip
    • by_ref, cloned, cycle
  • Consuming iterators
    • Accumulation : count, sum, product
    • max, min, max_by, min_by
    • max_by_key, min_by_key
    • Comparaison : item sequences
    • any & all
    • position, rposition, & ExactSizeIterator
    • fold, nth, last, find
    • collect & FromIterator
    • Extend trait, Partition
  • Implémenter son propre itérateur

 

Collections

  • Vec<T>
  • Accessing elements
  • Iteration
  • Growing & shrinking vectors
  • Joining, Splitting, Swapping
  • Sorting & searching
  • Comparing slices
  • Random elements
  • Règles : Rust rules out invalidation errors
  • VecDeque<T>, LinkedList<T>, BinaryHeap<T>
  • HashMap<K, V> and BTreeMap<K, V>
  • Entries
  • Map iteration
  • HashSet<T> and BTreeSet<T>
  • Set iteration
  • Hashing & custom hashing algorithm

 

Strings & Text

  • ASCII, Latin-1, Unicode , UTF-8
  • Conversions : characters, integers, digits
  • String and str
  • Inspection
  • Appending, inserting, Removing text
  • Conventions for searching and iterating
  • Patterns : Searching & replacing
  • Iterating over text, Trimming
  • Case conversion for strings
  • Parsing other types from strings
  • Converting other types to strings
  • Borrowing as other text-like types
  • Strings as generic collections
  • Formatting values, text, numbers, custom…
  • Debugging
  • Regular expressions
  • Basic Regex use & lazily
  • Normalization forms, unicode-normalization crate

 

Input & output

  • Readers & Writers : Files, Directories, Seeking
  • Binary data, compression, serialization
  • OsStr & Path
  • Path & PathBuf methods
  • Filesystem access functions
  • Platform-specific features
  • Pile réseau : Networking

 

Concurrency

  • Fork-join parallelism, spawn & join, Error
  • Sharing immutable data, Rayon, Mandelbrot
  • Channels, Sending, Receiving values
  • Pipeline, Channel features & performance
  • Thread safety: Send and Sync
  • Iterator channel
  • Partager : Shared mutable state
  • Mutex in Rust : mut & Mutex
  • Deadlock, Poisoned mutexes
  • Multi-producer channels
  • Read-write locks (RwLock)
  • Condition variables (Condvar)
  • Atomics, Global variables

 

Macros

  • Expansion, Repetition, Debugging, Error
  • Utilisation : Json, Fragment types, Recursion, Traits with macros
  • Bonnes pratiques : Scoping
  • Import and export

 

Module complémentaire (+1 jour) : Approfondissement

 

Les bases de la programmation concurrente

  • Définition : Mandelbrot
  • Parsing pair : command-line arguments
  • Mapping pixels :  complex numbers
  • Tracer : Plotting the set
  • Ecriture d’un fichier image
  • Mandelbrot : Concurrent program
  • Exécuter : Mandelbrot plotter
  • Sécurité

 

Unsafe code

  • Unsafe blocks
  • Exemple : ASCII string type
  • Unsafe functions, traits, Raw pointers
  • Exemple: RefWithFlag
  • Nullable pointers
  • Type sizes & alignments
  • Pointer arithmetic
  • Moving into and out of memory
  • Exemple : GapBuffer
  • Interop : Foreign functions, calling function lib C & C++
  • Common data representations
  • Déclaration : foreign functions & variables
  • Raw interface libgit2, Safe interface libgit2

FAQ – QUESTIONS / RÉPONSES

La formation est-elle dispensée en présentiel ou à distance ?

Cette formation se déroule en présentiel ou en distanciel.

Qu'est-ce que le CPF ?

Le CPF (Compte Personnel de Formation) est un dispositif régit par l’état français pour permettre aux salariés de disposer d’un financement mobilisable uniquement pour la formation.

Pourquoi suivre une formation éligible au CPF ?

Pour profiter des nombreux avantages qu’offre le CPF :

Une formation finançable jusqu’à 100%
Une formation de qualité approuvée par l’instance gouvernementale France Compétences
L’obtention d’une certification délivrée par France Compétences

Que dois-je faire si mon solde CPF n’est pas suffisant ?

Contactez-nous ! Nos conseillers peuvent vous aider à trouver des sources de financement complémentaires en fonction de votre situation, tels que Pôle emploi, votre entreprise, vous-même (via carte bleue), ou encore l’OPCO Atlas.

Comment m'inscrire via moncompteformation ?

Il suffit de cliquer sur le bandeau vert «CPF» à droite de l’écran (ou en haut si vous utilisez un mobile). Vous devrez ensuite sélectionner une date de session depuis le site MonCompteFormation.

Comment augmenter son solde CPF ?

Vous êtes crédités à la fin de chaque année travaillée sur votre compte Moncompteformation. Vous pouvez recevoir jusqu’à 500 euros par an. Le plafond est fixé à 5 000€ sauf pour des cas spécifiques où la limite atteint 8 000€..

Les cas spécifiques où le plafond est fixé à 8 000€ :

  • Salarié non qualifié
  • Travailleur reconnu handicapé
  • Victime d’accident du travail ou de maladie professionnelle ayant entraîné une incapacité permanente d’au moins de 10 %
  • Bénéficiaire d’une pension d’invalidité
  • Bénéficiaire d’une pension militaire
  • Bénéficiaire d’une allocation ou rente d’invalidité des sapeurs-pompiers volontaires
  • Bénéficiaire de la carte mobilité inclusion portant la mention « invalidité »
  • Bénéficiaire de l’allocation aux adultes handicapés (AAH)

Que dois-je faire si mon solde CPF n’est pas suffisant ?

Contactez-nous ! Nos conseillers peuvent vous aider à trouver des sources de financement complémentaires en fonction de votre situation, tels que Pôle emploi, votre entreprise, vous-même (via carte bleue), ou encore l’OPCO Atlas.

Comment puis-je financer cette formation ?

Contactez-nous pour trouver une solution de financement sur mesure ! Nous vous aiderons à choisir parmi les options suivantes :

  • OPCO (opérateurs de compétences) de votre entreprise
    • Le plan de développement des compétences
    • Les actions collectives pour les formations Big Data
    • Le dispositif FNE-Formation
    • Dispositif TPE / PME
  • Pôle Emploi
    • L’AIF (Aide Individuelle à la Formation pour les demandeurs d’emploi)
    • L’ARE (Allocation chômage d’aide au retour à l’emploi)
  • Le dispositif CPF (MonCompteformation)
  • Contrat cadre

Langues et Lieux disponibles

Langues

  • Français
  • Anglais / English

Lieux

  • France entière
    • Paris
    • Lille
    • Reims
    • Lyon
    • Toulouse
    • Bordeaux
    • Montpellier
    • Nice
    • Sophia Antipolis
    • Marseille
    • Aix-en-Provence
    • Nantes
    • Rennes
    • Strasbourg
    • Grenoble
    • Dijon
    • Tours
    • Saint-Étienne
    • Toulon
    • Angers
  • Belgique
    • Bruxelles
    • Liège
  • Suisse
    • Genève
    • Zurich
    • Lausanne
  • Luxembourg

Nos Formateurs Référents

Laurent

Laurent

Je pratique Rust depuis quelques années dans un contexte industriel comme langage de programmation pour le backend d’applications web. Je contribue également à la communauté Rust par la publication de paquets open source. Pour moi, Rust fournit une expérience de développement système performante, moderne et surtout sûre.

Bastien

Bastien

Utilisateur depuis la bêta en 2015, depuis j’ai créé des projets personnels (sur GitHub) et après cela, j’ai fait un serveur web en Rust dans une start-up (backend avec gestion des templates). J’ai écrit un filesystem en Rust pour la plateforme Android pour la startup Moore.

Témoignages

Rated 4,0 out of 5
28 novembre 2023

Les + : Formateur compétent et réactif

Formation complète, qui constitue une introduction solide au langage

Florian T. de chez ELSYS DESIGN SA

Afficher tous les témoignages

Rated 4,0 out of 5
28 novembre 2023

Les + : Formateur compétent et réactif

Formation complète, qui constitue une introduction solide au langage

Florian T. de chez ELSYS DESIGN SA
Rated 5,0 out of 5
28 novembre 2023

Les + : Bon équilibre théorie / pratique

Mathis L. de chez ELSYS DESIGN SA
Rated 4,0 out of 5
28 novembre 2023

Les + : formateur compétent et réactif

bonne gestion du timing

tour complet des aspects du langage

Les – : il faudrait donner l’environnement (docker, etc…) à l’avance pour faciliter l’installation des postes de travail

Tim D. de chez ELSYS DESIGN SA
Rated 4,0 out of 5
28 novembre 2023

Les + : Bon équilibre cours TP.

Les – : Manque d’information sur la finalité des moyens à préparer pour la formation afin de mieux se préparer et perdre moins de temps en début de formation.

Nicolas C. de chez ELSYS DESIGN SA
Rated 4,0 out of 5
28 novembre 2023

Les + : clair, bonne ouverture sur le langage avec toutes les clés pour démarrer dans de bonne condition.

Les – : manque un peu de temps pour les débutants

CERF A. de chez ELSYS DESIGN SA
Rated 5,0 out of 5
28 novembre 2023

Les + : La connaissance détaillée du Rust de Mickael, le support jupyter, le contenu général du cours.

En synthèse : Merci Mickael pour cette vue d’ensemble très claire du Rust ! Tu as éclairci pas mal de zones d’ombre dans ma compréhension du langage. J’espère pouvoir continuer à pratiquer régulièrement dans mon cadre pro, et je ne manquerai pas de m’en servir dans mes projets perso 🙂

Bonne continuation !

Matthias D. de chez ELSYS DESIGN SA
Rated 4,0 out of 5
28 novembre 2023

Je recommande la formation

Clémentin H. de chez ELSYS DESIGN SA
Rated 4,0 out of 5
28 novembre 2023

Les + : Disponibilité, adaptation du formateur

Christophe P. de chez ELSYS DESIGN SA
Rated 5,0 out of 5
28 novembre 2023

Les + : pedagogie du formateur, support de cours et interactivité.

Collomb J. de chez ELSYS DESIGN SA
Rated 5,0 out of 5
28 novembre 2023

Les + : Disponibilité et compétence du formateur

Les – : RAS

Guilhem R. de chez ELSYS DESIGN SA
Rated 4,0 out of 5
28 novembre 2023

Je recommande la formation

Gaetan M. de chez ELSYS DESIGN SA
Rated 5,0 out of 5
28 novembre 2023

Je recommande la formation

Mathieu P. de chez ELSYS DESIGN SA

Noter la formation

Prix 2490€ HT / personne
Durée 4 jours (28 heures)
Parcours CPF

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en CPF

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp