Articles

Affichage des articles associés au libellé Conception

Architecture Hexagonale

Introduit par Alistair Cockburn, ce pattern d’architecture aussi connu sous le nom de Port & Adapters Architecture place le métier au centre de l’architecture. L'architecture hexagonale, ou architecture à base de ports et d'adaptateurs, est un patron d'architecture utilisé dans le domaine de la conception des logiciels. Elle vise à créer des systèmes à base de composants d'application qui sont faiblement couplés et qui peuvent être facilement connectés à leur environnement logiciel au moyen de ports et d'adaptateurs. Ces composants sont modulaires et interchangeables ce qui renforce la cohérence des traitements et facilite l'automatisation des tests. L'intention originelle etait de  Permettre à une application d’être pilotée aussi bien par des utilisateurs que par des programmes, des tests automatisés ou des scripts batchs, et d’être développée et testée en isolation de ses éventuels systèmes d’exécution et bases de données. L'architecture hexagonale...

Principe de Responsabilité Unique

Qu'est-ce qu'une Responsabilité ? Dans le contexte du Principe de Responsabilité Unique (SRP), nous définissons une responsabilité comme "une raison de changement". Si vous pouvez penser à plus d'un motif de modification pour une classe, alors cette classe a plus d'une responsabilité. Développement du Principe de Responsabilité Unique Le Principe de Responsabilité Unique (SRP) est l'un des principes fondamentaux de la conception logicielle, souvent associé au paradigme de la programmation orientée objet. Il stipule qu'une classe ou un module ne devrait avoir qu'une seule raison de changer, ou en d'autres termes, il ne devrait être responsable que d'une seule tâche ou fonctionnalité. Clarification de la Responsabilité Le terme "responsabilité" dans le SRP fait référence aux raisons potentielles pour lesquelles une classe ou un module pourrait nécessiter une modification à l'avenir. Une classe ou un module est considéré comme re...

Programmation Orientée Aspect

Introduction et Définition L'AOP est une technique de conception et de programmation qui vient en complément de l'approche  Orientée Objet ou procédurale. Elle permet de factoriser (et donc de rendre plus cohérentes) certaines  fonctionnalités, dont l'implémentation aurait nécessairement été répartie sur plusieurs classes et  méthodes dans le monde objet ou sur plusieurs bibliothèques et fonctions dans le monde procédural. L'AOP n'est pas une technique autonome de conception ou de programmation: sans code procédural  ou objet, la notion d'Aspect perd tout son sens. Mais inversement, on pourrait dire que les  programmations Orientée Objet ou procédurale ne sont pas complètes puisque inaptes à mettre en  facteur ou à bien séparer certaines responsabilités des éléments logiciels. Glossaire • Code cible (ou socle ou encore code de base) : Ensemble de classes qui constituent une  application ou une bibliothèque. Ces classes n'ont pas connaiss...

Modèle de Séparation Commande ou Requête

Le modèle CQRS (Command and Query Responsibility Segregation) de séparation des responsabilités en matière de commande et de requête sépare les opérations de lecture et de mise à jour pour un magasin de données. L’implémentation de CQRS dans votre application peut optimiser ses performances, son évolutivité et sa sécurité. La flexibilité accordée par la migration vers CQRS permet d’améliorer les capacités d’évolution d’un système au fil du temps et empêche les commandes de mise à jour de provoquer des conflits de fusion au niveau du domaine. CQRS, ou Command Query Responsibility Segregation, est un modèle de conception architectural utilisé dans le développement logiciel, principalement dans les applications basées sur la séparation des responsabilités de traitement des commandes (commands) et des requêtes (queries). Ce modèle encourage la division des opérations de lecture (queries) des opérations de modification (commands) dans les systèmes logiciels. Explication détaillée de CQRS 1....

Modèle Entity-Boundary-Interactor

 L' « Entity-Control-Boundary (ECB) » ou « Entity-Boundary-Control (EBC) », ou « Boundary-Control-Entity (BCE) », qui pourrait être traduit en français par « Entité-Contrôle-Frontière », est un patron d'architecture utilisé pour la conception de logiciels orientés objet. Il vise à structurer les classes selon leurs responsabilités dans la mise en œuvre de cas d'utilisations. The Entity-Boundary-Interactor (EBI) Architecture has been made known by Robert C. Martin in his talks about Clean Architecture . Entity The Entity objects hold the data used by the system and all the behaviour naturally coupled to this data. Each Entity object represents a concept relevant to the problem domain and wich holds identity and resilient (persistent) data. Jacobson tells us that an Entity object should contain the logic that would change when the Entity itself changes, ie. if the data structure it holds changes, the operations on that data will also need to change and therefore they should b...

Modèle d'Approvisionnement en Evènements

Architecture Evénementielle (EDA) : Une Introduction aux Patterns d'Event Sourcing et d'Event Streaming Dans le domaine de l'architecture logicielle moderne, l'Architecture Evénementielle (EDA) émerge comme une approche puissante pour la construction de systèmes distribués réactifs. Les systèmes basés sur EDA réagissent aux changements d'état, appelés événements, et transmettent ces événements à travers une architecture découplée. Deux patterns essentiels dans cette approche sont l'Event Sourcing et l'Event Streaming. Event Sourcing  L'Event Sourcing est un pattern de conception qui consiste à enregistrer chaque action effectuée sur un système sous forme d'événement. Au lieu de stocker uniquement l'état actuel des données, le système conserve un journal d'événements, souvent appelé magasin d'ajout, qui enregistre toutes les actions qui ont modifié l'état du système. Concrètement, cela signifie que chaque opération effectuée sur les do...

Modèles de Conception de Construction

Ils définissent comment faire l'instanciation et la configuration des classes et des objets. Fabrique Fabrique (Factory Method) : Elle permet d'instancier des objets dont le type est dérivé d'un type abstrait. La classe exacte de l'objet n'est donc pas connue par l'appelant. Les fabriques étant en général uniques dans un programme, on utilise souvent le patron de conception singleton pour les implémenter. <code> FabriqueArticles +creerArticle():void +detruireArticle(a:Article):void Article +Recycler():void * + articlesDisponibles </code> De son côté, la fabrique gère une collection d'Articles disponibles (c'est-à-dire existant en mémoire mais qui ne sont plus utilisés par personne). Lorsqu'une classe cliente lui demande de créer un nouvel Article: * Si elle dispose d'Articles disponibles, elle en prend un, le recycle et le renvoie à l'appelant. * Dans le cas contraire, elle peut prendre la décision d'instancier un nouvel Artic...

Modèles de Conception Structuraux

Les patterns structuraux définissent comment organiser les classes d'un programme dans une structure plus large (séparant l'interface de l'implémentation). Adaptateur  Adaptateur (Adapter) : permet de convertir l'interface d'une classe en une autre interface que le client attend. L’adaptateur fait fonctionner ensemble des classes qui n'auraient pas pu fonctionner sans lui, à cause d'une incompatibilité d'interfaces Bridge Pont (Bridge) Composite Objet composite (Composite) Décorateur  Décorateur (Decorator) : permet d'attacher dynamiquement de nouvelles responsabilités à un objet. Les décorateurs offrent une alternative assez souple à l'héritage pour composer de nouvelles fonctionnalités. ```console Catalogue << interface >> Collection +Ajouter(obj:object):void +Supprimer(obj:object):void +Lire(indice:int):object Livrable CollectionLectureSeule +Ajouter(obj:object):void +Supprimer(obj:object):void +Lire(indice:int):object * contient D...

Modèles de Conception Comportementaux

Les patterns comportementaux définissent comment organiser les objets pour que ceux-ci collaborent (distribution des responsabilités) et expliquent le fonctionnement des algorithmes impliqués. Chaîne de Responsabilité Chaîne de responsabilité est un patron de conception comportemental qui permet de faire circuler des demandes dans une chaîne de handlers. Lorsqu’un handler reçoit une demande, il décide de la traiter ou de l’envoyer au handler suivant de la chaîne. Commande Commande est un patron de conception comportemental qui prend une action à effectuer et la transforme en un objet autonome qui contient tous les détails de cette action. Cette transformation permet de paramétrer des méthodes avec différentes actions, planifier leur exécution, les mettre dans une file d’attente ou d’annuler des opérations effectuées. ```console << interface >> Commande +Execute():void AjouterThemeCmd -sujet:string +Execute():void PublierArticleCmd -auteur:string -sujet:string -titre:string ...