CQRS : Command Query Responsability Segregation

Dans mon article sur la scalabilité et la haute disponibilité, j’avais rapidement abordé le sujet du pattern CQRS. Aujourd’hui, nous allons voir un peu plus en détail les concepts et le fonctionnement de ce pattern. CQRS, qu’est-ce que c’est ? CQRS, pour Command Query Responsibility Segregation, est un pattern reposant sur le principe de la séparation des opérations de lecture (Query) et d’écriture (Command) Ce pattern est né du constat que les besoins, fonctionnels ou techniques, d’une application sont souvent très différents selon que l’on cherche à lire ou à modifier une donnée.

Continuer

Polly

Dans la continuité de l’article sur les architectures microservices, j’aimerais aujourd’hui vous parler d’une bibliothèque .NET permettant d’aider au développement d’une application résiliente. J’ai nommé… Polly ! Il existe déjà des patterns pour résoudre certains problèmes “classiques”, comme le pattern retry ou encore le pattern disjoncteur. Le souci est qu’ils sont souvent assez complexes à implémenter et à intégrer dans un code neuf ou existant. C’est là qu’intervient Polly, en fournissant un ensemble de stratégie prêt à l’usage et ne nécessitant que quelques lignes de code pour être opérationnelles.

Continuer

L'architecture micro-services

Dans mon précédent article sur la scalabilité et la haute disponibilité, j’avais abordé le concept d’architecture microservices. Je vais aujourd’hui détailler un peu plus ce type d’architecture qui répond à de nombreuses problématiques rencontrées par les entreprises. Dans son article Who Needs an Architect?, Martin Fowler développe sa propre définition de l’architecture : À première vue, l’architecture d’une application se résume en la décomposition de la totalité du système applicatif considéré en éléments constitutifs plus simples, aux rôles, responsabilités et limites bien identifiés.

Continuer

The darkness has come... !

Si vous êtes allez sur mon blog récemment, vous avez surement du remarquer quelques modifications esthétiques ? Non ? Vraiment… ? :( Bon ok, je vous aide : un thème sombre ! Pourquoi ? Cela fait quelque temps que ce sujet était dans mes cartons, et ce, pour plusieurs raisons. La première était de prendre un peu plus la main sur le thème que j’avais forké au moment de la création du blog (Tranquilpeak par Thibaud Lepretre).

Continuer

Mermaid

Ces derniers mois ont été assez compliqués en termes de planning, et je n’ai pas eu autant de temps que je l’aurais souhaité pour publier sur le blog. Pour reprendre le rythme, voici un petit billet rapide pour vous faire découvrir un formidable outil Javascript : Mermaid ! Celui-ci permet de générer des diagrammes (séquence, état, Gantt…) à partir d’un syntaxe textuelle proche du Markdown. Le moteur de blog que j’utilise, Hugo, inclut un shortcode pour intégrer des diagrammes Mermaid directement dans un article.

Continuer

Le refactoring

Vaste sujet ! Dans cet article, nous allons parler clean code, dette technique, refactoring et anti-patterns. Il fait suite à la série sur les designs patterns que vous pouvez retrouver ici : Les design patterns et les principes SOLID en développement logiciel Les patterns creationals Les patterns structurals Les patterns behaviorals Tout logiciel est constitué de code, et c’est la qualité de ce code qui va faire d’une application une application de qualité.

Continuer

Migration de mon blog Wordpress vers Hugo sur Gitlab

Je suis (enfin !) de retour sur le blog après plusieurs mois d’inactivité. Dernièrement, le temps d’écrire m’a pas mal manqué (!) et la migration de mon blog vers une nouvelle plateforme m’a aussi beaucoup occupé. C’est justement ce dernier point que je vais aborder aujourd’hui. Vous avez dû remarquer (j’espère…) que le style du blog a bien changé et que les performances sont bien meilleures qu’avant (j’espère aussi… !). On va faire ensemble le tour de toutes les nouveautés, et je vais essayer de vous expliquer au fur et à mesure les raisons qui m’ont poussé à changer.

Continuer

Les design patterns - Behavioral (4/4)

Troisième et dernière catégorie de pattern que je vais aborder, les behavioral patterns ou patrons de comportement. Il en existe 11 et ils permettent de définir comment organiser nos objets pour que ceux-ci collaborent. Si jamais vous les avez ratés, je vous invite à (re)lire les parties précédentes : L’introduction sur les design patterns Les patterns creationals Les patterns structurals Chain of responsibility Ce pattern permet de séparer les objets émetteurs de requêtes et les objets chargés de recevoir et traiter les requêtes.

Continuer

Authentification Azure AD avec ReactJS

J’ai récemment eu besoin de mettre en place une authentification via Azure AD dans une application web ReactJS. Globalement, la procédure est assez simple, mais il y a tout de même quelques subtilités sur lesquelles j’ai perdu pas mal de temps et que je souhaiterais partager ;) Côté client, c’est la librairie ADAL.js (Active Directory Authentication Library for Javascript) qui va nous aider. Microsoft supporte de nombreuses plateformes différentes en fonction des environnements client ou serveur visés (plus d’informations sur ce lien).

Continuer

Je vais aujourd’hui m’essayer à un nouveau format d’article. Celui-ci à pour objectif d’aborder un sujet technique que je trouve intéressant mais de manière moins approfondie que d’habitude, c’est-à-dire avec peu ou pas de code. L’idée est de se familiariser avec le sujet pour être capable d’en parler et d’ouvrir des portes pour creuser plus profond si nécessaire (ce sera le cas avec ce thème, j’ai plusieurs articles d’approfondissement dans ma “bannette”).

Continuer

Photo de l'auteur

Matthieu Anceret

Blog d’un développeur Tourangeau passionné

Software Architect @C2SBouygues

France, Tours