 Your new post is loading...
 Your new post is loading...
|
Scooped by
Mickael Ruau
December 13, 2021 1:14 AM
|
This blog provides various aspects that need to be considered while developing scalable and robust enterprise applications. I will discuss the following areas of enterprise applications development and considerations: An application should have capabilities to accommodate growth and scale, should be modular to enhance or add new functionalities, and support gradual or abrupt surge. At the same time, it should be seamless for users and efficient for the organizations. Factors or Characteristics that influence the application scalability and robustness The different architecture patterns, pros, cons, and considerations: The standard architecture brings many advantages for development and better flexibility of the system for scaling. How to build scalable enterprise applications: What are the different design methods to consider across various components of the applications? Different technology, tools, framework, software that can be used while designing enterprise applications: Mostly we will highlight open source technologies as much as possible. Basic Architectural Design principles to consider for designing large scale applications In the end, I will provide very high-level architecture considering most of the aspects discussed in this blog. I will provide information in the form of mind maps which I captured for the above areas.
|
Scooped by
Mickael Ruau
December 1, 2021 8:42 AM
|
Key Takeaways We can define different categories of design patterns, including OOP design patterns, organizational patterns, and so on. A number of design patterns are specifically suited to the serverless paradigm. The Pipes and Filters design pattern can be used to decouple a serveless system into simple functional units interconnected in a chain.
|
Scooped by
Mickael Ruau
November 29, 2021 11:07 AM
|
Learn about the Event Aggregator pattern for organizing event communication in a microservices architecture with an example.
|
Scooped by
Mickael Ruau
November 25, 2021 5:05 AM
|
Comprendre les différents design patterns de construction
|
Scooped by
Mickael Ruau
November 3, 2021 9:03 AM
|
Est-ce que quelqu'un peut m'expliquer dans quel cas il faut utiliser le Design Pattern Strategy et pourquoi ? Je ne vois vraiment pas l'intérêt… Merci
|
Scooped by
Mickael Ruau
October 22, 2021 3:41 AM
|
Tutoriel pour apprendre les bonnes pratiques pour coder le patron de conception Singleton Thread-Safe et Lazy avec le langage Java
|
Scooped by
Mickael Ruau
September 16, 2021 7:08 AM
|
Après avoir étudié quatre approches permettant de faire du multitâche sans threads, nous allons voir la dernière, probablement la plus sympathique pour le développeur. C’est une évolution syntaxique des langages permettant de porter le principe d’un pool de hard-threads unique à tout un programme, et donc de porter dans la syntaxe de quoi programmer facilement avec le modèle réactif.
|
Scooped by
Mickael Ruau
September 15, 2021 7:37 AM
|
Découvrez comment les conceptions qui utilisent des microservices peuvent optimiser la vélocité des lancements d’application en déployant de petits services autonomes de façon indépendante.
|
Scooped by
Mickael Ruau
September 15, 2021 6:03 AM
|
This article on Microservices Design Patterns talks about the top design patterns you must follow to build a successful microservices architecture.
|
Scooped by
Mickael Ruau
July 12, 2021 1:45 AM
|
How to split up your large, complex, frontend codebases into simple, composable, independently deliverable apps.
|
Scooped by
Mickael Ruau
July 5, 2021 11:44 AM
|
Describing the way architectures for UIs have evolved over the years, in particular the many and often misunderstood definitions for Model-View-Controller.
|
Scooped by
Mickael Ruau
April 21, 2021 10:33 AM
|
Pour résumer : - Job (Batch) = ensemble de Step (étape) : lire, transformer, écrire.
- JobInstance = Job + identifiant (peut être une date, l’heure, tout ce qui permet d’identifier de façon unique un Job) : Job du 15 Septembre, du 12 Octobre, etc.
- L’identifiant d’un Job peut être construit à partir des informations fournies comme paramètre lors de son lancement. Ces paramètres sont appelés JobParameters.
- L’instance d’exécution d’un Job est appelée JobExecution.
|
Scooped by
Mickael Ruau
April 9, 2021 8:56 AM
|
La loi de Déméter (en anglais Law of Demeter ou LoD), ou Principe de connaissance minimale est une règle de conception pour développer un logiciel, particulièrement du logiciel orienté objet. Cette règle a été inventée à la Northeastern University à Boston durant l'automne 1987, et peut être résumée en " Ne parlez qu'à vos amis immédiats ".
|
|
Scooped by
Mickael Ruau
December 12, 2021 5:33 AM
|
Parmi les design patterns que l'on trouve en programmation, il en est un que l'on oublie un peu trop à mon avis : c'est la notion de façade. Pour bien comprendre de quoi il s'agit, un petit exemple sera plus parlant. Imaginez travailler dans un centre de conception automobile. Votre boulot consiste à concevoir toute la partie commande de la voiture. Vous allez collaborer avec les designers qui conçoivent l'habitacle et le tableau de bord (la vue) et avec les ingénieurs qui conçoivent la partie mécanique (le modèle ou métier). À vous de relier le tout (faire le contrôleur). Si les mécanos commencent à vous parler de boulon de six ou de durite d'injection, vous allez droit à la crise de nerfs. Ce dont vous avez besoin, c'est de savoir comment on fait marcher le tout. Par exemple : comment accélérer. Que la commande d'accélération actionne un régulateur électrique, ouvre un carburateur ou actionne un injecteur de gasoil, vous importe peu. Vous avez besoin de définir une API pour votre partie mécanique. Cette définition peut se présenter simplement par une documentation. Mais aussi par un point d'entrée unique qui vous cache la complexité du métier. Cela s'appelle une façade. Vous ne vous êtes jamais penché sur le problème de savoir comment votre banquier traitait vos chèques ? Vous fournissez au guichet le bordereau dûment rempli comme le prévoit la façade et ce qu'il se passe après vos importe peu, du moment que votre argent va sur votre compte. C'est donc une pratique courante qui, étrangement, se perd lorsqu'on développe des logiciels. Bien souvent, on fait ce qu'il y a à faire sans trop se demander s'il ne serait pas opportun d'isoler un sous-ensemble derrière une API. En programmation objet on encapsule ainsi des éléments. Mais on pense rarement que tout un ensemble pourrait être caché par une seule classe. La littérature sur ce sujet est pourtant vaste. Et utiliser une façade à bon escient est un gage pour l'avenir.
|
Scooped by
Mickael Ruau
November 30, 2021 12:59 AM
|
Key Takeaways Microservices pattern doesn’t refer to the size of the services, decomposing your solution into ‘micro’ pieces is not the goal of the pattern, think of your solution as one whole then look at the requirements to guide you through what pieces to partition out. The article gives you an example of doing that.
|
Scooped by
Mickael Ruau
November 25, 2021 5:07 AM
|
L'évolution des besoins (réductions des coûts et du time to market, concept d'ATAWAD (AnyTime, AnyWhere, AnyDevice)…) a mis en avant certaines architectures (architecture applicative cloud ready, architecture microservices, architecture distribuée…). Cela a engendré de nouvelles problématiques, en particulier l'augmentation du nombre de dépendances et donc potentiellement soumises à la latence du réseau. C'est à ce moment qu'apparaissent à nouveau les Illusions de l'informatique distribuée : Le réseau est fiable. Le temps de latence est nul. La bande passante est infinie. Le réseau est sûr. La topologie du réseau ne change pas. Il y a un et un seul administrateur réseau. Le coût de transport est nul. Le réseau est homogène. Et ces illusions ne prennent pas en compte la partie dépendance et son lot de problèmes (crash, temps de réponse lent, réponse non conforme…). Pour répondre à ces défis, la philosophie de design for failure (les traitements applicatifs doivent, dès leur conception, prévoir le cas où les composants qu'ils appellent pourraient tomber en erreur) a pris encore plus d'importance. Et donc nous sommes passés de : « prévenir toutes les défaillances » à : « les défaillances font partie du jeu ». Parmi toutes les solutions composant le design for failure, nous allons nous pencher sur le patron de conception (design pattern) « Circuit Breaker » popularisé par Michael Nygard dans le livre « Release It! ». Mais avant cela, faisons un tour rapide sur d'autres solutions permettant de gérer des problèmes de dépendances.
|
Scooped by
Mickael Ruau
November 25, 2021 5:04 AM
|
Il est donc très important de prendre le temps de réfléchir à la signification de la relation que vous rédigez chaque fois que vous héritez une classe. La composition est une solution parfaite dans la plupart des situations. En utilisant la composition, vous définissez une relation que possède un objet. Cette technique, qui est aussi une des notions de base de la programmation orientée objet, est souvent associée aux interfaces. La composition se retrouve en outre dans plusieurs design patterns comme le composite, le delegate ou le decorator
|
Scooped by
Mickael Ruau
October 26, 2021 10:18 AM
|
By the way non-embedded engineers, you essentially write firmware too whenever you bury SQL in your code or when you spread platform dependencies throughout your code. Android and iPhone app developers do it when they don’t separate everything they should from dependency on those platforms. I’ve been involved in a lot of efforts where the line between the product code (the software) and the code that interacts with the product’s hardware (the firmware) is pretty fuzzy at best, fuzzy to the point of non-existence
|
Scooped by
Mickael Ruau
October 11, 2021 8:54 AM
|
Silvia Esparrachiari nous explique comment un changement mineur peut impacter un système, et souligne l’importance d’en avoir une vision globale pour mieux comprendre l’impact d’une modification.
|
Scooped by
Mickael Ruau
September 15, 2021 7:40 AM
|
Microservice Architecture, Database per Microservice, Event Sourcing, CQRS, Saga, BFF, API Gateway, Strangler, Circuit Breaker, Externalize Configuration, Consumer-Driven Contract Testing
|
Scooped by
Mickael Ruau
September 15, 2021 6:04 AM
|
Learn about the design patterns of microservice software architecture to overcome challenges like loosely coupled services, defining databases, and more.
|
Scooped by
Mickael Ruau
July 12, 2021 1:57 AM
|
One of the most useful design principles that I've found and followed is that of keeping a good separation between the presentation aspects of a program (the user interface) and the rest of the functionality. Over the years where I've seen this done, I've seen plenty of benefits: - Presentation logic and domain logic are easier to understand when separate.
- You can support multiple presentations on the same base program without duplicating code.
- User interfaces are hard to test, separation keeps more logic in more testable places.
- You can easily add a programmatic API for scripting or exposed as services (I actually see these as alternative presentations).
- Presentation code requires different skills and knowledge to domain code.
|
Scooped by
Mickael Ruau
July 12, 2021 1:22 AM
|
There are several ways to split up the logic of the presentation.
|
Scooped by
Mickael Ruau
May 18, 2021 5:31 AM
|
La manipulation des données stockées par une application utilisant un architecture-pattern de type MVC entraine souvent l'utilisation d'un ORM pour réaliser cette tâche. Par exemple j'utilise personnellement Doctrine que ce soit avec Zend Framework 2 ou Symfony 2. Il en existe d'autres, comme Propel ou Eloquent.
Il existe néanmoins une différence de paradigme parmi les ORM. Et celle-ci "déchire" parfois les utilisateurs d'ORM... Il s'agit de deux patrons (patterns) :
Le Active Record pattern Le Data Mapper pattern (parfois aussi appelé Repository Pattern)
|
Scooped by
Mickael Ruau
April 9, 2021 8:57 AM
|
General responsibility assignment software patterns (ou principles), abrégé en GRASP, se composent de lignes directrices pour l'attribution de la responsabilité des classes et des objets en conception orientée objet. Les différents modèles et principes utilisés par les GRASP sont : le contrôleur, le créateur, l'indirection, le spécialiste de l'information, la cohésion forte, le couplage faible, le polymorphisme, les variations protégées, et l'invention pure.
|