Plateforme GAIA - informatique Graphique, Analyse de données et Intelligence Artificielle

Assistance au development

De Plateforme GAIA - informatique Graphique, Analyse de données et Intelligence Artificielle
Aller à la navigation Aller à la recherche

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

  • [2] PEP 8 : Style Guide for Python Code
  • [3] Style Guide for Python Code

C

  • [4] SEI CERT C Coding Standard

C++

  • [5] SEI CERT C++ Coding Standard
  • [6] Best practise C++
  • [7] Google C++ style guide

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

Javascript

  • [11] MDN Javascript guidelines
  • [12] W3Schools JavaScript Style Guide
  • [13] Google JavaScript Style Guide
  • [14] The Modern JavaScript Tutorial