Règles de Codage de Rust et Ressources Pédagogiques
- 22 avril 2024
- 13 mins de lecture
- Programmation rust
Table des matières
Quel style de codage dois-je adopter pour mon code Rust afin d’assurer la cohérence avec mes bibliothèques Rust préférées ? Où puis-je apprendre à développer une application spécifique en Rust et quelles bibliothèques dois-je utiliser ? Comment puis-je tirer le meilleur parti des outils de développement Rust ?
Existe-t-il un endroit spécifique où je peux trouver des ressources qui m’aideront à répondre à ces questions ?
Ce billet est notre index des ressources qui aident les développeurs comme vous à maîtriser Rust et à écrire un excellent code Rust. Si vous n’avez pas encore commencé à apprendre Rust, commencez par:
- Lire le livre sur le langage de programmation Rust [Anglais].
- Garder l’aide-mémoire du langage Rust [Anglais] à portée de main pour s’y référer rapidement.
Nous mettrons à jour le contenu au besoin pour inclure de nouvelles ressources pertinentes.
Bulletin d'information
Abonnez-vous à notre bulletin d'information et restez informé(e).
​
Directives de Codage Idiomatique
Les règles de codage sont essentielles car elles améliorent la cohérence, la lisibilité et la compréhension du code. Il est plus facile de naviguer dans un code inconnu lorsqu’il ressemble à un code familier.
Vous trouverez ci-dessous des ressources pour vous aider à rendre votre code Rust idiomatique et à adhérer aux meilleures pratiques de Rust.
​
Meilleures Pratiques pour la Conception des API
Les API (Interfaces de Programmation d’Applications) sont destinées à être appelées par d’autres programmeurs. Il est donc crucial de les concevoir de manière à faciliter leur utilisation et leur maintenance. Vous trouverez ci-dessous des ressources pertinentes.
- “Rust API Guidelines” - Livre [Anglais]: Recommandations sur la conception d’API pour le développement de bibliothèques Rust idiomatiques et interopérables.
- API Élégantes en Rust (non officiel) [Anglais]: Un article de blog répertoriant des astuces pour améliorer la conception du code de bibliothèque Rust.
- Demande de Commentaires sur l’Évolution de l’API [Anglais]: Un guide officiel sur la gestion des changements dans les API. Il aide à déterminer et à signaler les modifications de l’API qui pourraient potentiellement affecter le code des utilisateurs.
​
Directives de Style de Programmation
un style de programmation est composé d’un ensemble de règles de mise en forme qui définissent l’apparence du code. Ces règles couvrent l’indentation, la définition des fonction, la largeur des ligne, les sauts de ligne, etc. Un style cohérent améliore la lisibilité du code. L’outil Rustfmt formate automatiquement le code Rust selon un style idiomatique prédéfini. Voici des ressources détaillant le style de code idiomatique de Rust.
- “Rust Style Guide” [Anglais]: Guide de style Rust idiomatique établi.
​
Patrons de Conception de Code
Explorez les ressources suivantes pour apprendre les motifs de conception Rust : Les patrons de conception dictent la manière de structurer le code Rust et d’exploiter les caractéristiques de Rust pour écrire un code productif, efficace et facilement compréhensible. Explorez les ressources suivantes pour apprendre les patrons de conception de Rust :
- “Rust Design Patterns” (Non Officiel) [Anglais]: Un mdBook proposant de bonnes pratiques de conception de code Rust sous forme de patrons. Il montre comment utiliser les différentes fonctionnalités de Rust pour s’assurer que le code est facilement compréhensible et maintenable. Le livre couvre les idiomes de programmation Rust, les patrons de conception (pratiques recommandées), et les anti-patrons (choses à éviter).
- “Effective Rust” (Non Officiel) [Anglais]: Un mdBook présentant de nombreuses façons d’améliorer votre code Rust. Il explique quand utiliser les macros et comment raisonner sur les durées de vie avec les génériques. De plus, il établit des parallèles avec le C++, ce qui peut être particulièrement bénéfique pour les développeurs C++.
- “Rust Performance Pitfalls” (Non Officiel) [Anglais]: Un article de blog soulignant à la fois les meilleures pratiques et les pièges courants pour écrire un code Rust performant.
- “The Rust Performance Book” (Non Officiel) [Anglais]: Un mdBook qui fournit des techniques qui peuvent améliorer les caractéristiques de performance des programmes Rust, comme la vitesse d’exécution, l’utilisation de la mémoire, et la taille des binaires.
​
Lignes Directrices Relatives aux Commentaires
Les commentaires améliorent la clarté du code. Voici des ressources fournissant des directives pour commenter du code en Rust :
- Convention de Commentaires Rust - RFC 1574 [Anglais]: Guide officiel sur la manière idiomatique de commenter du code.
- Section Commentaires du Livre Rust [Anglais]: Section du livre Rust qui couvre les commentaires en Rust.
- Référence de Syntaxe des Commentaires [Anglais]: Référence détaillée sur la syntaxe des commentaires en Rust.
​
Directives de Documentation
Il existe des méthodes établies pour rédiger une documentation efficace pour les programmes Rust. Voici des recommandations pour documenter le code Rust de manière idiomatique :
- Demande de Commentaires sur les Conventions de Documentation d’API Rust - RFC 1574 [Anglais] : Recommandations officielles pour la documentation d’API. Elle remplace et s’appuie sur la version précédente RFC 505.
- Comprendre la Documentation Rust - le Livre Rustdoc [Anglais] : Documentation de l’outil Rustdoc, qui génère la documentation Rust.
​
Gestion des Erreurs
La gestion des erreurs est cruciale dans le développement de logiciels. Une mauvaise gestion des erreurs peut rendre le code plus difficile à lire et introduire des bogues. Voici des ressources qui offrent de bonnes pratiques pour la gestion des erreurs dans le code Rust :
- “Error Handling in Rust” - Livre (Non Officiel) [Anglais] : Conseils sur la manière de gérer les erreurs dans le code Rust.
- Gestion des Erreurs - de l’Ancien Livre Rust [Anglais] : Guide sur la gestion des erreurs en Rust, avec de nombreux exemples.
​
Recommandations de Convention de Nommage
La cohérence dans le nommage des éléments du programme améliore la lisibilité du code. Les guides suivants fournissent l’approche idiomatique de Rust pour nommer les identifiants (variables, constantes, noms de fonctions, etc), les types, etc.
- Demande de Commentaires sur la Convention de Nommage Rust - RFC 430 [Anglais] : Une synthèse des différentes conventions de nommage dans le code Rust. Vous trouverez de plus amples détails sur la manière dont ces conventions de nommage ont été établies dans RFC 344.
- Demande de Commentaires sur conventions de Nommage pour la Propriété - RFC 199 [Anglais] : Convention de nommage pour les variantes d’opérations qui accèdent à un objet par valeur, par référence et par référence mutable.
- Nommage des API Rust [Anglais] : Convention de nommage qui couvre les éléments des API non traités dans la convention de nommage spécifiée dans la RFC 430. Par exemple, elle inclut des directives pour nommer les getters et setters.
​
Lignes Directrices pour les Tests
Testez-vous votre code ? Les tests sont essentiels dans le développement de logiciels pour détecter rapidement les bogues introduits par des modifications et pour faciliter la maintenance du code par d’autres développeurs. Voici des ressources expliquant comment organiser les tests pour les programmes Rust et comment intégrer les tests dans votre flux de travail :
- Guide de Test Général - Livre Rust [Anglais] : La section Testing du livre Rust enseigne comment organiser et ajouter des tests aux projets Rust.
- Test des Application en Ligne de Commande (Non-officiel) [Anglais] : Guide contenant des instructions sur l’organisation et le test des applications en ligne de commande (CLI), une partie du livre Rust CLI.
Bulletin d'information
Abonnez-vous à notre bulletin d'information et restez informé(e).
​
Ressources sur le Développement et les Outils
Apprendre Rust pour développer diverses applications, savoir choisir les bibliothèques adaptées à chaque problème, et maîtriser les outils de développement de Rust sont des compétences essentielles. Ces ressources peuvent vous aider à exceller dans tous ces aspects.
​
Ressources par Type d’Application
Explorez les ressources adaptées à des types spécifiques d’applications logicielles.
​
Applications Asynchrones
La programmation asynchrone facilite le développement de logiciels à hautes performances I/O bound (tributaires des entrées-sorties).
- La Programmation Asynchrone en Rust (Async Book) [Anglais]: Guide détaillé sur la programmation asynchrone en Rust et les outils associés.
Rust ne possède pas de runtime asynchrone intégré mais repose sur des runtimes (environnements d’exécution) développés par la communauté comme Tokio, Async-std et Smol.
- Tutoriel sur le Runtime Asynchrone Tokio [Anglais]: Tutoriel officiel pour démarrer avec Tokio.
- Documentation de l’API du Runtime Asynchrone Tokio [Anglais]: Documentation de l’API pour Tokio.
- Fonctionnement Interne du Runtime Asynchrone Tokio [Anglais]: Article de blog officiel expliquant le fonctionnement interne de Tokio.
- Test Unitaire des Programmes Tokio Async [Anglais]: Guide officiel pour tester les applications Tokio.
- Livre Async-std [Anglais]: Livre officiel sur l’utilisation du runtime Async-std.
- Documentation de Smol [Anglais]: Documentation de l’API pour le runtime léger Smol.
​
Applications en Ligne de Commande
Guides pour le développement d’applications CLI telles que les utilitaires de terminal.
- Applications en Ligne de Commande en Rust - Livre [Anglais] : Apprenez à construire des applications CLI en Rust.
- Test d’une Application en Ligne de Commande [Anglais] : Guide pour organiser et tester des applications CLI.
- Clap Mode Déclaratif [Anglais] : Guide d’utilisation de Clap en mode déclaratif.
- Clap Mode Impératif [Anglais] : Un guide d’utilisation pour utiliser Clap de manière impérative.
​
Logiciels Embarqués
Ressources pour l’utilisation de Rust dans le développement de systèmes embarqués :
- Le Livre de Rust Embarqué [Anglais] : Guide officiel de Rust pour les logiciels embarqués.
- Ressources pour l’Aérospatiale et la Robotique [Anglais] : Liste catégorisée de crates pour les logiciels d’ingénierie aérospatiale.
​
Interface Utilisateur Graphique (GUI)
Explorez les frameworks d’interface utilisateur graphique ou GUI.
- Choisissez Votre Framework GUI [Anglais] : Liste des frameworks GUI de Rust classés par technologies et plateformes logicielles supportées.
​
Graphismes et Jeux
Ressources pour la programmation graphique et le developement de jeux.
- Écosystème de Développement de Jeux en Rust [Anglais] : Catalogue des crates Rust pour la création de jeux.
- Liste de Ressources pour le Développement de Jeux [Anglais] : Tutoriels, vidéos et livres pour apprendre à développer des jeux avec Rust.
- Exemples de Jeux Construits en Rust [Anglais] : Liste catégorisée des jeux construits avec Rust, par la communauté Rust.
- Écosystème des Effets Visuels (VFX) [Anglais] : Catalogue de crates spécialisés dans divers aspects de la production de VFX, du rendu 3D à l’animation, pour trouver rapidement celui qui convient à votre projet.
- Ressources Pédagogiques sur les Effets Visuels (VFX) [Anglais] : Compilation de vidéos, tutoriels, articles et plus encore pour améliorer votre compréhension de l’utilisation de Rust pour les effets visuels.
​
Apprentissage Automatique (Machine Learning) et Données
La communauté Rust soutient l’analyse de données et l’apprentissage automatique.
- Écosystème d’Apprentissage Automatique en Rust [Anglais] : Liste des crates Rust utiles pour différentes tâches d’apprentissage automatique telles que le clustering, les réseaux neuronaux et le calcul scientifique.
​
Applications Web
Dans ce monde connecté où les services à distance sont de plus en plus courants, les applications web continuent d’être demandées. Voici des ressources pour apprendre à développer des applications web avec Rust, ainsi que des frameworks populaires à utiliser.
- Page de Présentation des Frameworks Web en Rust [Anglais] : Page d’informations sur les frameworks et bibliothèques web en Rust.
- Le Livre sur WebAssembly et Rust [Anglais] : un livre sur Rust et WebAssembly.
​
Apprentissage des Outils et des Bibliothèques
Explorez les ressources qui fournissent des informations sur les différents crates pour les différentes applications de Rust et vous aident à mieux comprendre et utiliser les outils de développement Rust.
- Le Guide non officiel de l’écosystème Rust [Anglais] répertorie les crates les plus populaires pour différentes applications Rust.
​
Systèmes de Build, Gestion des Paquets et Autres Outils
- Livre Cargo [Anglais]: Livre officiel pour utiliser Cargo, l’outil de build et de gestion des packages Rust.
- Documentation de Clippy [Anglais]: Un guide couvrant l’utilisation et les aspects de développement de Clippy, le linter Rust.
- Documentation des Lints de Clippy [Anglais]: Explication détaillée de toutes les règles de lint mises en œuvre dans Clippy, catégorisées par version de Clippy.
​
Environnement de Développement
- Développer dans un Environnement Hors Ligne: Notre article vous guide dans le processus de mise en place (installation) de la chaîne d’outils Rust et de gestion des paquets sur un ordinateur qui n’est pas connecté à Internet.
- Livre Rustup [Anglais]: Livre officiel pour utiliser Rustup, l’outil de gestion de la chaîne d’outils Rust.
- Template DevContainer de Visual Studio Code pour Rust [Anglais]: Template pour Visual Studio Code conteneur de développement pour développer en Rust sans installer la chaîne d’outils. Pour en savoir plus sur les modèles DevContainer de VSCode cliquez ici.
​
Compilateur Rust
- Gestion Interne des Fermetures [Anglais]: Comprendre comment le compilateur Rust gère les fermetures.
Bulletin d'information
Abonnez-vous à notre bulletin d'information et restez informé(e).
​
Extra
- Le Livre de Référence Rust [Anglais]: La référence principale pour le langage de programmation Rust. Vous y trouverez des descriptions des fonctionnalités du langage Rust, de son fonctionnement et des motivations derrière sa conception.
- “The Little Book of Rust Books” [Anglais]: Une liste de livres officiels, non-officiels et spécifiques à l’utilisation de Rust.
- “Awesome Rust Books” [Anglais]: Une compilation de livres gratuits et payants pour apprendre la programmation Rust et l’appliquer à diverses fins.
- Liste des Sites Web qui Suivent l’État de Rust dans des Domaines Connexes [Anglais]: Liens vers des sites web qui suivent les progrès de Rust dans différents domaines.
- “Awesome Rust” [Anglais]: Une liste complète et catégorisée de crates Rust, ainsi que des ressources d’apprentissage telles que des livres, des podcasts et des articles de blog.
- “Rust-learning” [Anglais]: Une collection de liens vers diverses ressources pour apprendre Rust, y compris des blogs, des livres, des vidéos, des podcasts, et plus encore.
- “Idiomatic-rust” [Anglais]: De nombreuses ressources pour écrire du “code Rust ergonomique”.
- *Rust CookBook [Anglais*: Conseils sur la manière de mettre en œuvre des tâches de programmation courantes en Rust, couvrant divers domaines.
Utilisez-vous des ressources de programmation Rust pertinentes qui n’ont pas été mentionnées dans ce billet ?
N’hésitez pas à les partager dans la section des commentaires ou à nous le faire savoir.