Ce projet est une implémentation d'une architecture micro-service à l'aide de Spring Boot. Il vise à modéliser les différents postes existants dans le domaine de l'informatique en les associant à des compétences pertinentes.
J'ai commencé par développer le service "Position" permettant de récupérer et afficher tous les postes disponibles, ainsi que les détails d'un poste spécifique par son identifiant. Ensuite, j'ai mis en place le service "Skill" pour gérer les compétences, offrant la possibilité de récupérer et afficher toutes les compétences disponibles ou les détails d'une compétence spécifique par son identifiant.
J'ai établi une connexion entre les deux services en utilisant Open Feign. Ainsi, chaque poste référence les compétences associées grâce à cette liaison, garantissant une intégration transparente entre les données de postes et de compétences.
Pour assurer une meilleure maintenabilité du code, j'ai suivi les bonnes pratiques de développement. J'ai commencé par définir les DTOs (Data Transfer Objects) et les mappers pour la conversion entre les entités et les DTOs. Ensuite, j'ai mis en place les interfaces de services pour les deux services "Position" et "Skill".
c'est les memes résultats mais avec une bonne maniére de travail
J'ai crée d'abord le service Gateway. Ensuite, j'ai configuré le service Discovery.
J'ai implémenté un Circuit Breaker pour garantir la résilience du système.
J'ai configuré le service de Configuration pour centraliser et gérer les paramètres de configuration de manière dynamique. De plus, j'ai effectué des tests approfondis dans ce service pour garantir son bon fonctionnement et sa fiabilité.
Aprés le changement de la valeur à 10
Chaque étape du projet a été réalisée dans une branche distincte, ce qui permet une gestion claire et organisée du développement. Voici les branches correspondant à chaque étape :
- Service Position : 1-1-position-service
- Service Skill : 1-2-skill-service
- Liaison entre les deux services avec Open Feign : 2-open-feign
- Bonnes pratiques pour le service Position : 3-1-best-practices-positions
- Bonnes pratiques pour le service Skill : 3-2-best-practices-skill
- Service Gateway : 4-1-gateway-service
- Service Discovery : 4-2-discovery-service
- Gateway Dynamique : 4-3-dynamic-gateway
- Circuit Breaker : 5-circuit-breaker
- Service de Configuration : 6-config-service
Cette approche permet de suivre facilement le développement de chaque fonctionnalité et de faciliter la gestion des versions du projet.
Initialement, j'ai rencontré des problèmes de dépendances car j'avais commencé à travailler sur le projet existant directement cloné depuis le dépôt Git. Cela n'était pas une pratique recommandée. J'ai donc pris la décision de recommencer depuis le début en créant un nouveau projet, ce qui a entraîné une perte de temps significative.
De plus, mon ordinateur dispose de seulement 8 Go de RAM, ce qui a parfois entraîné des ralentissements et des bugs, ajoutant des obstacles supplémentaires à la progression du travail.
Heureusement, j'ai pu consacrer du temps supplémentaire ce week-end pour terminer le travail en cours.
Je vous remercie pour le temps supplémentaire accordé et pour votre soutien.