Devops for Growth
112.1K views | +14 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'design pattern'. Clear
Scooped by Mickael Ruau
April 5, 2021 1:36 AM
Scoop.it!

Principles for Microservice Design: Think IDEALS, Rather than SOLID

Principles for Microservice Design: Think IDEALS, Rather than SOLID | Devops for Growth | Scoop.it
For object-oriented design we follow the SOLID principles. For microservice design we propose developers follow the “IDEALS”: interface segregation, deployability (is on you), event-driven, availability over consistency, loose-coupling, and single responsibility.
Mickael Ruau's insight:

Key Takeaways

  • For object-oriented design we follow the SOLID principles. For microservice design we propose developers follow the “IDEALS”: interface segregation, deployability (is on you), event-driven, availability over consistency, loose-coupling, and single responsibility.
  • Interface segregation tells us that different types of clients (e.g., mobile apps, web apps, CLI programs) should be able to interact with services through the contract that best suits their needs. 
  • Deployability (is on you) acknowledges that in the microservice era, which is also the DevOps era, there are critical design decisions and technology choices developers need to make regarding packaging, deploying and running microservices. 
  • Event-driven suggests that whenever possible we should model our services to be activated by an asynchronous message or event instead of a synchronous call. Availability over consistency reminds us that more often end users value the availability of the system over strong data consistency, and they’re okay with eventual consistency. 
  • Loose-coupling remains an important design concern in the case of microservices, with respect to afferent (incoming) and efferent (outgoing) coupling. Single responsibility is the idea that enables modeling microservices that are not too large or too slim because they contain the right amount of cohesive functionality.
No comment yet.
Scooped by Mickael Ruau
July 23, 2020 8:31 AM
Scoop.it!

Que signifie Architecture Leaf-Spine? - Definition IT de Whatis.fr

Que signifie Architecture Leaf-Spine? - Definition IT de Whatis.fr | Devops for Growth | Scoop.it
L'architecture Leaf-Spine est une topologie de réseau à deux couches, composée de commutateurs « feuilles » (Leaf) et de commutateurs « troncs » (Spine). Les serveurs et le stockage sont reliés aux commutateurs Leaf qui, à leur tour, sont connectés aux commutateurs Spine.
Suite de l'article ci-dessous
No comment yet.
Scooped by Mickael Ruau
March 14, 2020 10:10 AM
Scoop.it!

What is a Data Center Fabric? - Definition

Learn how a data center fabric is the basis of a cloud data center architecture and how it affects how applications are delivered and deployed.
No comment yet.
Scooped by Mickael Ruau
November 4, 2019 8:42 AM
Scoop.it!

Facebook Shares Open Networking Switch Design, Part of its Next Gen Networking

Facebook Shares Open Networking Switch Design, Part of its Next Gen Networking | Devops for Growth | Scoop.it

Facebook's enormous scale comes with enormous technological challenges, which go beyond conventional available solutions. For example, Facebook decided to abandon Microsoft's Bing search engine and instead develop its own revamped search capabilities. Another important area is Facebook's massive networking needs, which called for a whole new paradigm, code named data center fabric.

Mickael Ruau's insight:

Facebook made the design of “6-pack” open as part of the Open Compute Project, together with all the other components of its data center fabric. This is certainly not good news for Cisco and the other vendors, but great news for the community. You can find the full technical design details in Facebook’s post.

Faceook is not the only one in the front line of scaling challenges. The open cloud community OpenStack, as well as the leading public cloud vendors Google and Amazon also shared networking strategies to meet the new challenges coming with the new workloads in modern cloud computing environment.

No comment yet.
Scooped by Mickael Ruau
October 21, 2019 6:11 AM
Scoop.it!

MapReduce — Wikipédia

MapReduce

MapReduce est un patron d'architecture de développement informatique, inventé par Google, dans lequel sont effectués des calculs parallèles, et souvent distribués, de données potentiellement très volumineuses, typiquement supérieures en taille à 1 téraoctet.

No comment yet.
Scooped by Mickael Ruau
November 29, 2018 1:47 AM
Scoop.it!

Le design pattern DTO

Le design pattern DTO | Devops for Growth | Scoop.it

Prendre en compte le fonctionnement client-serveur et prévoir les échanges de données qui s'effectueront entre client et serveur.

Mickael Ruau's insight:
Nécessité des DTO

 

Actuellement, la structure de notre architecture client-serveur induit le fonctionnement suivant : 

  1. l'utilisateur de l'application veut se connecter et saisit son identifiant et son mot de passe
  2. le client envoie ces informations au serveur et appelle le service correspondant à la gestion des utilisateurs (UserService)
  3. le service fait appel au DAO correspondant (UserDAO) 
  4. le DAO renvoie au service l'objet User correspondant à l'identifiant et au mot de passe qu'il a reçus
  5. le service renvoie au client cet objet User
  6. le client valide la réception de l'objet User et connecte l'utilisateur

 

