Bonnes pratiques en développement Rust
Pour nous résumer à l’issue de cette première partie, nous devrions, lorsque nous développons des librairies ou des programmes avec Rust :
- Écrire des codes suffisamment explicites et « bien pensés » dès leur conception.
- Réfléchir aux risques auxquels nous exposons les consommateurs·trices de nos codes : Bien que Rust nous protège beaucoup plus et beaucoup mieux que beaucoup d’autres langages, notre « fil rouge » illustre à merveille le fait que nous devons toujours rester vigilants. Ce que nous faisons bien à cette étape se retrouve dans la qualité de notre code ainsi que dans nos tests unitaires.
- Documenter (et non pas
commenter) nos codes :- en pensant en premier lieu à la documentation du programme ou de l’API ;
- et en second rideau aux développeurs·ses (nous-même compris·e) qui devront relire ou maintenir le code.
- Concevoir, mettre en place et vérifier régulièrement des batteries de tests unitaires, dont les exemples de documentation font partie intégrante.
Nous avons également appris que nous pouvons créer des exemples de codes externes au code source, dans un dossier dédié à cet exercice (par défaut, examples/).
Nous utilisons régulièrement :
rstfmt(formateur) etclippy(linter) pour assainir et homogénéiser nos codes.
Enfin, nous n’en avons pas encore beaucoup parlé puisque nos codes étaient simples et sans erreurs de compilation, mais le compilateur Rust rustc est notre meilleur allié pour nous avertir en cas de problème et nous donner des pistes d’amélioration.
En résumé
-
Nous documentons nos codes au fur et à mesure ;
-
Nous insérons des codes exemples dans cette documentation dès que possible ;
-
Nous définissons et écrivons des tests unitaires dès que possible (il est souvent bénéfique d’écrire les tests avant le code lui-même).
-
Nous effectuons cette boucle le plus souvent possible :
- compilation (via
cargo run,cargo testou à défautcargo buid) ; - formatage avec
cargo fmt; - analyse syntaxique avec
cargo clippyet enfin - tests unitaires avec
cargo test.
- compilation (via
Conclusion
Plus tôt nous intégrons toutes ces étapes dans nos méthodes de travail, mieux nous nous portons durablement et apprécions l’environnement de développement natif proposé par Rust.