-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Retour audit Code Reckons #474
Comments
Actions suggérées
|
ConclusionLa qualité globale de la gestion du projet est très élevée. L'effort mis sur la structuration du code, la volonté de suivre les évolutions du langage, la qualité et la quantité de la documentation et des tests contribuent à cet état de fait. De mon point vu d'expert, MFRONT est un logiciel d'une qualité exemplaire compatible avec une utilisation dans un contexte industriel à fort enjeu de sureté. Il est important de permettre à ce projet de poursuivre ces efforts afin de continuer à fournir un logiciel de qualité. |
État des lieux du code sources et des artefacts afférents
Numération
Nombre total de fichiers total : 3084
Nombre total de fichiers efficaces : 2309
L'ensembles des fichiers sources représentes 237069 LOC de code effectif dont 77134 de commentaires
soit un taux de commentaires in situ de 32.5%
La quantité de commentaire est bonne pour un projet de cette envergure.
Qualité du code
Le langage principal est C++. La norme utilisée est C++17.
Le niveau d'utilisation de C++ est très bon et de multiples idiomes modernes sont utilisés.
Un élément central est le moteur de Expression Templates. C'est un élément complexe et fondamental
mais dont la complexité est maîtrisé.
MFRONT dépend des bibliothèques suivantes:
La quantité de dépendances est acceptable. La majorité d'entre elle sont optionnelles et ces options
sont gérés de manière adéquat au niveau CMake.
Les dépendances gérant l'interaction avec python sont à réévaluées. De nouvelles bibliothèques d'interaction C++/Python plus flexible comme pybind11 où nanobind sont à explorer.
Qualité de la maintenance
On note la présence de:
M4
etMake
est aussi présent mais doit être éliminée.cppcheck
comme analyseur statique/linter, potentiellement à automatiser via du CI.plus que des tests unitaires. Ils faudrait essayer d'augmenter leur nombres et leur atomicité.
Le déploiement, prise en main et vérification de la bibliothèque a un niveau acceptable d'automatisation
Un effort est à entamer pour augmenter la quantité et la granularité des tests unitaires
Une unification définitive de la stratégie de build est à envisager. M4 est une technologie sur le déclin
et son maintien doit se justifier.
La qualité et la quantité de la documentation est excellente. Il serait potentiellement bénéfique de fournir
une documentation type "Rationale" sur les choix d'implémentations interne et/ou une documentation orientée
contributeur.
Le processus de release est basée sur un rythme annuel. La numérotation majeur est liée au standard C++ supporté.
Cette stratégie est extrêmement importante car elle limite la quantité de code mort //
core rot
.La quantité d'Issues est acceptable, leur gestion est planifiée et leur temps moyen de complétion est maîtrisé.
The text was updated successfully, but these errors were encountered: