background preloader

Architecture

Facebook Twitter

Testable Architecture. Vincent Composieux - Blog - Solution Architect over PHP Symfony, Javascript, Go, NodeJS, Python. Blog Here are some of my blog posts written during long winter evenings...

Vincent Composieux - Blog - Solution Architect over PHP Symfony, Javascript, Go, NodeJS, Python

Latest blog post Handle file uploads using a GraphQL middleware (English) Older blog posts Github activity pushed to refs/heads/master on eko/dotfiles: 3c036 : Added some subdomains to digscan command created a new tag 1.0.0 on eko/graphql-go-upload. pushed to refs/heads/master on eko/graphql-go-upload: 367ba : Added real MIME type guessing bfa3f : Added real MIME type guessing. À la découverte des architectures WEB front-end (1/4) Les sites WEB statiques. L’objectif de cette suite d’articles est de faire le point sur les différents patterns d’architecture front-end.

À la découverte des architectures WEB front-end (1/4) Les sites WEB statiques.

Pour cela, nous analyserons leur fonctionnement, avantages et inconvénients, ainsi que les besoins qui les ont fait émerger au fil du temps. Comprendre l’historique de ces patterns permet de prendre de meilleures décisions lors du développement d’une nouvelle application. Les sites statiques représentent la forme la plus simple d’architecture front. Historiquement, c’est également la première à avoir vu le jour.

Le web, conçu par Tim Berners-Lee, consistait en un ensemble de pages HTML statiques stockées sur des serveurs, liées les unes aux autres via des hyperliens. Cookie connecté - L'architecture technique en cookies. Craftsmanship. Architecture Hexagonale : trois principes et un exemple d’implémentation. Documentée en 2005 dans son blog par Alistair Cockburn, l’Architecture Hexagonale est une architecture logicielle qui a beaucoup d’avantages et connaît depuis 2015 un regain d’intérêt.

Architecture Hexagonale : trois principes et un exemple d’implémentation

L’intention originale de l’Architecture Hexagonale est : Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases. Replace Conditional with Polymorphism. Problem You have a conditional that performs various actions depending on object type or properties.

Replace Conditional with Polymorphism

Solution Create subclasses matching the branches of the conditional. In them, create a shared method and move code from the corresponding branch of the conditional to it. Then replace the conditional with the relevant method call. Before After. Craftsmanship. Architecture Hexagonale : trois principes et un exemple d’implémentation. L'architecture hexagonale avec Symfony. L’architecture hexagonale, également appelée Ports & Adapters, présente deux caratéristiques lorsqu’on la schématise : une forme hexagonale (d’où son nom) et une séparation entre l’application, l’extérieur et une partie contenant des adapteurs permettant aux deux de communiquer.

L'architecture hexagonale avec Symfony

Elle a été pensé par Alistair Cockburn dans les années 2000. Son but est de permettre à une application d’être pilotée sans distinction par des utilisateurs, des programmes, des tests automatisés ou des scripts ainsi que d’être développée et testée de façon isolée de son contexte d’exécution et de ses bases de données. Une architecture hexagonale Les deux grands principes de base de l’architecture hexagonale sont : La séparation entre le code métier et le code technique.

La forme hexagonale — qui aurait tout aussi bien pu être octogonale ou pentagonale — est là pour mettre en évidence les différentes facettes par lesquelles votre application communique avec l’extérieur via des adapteurs. Pourquoi avoir choisi d’utiliser l’architecture CQRS ? Tiller Tiller est une solution de caisse enregistreuse intelligente au service des restaurateurs et commerçants.

Pourquoi avoir choisi d’utiliser l’architecture CQRS ?

L’objectif est d’aider les restaurateurs et commerçants à optimiser leur business en analysant les données de ventes sur une plateforme web de gestion. Le backend de l’application est historiquement développé en PHP avec le framework Symfony. La croissance de Tiller nous a donc amenés à repenser notre plateforme pour répondre à 2 objectifs : Supporter une croissance de plus de 2000 clients et de plus de 20 millions de requêtes par jour,S’assurer de la fiabilité de nos données : nous ne pouvons pas nous permettre de perdre la moindre transaction. C’est dans ce but que nous avons réécrit une partie de notre plateforme (en particulier la partie synchronisation des transactions) en utilisant l’architecture CQRS.

Le CQRS (Command and Query Responsibility Segregation) est une architecture qui permet de séparer la lecture (Query) de l’écriture (Command). Domain Driven Design Évènementiel.

REST micro services

DDD. Les Patterns des Grands du Web – Sharding. Dans tout système d’information, les données sont un actif important qu’il faut capturer, conserver et traiter de façon fiable et efficace.

Les Patterns des Grands du Web – Sharding

Là où un serveur central joue très souvent le rôle de gardien des données, la majorité des grands du web ont opté pour une autre stratégie : le « sharding » ou distribution des données [1]. Le sharding décrit ainsi un ensemble de techniques qui permet de répartir les données sur plusieurs machines pour assurer la scalabilité de l’architecture. Les besoins Avant de détailler l’implémentation, revenons sur les besoins d’origine. On retrouve chez les grands du web plusieurs problématiques communes assez connues : le stockage et l’analyse d’énormes quantités de données, [2], des enjeux forts de performance pour avoir des temps de réponse faibles, des enjeux de scalabilité [3] voire d’élasticité [4] liés aux pics de consultation.

Je souhaiterais insister sur une particularité de ce type d’acteur qui sous-tend nombre des problématiques précédentes. Figure 1.