L’architecture hexagonale en 5 min

L’objectif principal de l’architecture hexagonale est de découpler la partie métier d’une application de ses services techniques. Ceci dans le but de préserver la partie métier pour qu’elle ne contienne que des éléments liés aux traitements fonctionnels. Cette architecture est aussi appelée “Ports et Adaptateurs” car l’interface entre la partie métier et l’extérieur se fait,…

Continuer à lire

Eviter d’effectuer des “casts” avec Bridge et Visiteur

Lorsqu’on intervient sur du code existant, la plupart du temps, on manipule des objets sous leur forme générique, par l’intermédiaire de classes abstraites ou d’interfaces. Dans la majorité des cas, les membres exposés par la classe abstraite ou par l’interface suffisent à utiliser l’objet en faisant appel à des fonctions ou des données membres. Toutefois,…

Continuer à lire

Microservices en 10 min: tests et déploiement (partie 3)

PARTIE 1 PARTIE 2 PARTIE 3 Sommaire général Concevoir des microservices Appels entre Microservices Intégration continue et implémentation des tests Références Sommaire Intégration continue Effectuer une “build” pour tous les services Effectuer une “build” par service Plusieurs “build pipelines” Appliquer des tests Pyramide des tests Tests unitaires Tester un service   Tests de performance   Tests “end-to-end”…

Continuer à lire

Microservices en 10 min: appels entre services (partie 2)

PARTIE 1 PARTIE 2 PARTIE 3 Sommaire général Concevoir des microservices Appels entre Microservices Intégration continue et implémentation des tests Références Sommaire Choix des interfaces Utiliser le “semantic versioning” Créer un nouveau point d’accès en cas de “breaking changes” Appels synchrones ou asynchrones Tolérer les échecs partiels Pattern “circuit breaker” Chef d’orchestre ou chorégraphie Service…

Continuer à lire

Microservices en 10 min: références

PARTIE 1 PARTIE 2 PARTIE 3 Sommaire général Concevoir des microservices Appels entre Microservices Intégration continue et implémentation des tests Références Références Livres: Building Microservices: https://www.amazon.fr/Building-Microservices-Sam-Newman/dp/1491950358 Microservice Architecture: Aligning Principles, Practices, and Culture: https://www.amazon.fr/Microservice-Architecture-Aligning-Principles-Practices/dp/1491956259 Domain-Driven Design vite fait: http://blog.infosaurus.fr/public/docs/DDDViteFait.pdf Domain-Driven Design: Tackling Complexity in the Heart of Software: https://www.amazon.fr/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215 Designing and Deploying Microservices: https://www.nginx.com/resources/library/designing-deploying-microservices/ Généralités:…

Continuer à lire

Microservices en 10 min: Concevoir des microservices (partie 1)

PARTIE 1 PARTIE 2 PARTIE 3 Sommaire général Concevoir des microservices Appels entre Microservices Intégration continue et implémentation des tests Références Sommaire Quelques définitions Architecture orientée service (SOA) Qu’est-ce que l’approche en microservices ? Les microservices ne sont pas la solution idéale Concevoir des microservices Principe général Séparation de la logique fonctionnelle en contextes bornés…

Continuer à lire

Architecture en Microservices en 10 min

PARTIE 1 PARTIE 2 PARTIE 3 Sommaire général Concevoir des microservices Appels entre Microservices Intégration continue et implémentation des tests Références L’architecture microservice est un style d’architecture pour développer une application avec plusieurs petits services fonctionnant en utilisant des processus différents et utilisant des “moyens légers” pour communiquer. “Moyens légers” signifie, des moyens n’ayant pas…

Continuer à lire

Comprendre .NET Standard en 5 min

Les technologies Microsoft adressent un grand nombre de plateformes différentes allant de systèmes d’exploitation comme Windows à des appareils mobiles comme les tablettes. D’autres parts, depuis quelques années, Satya Nadella a impulsé une “ouverture” des technologies Microsoft vers d’autres plateformes que Windows. Cette ouverture a encore augmenté le nombre de plateformes sur lesquelles des technologies…

Continuer à lire

“Mocker” une dépendance statique

Les objets statiques sont souvent utilisés pour mutualiser rapidement l’implémentation d’un comportement ou plus rarement pour partager des instances d’objets entre plusieurs classes. L’utilisation d’objets statiques peut être un choix d’architecture maitrisé. Dans ce cas, on a la possibilité de modifier l’implémentation des objets statiques ainsi que des objets consommateurs. Dans d’autres cas, l’utilisation d’objets…

Continuer à lire

Principe de développement DRY (Don’t Repeat Yourself)

DRY pour “Don’t Repeat Yourself” est un principe de programmation visant à exercer les développeurs à reconnaître des duplications puis de trouver le moyen de les supprimer. Ces duplications peuvent se produire évidemment dans le code mais aussi à tout niveau de l’application comme par exemple dans son architecture, dans les tests unitaires ou dans…

Continuer à lire