Hydroscope est bâti sur une solide base de code, qui tout en restant très flexible et permettant l’innovation, reste robuste à la plupart des bugs et minimise les temps de calcul, réduisant ainsi le coût des erreurs.
50k
lignes de code
752
commits
8%
couverture de test
6
sous-libraries
documentation #
Le code qui fait tourner Hydroscope est bien documenté, sur toutes les fonctions critiques, permettant un débuggage rapide et la coopération efficace de l’équipe de développement.
tests #
Hydroscope a protégé toutes les fonctions clés du code en les soumettant à des batteries de tests, qui sont vérifiés à chaque mise à jour du code, vérifiant que les code fonctionne comme attendu dans chaque scénario. Actuellement Hydroscope a une couverture de test de 8% avec seulement les fonctions principales qui sont couvertes, et Hydroscope espère augmenter ce chiffre en protégeant aussi toutes les fonctions moins critiques (les inputs / outputs, les interfaces graphiques) qui constitue la part principale du code.
gestion des unités #
En tant qu’entreprise d’ingénierie, Hydroscope connaît l’importance de correctement traiter les unités. C’est pourquoi notre code utilise des librairies de suivis des unités, qui associent des unités à chaque variable physique dans notre code, assurant que chaque opération dans notre code produit des résultats dans les bonnes unités. Cela protège notre code de l’une des sources les plus importantes d’erreur dans les codes d’ingénierie.
Tous les temps et toutes les dates sont stockées en UTC, évitant ainsi les fastidieuses conversions de fuseaux horaires.
usage limité de l’IA #
Hydroscope n’est pas le fruit d’une session de vibe-coding. C’est le fruit de plus d’un an de développement humain méticuleux, ou plusieurs itérations ont été nécessaires pour trouver une structure qui puisse accommoder toutes les formes de données de navigation générées par n’importe quel navire.
Lors de ce développement, pour prendre en main certaines nouvelles librairies, l’équipe de développement a eu recours aux LLMs pour générer certains exemples de code. Ces exemples, après avoir été méticuleusement testés ont été soigneusement intégré dans le code d’Hydroscope, assurant que le code généré par IA a été soumis aux mêmes standards rigoureux que le code généré par des humains.
frugalité de la donnée #
Avec l’augmentation des volumes de données, les temps de calculs augmentent également, ce qui signifie qu’avec de gros volumes de données, des petites erreurs peuvent faire perdre beaucoup de temps. Hydroscope minimise ce risque, en réduisant la taille des données au minimum, avec un code très optimisé, des données très compressées, en utilisant des librairies codées en Rust, pour réduire les temps de calcul au maximum.
interface graphique #
Une interface graphique est utilisée pour interagir rapidement avec le code, notamment pour la saisie des données et l’analyse de données ainsi que pour la modélisation du navire. C’est un outil utile pour interagir rapidement avec les données.
gestion des fichiers #
Hydroscope utilise le paradigme de gestion de données CRUD, sauvegardant toutes vos données dans des formats lisibles par les humains. Les navigations .nav, les situations météos .wxs, les modèles météo .wxm, mes traces .nvtr, les navires .shs, les pièces .shp, les polaires .poltw et de nombreux objets sont tous sauvegardés de façon sécurisée et accessible.
orientation objet #
La plupart du code est orienté-objet, permettant une propagation rapide des modifications sans le risque de casser des parties du code. Cela contribue à la robustesse du code.