Dans le déroulement de ce processus, nous ne nous préoccupons à aucun moment du contenu de l'objet User ni du modèle de données en règle générale. 

Toutefois, la couche de persistance que nous avons implémenté dans le projet PGE JPA comporte une association bidirectionnelle entre User et Event. En effet, chaque User possède une collection d'Event et chaque Event possède un attribut User correspondant à son créateur.

Donc lors de l'étape 5 ci-dessus, le service envoie au client un objet User, mais envoie en même temps tous les objets Event contenus dans la collection. Et comme chaque Event possède un User, ces objets User contenus dans dans les Event sont également envoyés, et les envois bouclent ainsi indéfiniment entre les deux entités.

 

Pour résoudre ce problème, il existe un design pattern nommé DTO, pour Data Transfer Object. Il consiste à créer une nouvelle représentation du modèle de données, épuré et pensé pour le transport des informations fournies par un DAO.

No comment yet.
Scooped by Mickael Ruau
November 28, 2018 1:44 AM
Scoop.it!

Avoid Referencing Domain Model from DTOs and ViewModels | ardalis

Avoid Referencing Domain Model from DTOs and ViewModels | ardalis | Devops for Growth | Scoop.it
Keep your DTOs clean by avoiding using types from your core domain model in them. DTOs should only reference built-in types and other DTO types.
No comment yet.
Scooped by Mickael Ruau
November 26, 2018 1:42 AM
Scoop.it!

DTO vs Value Object vs POCO

DTO vs Value Object vs POCO | Devops for Growth | Scoop.it
DTO vs Value Object vs POCO: all you need to know to distinguish them. Differences and similarities between DTO, Value Object and POCO.
No comment yet.
Scooped by Mickael Ruau
July 12, 2017 7:55 AM
Scoop.it!

Tutoriel d'introduction au génie logiciel

Tutoriel d'introduction au génie logiciel | Devops for Growth | Scoop.it
Ce tutoriel de Baptiste Pesquet vous permettra d'apprendre les bonnes pratiques liées à l'activité de réalisation de logiciels.
No comment yet.
Scooped by Mickael Ruau
December 5, 2016 2:34 AM
Scoop.it!

Design Patterns - Dzone Refcardz

Design Patterns - Dzone Refcardz | Devops for Growth | Scoop.it
Design Patterns provide a fundamental foundation to building maintainable and scalable software. Understanding how the patterns work, why they provide a benefit, and when to use them helps to ensure that software is built from reusable object oriented components. This DZone Refcard provides a quick reference to the original 23 Gang of Four design patterns, as listed in the book Design Patterns: Elements of Reusable Object-Oriented Software. Each pattern includes class diagrams, explanation, usage information, and a real world example.
No comment yet.
Scooped by Mickael Ruau
September 13, 2016 1:19 AM
Scoop.it!

The Gang of Four patterns as everyday objects - DZone Agile

The original Gang of Four design patterns can be explained as real, everyday (and sometimes science-fictional) objects and actions. In this list, sometimes I use other software as the metaphor, as you will be already familiar with it if you are reading here.
No comment yet.
Scooped by Mickael Ruau
May 19, 2015 2:18 AM
Scoop.it!

Tutoriel sur Pattern Command : Undo, variations Compensation/Replay/Memento

Tutoriel sur Pattern Command : Undo, variations Compensation/Replay/Memento | Devops for Growth | Scoop.it
Tutoriel sur Pattern Command : Undo, variations Compensation/Replay/Memento
Mickael Ruau's insight:

La dernière fois, je vous avais parlé de quelques patterns d'implémentation avec les enums Java, et en particulier de l'application des enums au Domain Driven Design grâce à l'inversion de dépendance. Aujourd'hui, nous allons parler d'un design pattern classique, le pattern Command. Après un rappel de sa structure et de ses utilisations, nous irons un peu plus loin en analysant en particulier trois variations permettant d'implémenter l'undo/redo.

No comment yet.
Scooped by Mickael Ruau
April 11, 2015 12:41 PM
Scoop.it!

JBoss Tools - CDI

JBoss Tools - CDI | Devops for Growth | Scoop.it
A bunch of wizards are available for easier creation of:

CDI Web project

Bean

Interceptor

Decorator

Qualifier Annotation

Scope Annotation

Stereoptype Annotation

Interceptor Binding Annotation

Annotation Literal

and more.
No comment yet.
Scooped by Mickael Ruau
October 14, 2020 3:29 AM
Scoop.it!

