Assistance au development
Introduction
Comment faire pour partager notre expertise. D'après une première phase d'espérimentation il semble que si l'on attend des demandes de la part des membres de ICube, il ne se passe pas grand chose.
L'idée est donc d'être pro-actif et d'aller porter la bonne parole directement auprès du public concerné.
Il me semble raisonnable dans un premier temps de rester sur une base du volontariat. Si les retours sont assez bon il serait envisageable de rendre la participation obligatoire.
But
- Simplifier/optimiser les developpements des doctorants / chercheurs / ingénieurs
- Péreiniser les développements
- Simplifier les collaboration inter / intra (équipe/laboratoire)
- faciliter la reproductibilité des recherches
Comment
Sauf cas particulier l'idée n'est pas de coder à la place des chercheurs, mais de les guider dans les choix des outils, des techniques et méthodes afin de leur simplifier la tache.
Cela pourra se faire au travers de différents canaux
- Formations en début de thèse
- séminaires
- Audits réguliers (au moins une fois par an) pour les doctorants
- Assistance sur demande pour les doctorants / chercheurs / ingénieurs
Membres de Gaia impliqués
Les développements dans les différents département du laboratoires se faisant dans des langages différents (C, C++, Java, Python, ...) toutes les compétences de Gaia pourraient être mise à contribution.
Nous devrions être capable d'accompagner toutes les types de développements et de fournir assistance et cnoseil.
Practical general advises and references
RCS
put your code on a Revision Control System : git
Use Code Hosting Platform
- github for free public code
- private ICube GitLab for
Use CI to avoid manual launch of compilation/test
Coding convention
Always use a convention coding and be consistent. It could imposed by the team or preceeding works. There is lots of standard for each languages (see following sections)
References
[1] Software Development Best Practices in 2024
Python
C
- [4] SEI CERT C Coding Standard
C++
multi-plateform development
Use packaged libraries dependencies if exist
- Linux: debian:apt/redhat:yum/arch:pacman / ?:snap
- Mac: Homebrew
- Windows: vcpkg
Java
- [8] Oracle Code Conventions for the Java Programming Language
- [9] java style rules
- [10] Google java style rules