Spécification technique de « Architecture.md (2021) »
(matklad.github.io)Recommandations pour la rédaction de ARCHITECTURE.md
- Il est fortement recommandé aux mainteneurs de projets open source d’ajouter un document
ARCHITECTUREà côté deREADMEetCONTRIBUTING. - Ce document décrit l’architecture de haut niveau du projet et, comme il doit être lu par les contributeurs réguliers, il vaut mieux le garder court.
- Le document
ARCHITECTUREne devrait contenir que des éléments qui ne changent pas souvent, et il est préférable de le relire quelques fois par an plutôt que d’essayer de le synchroniser avec le code.
Objectif et importance du document
- La connaissance de l’architecture physique du projet est la principale différence entre les contributeurs ordinaires et les développeurs principaux.
- Lorsqu’on ne connaît pas bien le projet, il faut deux fois plus de temps pour écrire un patch, et dix fois plus de temps pour déterminer où le code doit être modifié.
- Le fichier
ARCHITECTUREest un moyen efficace de combler cet écart, tout en offrant une occasion de réfléchir à la structure du projet.
Structure du document
- Il doit commencer par une vue d’ensemble apportant un angle nouveau sur le problème, puis fournir une carte du code détaillée expliquant les relations entre les modules.
- Il faut mentionner les fichiers, modules et types importants, mais encourager la recherche par nom plutôt que les liens directs, afin d’éviter la maintenance de ces liens.
- Il faut signaler explicitement les invariants architecturaux et souligner les frontières entre les couches.
Invariants architecturaux et frontières
- Les invariants importants sont souvent exprimés par l’absence de quelque chose, et il est difficile de les identifier en lisant simplement le code.
- Les frontières entre les couches ou les systèmes contiennent implicitement des informations sur l’implémentation du système et contraignent toutes les implémentations possibles.
Préoccupations transversales
- Une fois la carte du code terminée, il faut ajouter une section distincte sur les préoccupations transversales.
- Un bon exemple de document
ARCHITECTUREest learchitecture.mdde rust-analyzer.
Avis de GN⁺ :
- Le document
ARCHITECTUREjoue un rôle important pour aider à comprendre le projet et permettre aux nouveaux contributeurs de se familiariser rapidement avec la base de code. - Ce document clarifie la structure du projet et met en avant les principes architecturaux et les frontières importantes afin d’aider les développeurs à mieux comprendre le système.
- Dans la communauté open source, l’adoption d’un document
ARCHITECTUREpeut contribuer à la croissance durable et à la maintenance du projet, ce qui en fait une approche très utile et intéressante pour les développeurs.
1 commentaires
Avis Hacker News