Modern-Day Architecture Design Patterns for Software Professionals | by Tanmay Deshpande | Better Programming | Oct, 2020

Modern-Day Architecture Design Patterns for Software Professionals | by Tanmay Deshpande | Better Programming | Oct, 2020 | Devops for Growth | Scoop.it
Many modern-day applications need to be built at an enterprise scale, sometimes even at an internet scale. Each application needs to meet scalability, availability, security, reliability, and…
No comment yet.
Scooped by Mickael Ruau
June 16, 2020 4:40 AM
Scoop.it!

Design Patterns - DZone - Refcardz

Design Patterns - DZone - Refcardz | Devops for Growth | Scoop.it
Learn design patterns quickly with Jason McDonald's outstanding tutorial on the original 23 Gang of Four design patterns, including class diagrams, explanations, usage info, and real world examples.
No comment yet.
Scooped by Mickael Ruau
March 9, 2020 10:35 AM
Scoop.it!

Fabric computing - Wikipedia

Fabric computing

Fabric computing or unified computing involves constructing a computing fabric consisting of interconnected nodes that look like a "weave" or a "fabric" when viewed/envisaged collectively from a distance. Usually the phrase refers to a consolidated high-performance computing system consisting of loosely coupled storage, networking and parallel processing functions linked by high bandwidth interconnects (such as 10 Gigabit Ethernet and InfiniBand) but the term has also been used[by whom?

No comment yet.
Scooped by Mickael Ruau
October 21, 2019 6:13 AM
Scoop.it!

Jeffrey Dean — Wikipédia

Jeffrey Dean

Vous pouvez partager vos connaissances en l'améliorant () selon les recommandations des projets correspondants.

Jeffrey Adgate Jeff Dean (1968 - ) est un scientifique et ingénieur informaticien américain.

Il est actuellement vice président chez Google. Il est notamment connu pour avoir créé le patron d'architecture MapReduce et avoir travaillé sur le système de stockage BigTable.

En date de 2014, il est impliqué dans le projet Google Brain1.

Jeffrey Dean est lauréat, avec Sanjay Ghemawat, du prix ACM-Fondation Infosys en informatique de 2012 « pour leur leadership dans le traitement scientifique et l'ingénierie des systèmes distribués à l'échelle de l'Internet ».

No comment yet.
Scooped by Mickael Ruau
May 10, 2019 12:12 PM
Scoop.it!

Practical Coding Patterns For Boss Developers #1: Special Case - DEV Community �‍��‍�

Practical Coding Patterns For Boss Developers #1: Special Case - DEV Community �‍��‍� | Devops for Growth | Scoop.it
Part 1 in a series focusing on advanced patterns for devs!
Mickael Ruau's insight:
Not Your Typical Design Patterns

Everyone is talking about the typical design patterns found in the gang of four book Design Patterns:

  • Strategy
  • Builder
  • Factory
  • Adapter
  • etc.

But, there are way more software design patterns not found in this book which I've found super helpful.

Some of them I've learned from Martin Fowler, others from Domain Driven Design, and other sources.

I figured I'd start to catalogue some of these by sharing them!

No comment yet.
Scooped by Mickael Ruau
November 29, 2018 1:46 AM
Scoop.it!

DTO - Le pattern - Documentation SweetDEV 3.1 - Confluence

DTO - Le pattern - Documentation SweetDEV 3.1 - Confluence | Devops for Growth | Scoop.it
No comment yet.
Scooped by Mickael Ruau
November 27, 2018 1:43 AM
Scoop.it!

Self tracking “Poco’s” (self tracking data transfer objects) | Offir Shvartz

Self tracking “Poco’s” (self tracking data transfer objects) | Offir Shvartz | Devops for Growth | Scoop.it
No comment yet.
Rescooped by Mickael Ruau from JavaScript for Line of Business Applications
September 5, 2017 7:56 AM
Scoop.it!

Writing Scalable React Apps with the Component Folder Pattern

Discover how to organize your React components using the component folder pattern. It will help un-clutter your projects, and your life. It’s soon to be your new best friend.
Via Jan Hesse
No comment yet.
Scooped by Mickael Ruau
March 16, 2017 4:45 AM
Scoop.it!

Writing Comprehensive and Guaranteed Up-to-Date REST API Documentation

Writing Comprehensive and Guaranteed Up-to-Date REST API Documentation | Devops for Growth | Scoop.it
Andreas Evers introduces Spring REST Docs and its test-driven approach to RESTful API documentation. He looks at how it combines the power of Asciidoctor and integration tests to produce documentation that's accurate and easy-to-read, while keeping code DRY and free from annotation overload.
No comment yet.
Scooped by Mickael Ruau
October 9, 2016 5:12 AM
Scoop.it!

SOAT Blog » React et les tests unitaires

SOAT Blog » React et les tests unitaires | Devops for Growth | Scoop.it

Lors d’un précédent article, j’ai présenté le pattern Flux. Je vais partir des composants créés pour l’occasion et me focaliser sur les tests unitaires. L’idée étant de faire un tour d’horizon des technologies existantes au travers d’un test simple.

Vous trouverez le code lié a cet article dans son intégralité sur ce repository github : https://github.com/SoatGroup/flux-react

Mickael Ruau's insight:
En conclusion

Après ce premier aperçu des possibilités de tests unitaires, on se rend compte qu’il n’y a pas qu’une seule façon de tester son application React.

Jest est jeune et s’enrichi release après release de features intéressantes. Il peut se revéler salutaire si l’on veut tester un code legacy éventuellement mal découpé grâce à son système de mock automatique.

Mocha/chai & jsDom sont les outils qui à mon sens sont les plus fourni et reconnu dans le monde du test javascript.

Enfin, Enzyme est à mes yeux la bibliothèque incontournable que tout projet React devrait utiliser pour la mise en place de tests unitaires de composants.

Le monde Javascript évoluant très rapidement, je recommande de tester régulièrement les nouvelles versions de chaque outil et de se tenir à l’affut des nouveautés qui pourraient compléter efficacement notre boite à outil du monde javascript.

Avant de se quitter, mon côté craftsman se sent obligé de rappeler qu’une application React bien construite doit avoir un bon découpage en terme d’affichage/logique metier. Dans cet esprit, le test des composants React ne devrait pas être le plus important en termes de volumétrie.

J’encourage donc l’utilisation de pattern de type Redux.

Pour rappel, le code lié à cet article est disponible dans son intégralité sur le GitHub de Soat.

No comment yet.
Scooped by Mickael Ruau
September 7, 2016 11:49 AM
Scoop.it!

Catalog of Patterns of Enterprise Application Architecture

These pages are a brief overview of each of the patterns in P of EAA. They aren't intended to stand alone, but merely as a quick aide-memoire for those familiar with them, and a handy link if you want to refer to one online. In the future I may add some post-publication comments into the material here, but we'll see how that works out.

Many of these diagrams demonstrate the rather poor GIF output of Visio. The nice diagrams were redrawn for me by David Heinemeier Hansson

Domain Logic Patterns: Transaction Script (110), Domain Model (116), Table Module (125), Service Layer (133).

Data Source Architectural Patterns: Table Data Gateway (144), Row Data Gateway (152), Active Record (160), Data Mapper (165).

Object-Relational Behavioral Patterns: Unit of Work (184), Identity Map (195), Lazy Load (200)

Object-Relational Structural Patterns: Identity Field (216), Foreign Key Mapping (236), Association Table Mapping (248), Dependent Mapping (262), Embedded Value (268), Serialized LOB (272), Single Table Inheritance (278), Class Table Inheritance (285), Concrete Table Inheritance (293), Inheritance Mappers (302).

Object-Relational Metadata Mapping Patterns: Metadata Mapping (306), Query Object (316), Repository (322).

Web Presentation Patterns: Model View Controller (330), Page Controller (333), Front Controller (344), Template View (350), Transform View (361), Two-Step View (365), Application Controller (379).

Distribution Patterns: Remote Facade (388), Data Transfer Object (401)

Offline Concurrency Patterns: Optimistic Offline Lock (416), Pessimistic Offline Lock (426), Coarse Grained Lock (438), Implicit Lock (449).

Session State Patterns: Client Session State (456), Server Session State (458), Database Session State (462).

Base Patterns: Gateway (466), Mapper (473), Layer Supertype (475), Separated Interface (476), Registry (480), Value Object (486), Money (488), Special Case (496), Plugin (499), Service Stub (504), Record Set (508)
No comment yet.
Scooped by Mickael Ruau
April 14, 2015 2:52 AM
Scoop.it!

Introduction à l'injection de dépendances en Java

Introduction à l'injection de dépendances en Java | Devops for Growth | Scoop.it

'injection de dépendances demande des compétences confirmées dans la programmation orientée objet. Dans la mesure du possible, les bases seront expliquées mais certaines notions seront considérées comme acquises, notamment l'utilisation des interfaces.

Les prérequis pour ce tutoriel sont :

  • la programmation orientée objet ;
  • des connaissances basiques en java ;
  • un gestionnaire de dépendances comme Maven est un plus si vous désirez exécuter les exemples.

Tous les codes sources de ce tutoriel sont disponibles sur ce projet GitHub afin que vous puissiez consulter des exemples fonctionnels directement exécutables dans un terminal.

Mickael Ruau's insight:
No comment yet.