
Lead développeur des bibliothèques open source Neo9
mars 2018 - septembre 2024 · 6 ans 7 mois
Lors du démarrage du projet Catalogue en 2018, les développements des bibliothèques open source de Neo9 étaient en suspens. Le projet a consisté en une remise à jour tout en accompagnant les changements nécessaires.
- Ajout de nouvelles bibliothèques et de skeletons pour démarrer plus rapidement les nouveaux projets
- Maintien des bibliothèques existantes, patchs de sécurité, corrections de bugs
- Amélioration de la couverture de tests
- Gestion des contributions des collaborateurs
Taille d'équipe
- 1-2 développeurs
Compétences
Contributions
node-routing : Base des microservices chez Neo9
Elle élimine tous les développements annexes à la création d'un microservice. Elle intègre :
- Un routage HTTP basé sur les annotations (routing-controllers)
- Une validation (class-validator) et une transformation des données entrantes (class-transformer)
- Le pattern d'IoC (Inversion of Control) grâce à TypeDI
- Un chargeur de configuration (node-conf) ainsi que sa validation au démarrage
- Un logger (node-log)
- L'exposition de métriques pour Prometheus (promster)
- Un client HTTP basé sur Got
- La génération et exposition de la documentation OpenAPI
- etc.
mongodb-client : Surcouche du client MongoDB standard
Ce client permet de standardiser l'usage des collections MongoDB, et propose beaucoup de simplifications par rapport au client standard. Quelques exemples :
- il intègre automatiquement la gestion des dates de création/modification/dernière mise à jour, ainsi que l'utilisateur effectuant l'action
- il peut aussi tracer toutes les modifications sur une collection dans une collection d'historisation avec une simple option
keepHistoric: true
mongodb-migration : Outil de migration d'une base de données MongoDB d'une version applicative à une autre
Cet outil exécute les scripts de migration, avec un verrou et un rollback en cas d'erreur.
node-conf : Chargeur de configuration par environnement
Cette bibliothèque passée en TypeScript charge une configuration par environnement, avec héritage d'une configuration globale et surcharge possible par fichier externe.
node-log : Simple bibliothèque de log au format JSON hors dev
node-utils : Des fonctions utilitaires
Cette bibliothèque fournit un type d'erreur N9Error standard qui peut embarquer un contexte en plus du message et du statut de l'erreur,
ainsi que d'autres informations aidant à l'analyse des erreurs.
microservice-skeleton & gateway-skeleton
Ces exemples servent de point de départ pour créer de nouveaux microservices.
















