Aller au contenu principal

Lead Développeur des bibliothèques open sources Neo9

depuis avril 2018

Lors du démarrage du projet Catalogue en 2019, les développements des bibliothèques open source de Neo9 sont en suspens. Le projet a consisté en une remise à jour tout en accompagnant les changements nécessaires.

  • Ajout de nouvelles bibliothèques et de skeleton pour démarrer plus rapidement les nouveaux projets
  • Maintien des librairies existantes, patch de sécurité, correction de bugs
  • Amélioration de la couverture de test
  • Gestion des contributions des collaborateurs

Taille d'équipe

1-2 développeurs

Compétences

Contributions

node-routing : Base des micro-services chez Neo9

Elle élimine tous les developpements annexes à la création d'un micro-service. Elle intègre :

  • Routage HTTP basé sur les annotations (routing-controllers)
  • Une validation (class-validator) et une transformation des données entrantes (class-tranformer)
  • 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 mongo, 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-client : Outil de migration d'une base de donnée mongo d'une version applicative à une autre

Joue des scripts rollup et prend en charge un lock ainsi que le rollback en cas d'erreur.

node-conf : Chargeur de configuration par environment

Cette bibliothèque passée en TypeScript charge une configuration par environment, 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

Permet d'avoir un type d'erreur N9Error standard qui peut embarque un context en plus du message et du statut de l'erreur, ainsi que d'autres informations aidant à l'analyse des erreurs.

microservice-skeleton & gateway-skeleton

Exemples pour commencer des micro-services.