⚠️ Attention,

Ce talk contient du code pouvant heurter la sensibilité des plus crafts.

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Shodo.io

@SHODOioFR

Architecturoplastie hexagonale d’un backend Node.js : Opération à code ouvert       

@AdrienJoly

@JulienTopcu

@JkNourry

👨🏽‍⚕️

👨🏽‍⚕️

👨‍⚕️

@AdrienJoly

@JulienTopcu

@JkNourry

Dr. Adrien Joly

Techleaderie JavaScriptale

No Dr. Julien Topçu

No Dr. Jordan Nourry

Coachologie
Craftsmanshippienne

Coachologie Technique

👨🏽‍⚕️

👨🏽‍⚕️

👨‍⚕️

Patient: OpenWhyd.org

@AdrienJoly

@JulienTopcu

@JkNourry

Préparation du terrain opératoire:

Biopsies Clean Codiennes

@AdrienJoly

@JulienTopcu

@JkNourry

Opération du Patient

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Diagnostic

Glaucome de la lisibilité du code

 

Identification de la Pathologie

Couplage métastasé (fort) entre les différents organes (couches)

 

Hémorragie généralisée des responsabilités

Métier, base de données, parsing de requête

 

Malformation du système TESTo-endocrinien

Manque de pertinence et ciblage précis de l'erreur, filet de sécurité défaillant

 🩺

@AdrienJoly

@JulienTopcu

@JkNourry

Renforcer la surveillance des constantes du patient : Approval Testoscopie

@AdrienJoly

@JulienTopcu

@JkNourry

Opération du Patient

@AdrienJoly

@JulienTopcu

@JkNourry

💉

Bilan d'étape

Ciblage chirurgicale des erreurs                                                                             ↘️Opacité  

 

Contrats d'entrée et sortie rendus explicites                                                        ↘️Opacité

 

Filet de sécurité des Approval Tests permettant un pivot de refactoring        ↘️Viscosité

 

@AdrienJoly

@JulienTopcu

@JkNourry

Réduction de la charge mentale tumorale par Clean Codepexie

@AdrienJoly

@JulienTopcu

@JkNourry

Opération du Patient

@AdrienJoly

@JulienTopcu

@JkNourry

💉

Bilan d'étape

Nommage explicite dans le code                                                                            ↘️Opacité

 

Réduction de la charge cognitive                                                                            ↘️Opacité

Single Level of Abstraction

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

3 formes de Complexité

Essentielle

Obligatoire

Accidentelle

@AdrienJoly

@JulienTopcu

@JkNourry

Architecture Hexagonale

Le Traitement

source: beyondxscratch.com

@AdrienJoly

@JulienTopcu

@JkNourry

source: beyondxscratch.com

@AdrienJoly

@JulienTopcu

@JkNourry

source: beyondxscratch.com

@AdrienJoly

@JulienTopcu

@JkNourry

source: beyondxscratch.com

@AdrienJoly

@JulienTopcu

@JkNourry

source: beyondxscratch.com

@AdrienJoly

@JulienTopcu

@JkNourry

Complexité Essentielle

Complexité Obligatoire

Complexité Obligatoire

↘️Complexité Accidentelle

Infrastructure

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Introduction de la couche métier : Domainoplastie

@AdrienJoly

@JulienTopcu

@JkNourry

Incision

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Domaine Passe-Plat

@AdrienJoly

@JulienTopcu

@JkNourry

Opération du Patient

@AdrienJoly

@JulienTopcu

@JkNourry

Domaine Passe-Plat

@AdrienJoly

@JulienTopcu

@JkNourry

Greffe de la logique métier par lobotomie de la couche de persistence

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Couplagectomie

@AdrienJoly

@JulienTopcu

@JkNourry

Couplagectomie

@AdrienJoly

@JulienTopcu

@JkNourry

Opération du Patient

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Anastomose Domaino-persistence

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Infrastructure

@AdrienJoly

@JulienTopcu

@JkNourry

Opération du Patient

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Couplagectomie du Controller

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Couplagectomie

@AdrienJoly

@JulienTopcu

@JkNourry

@AdrienJoly

@JulienTopcu

@JkNourry

Opération du Patient

@AdrienJoly

@JulienTopcu

@JkNourry

Recoudre le patient : 
Intégration Testorraphie par ablation des Approval Tests

 

@AdrienJoly

@JulienTopcu

@JkNourry

Approval Tests

Functional Tests

?

?

@AdrienJoly

@JulienTopcu

@JkNourry

💉

Bilan de l'opération

Stratégie de Refactoring non prédictive

Test & Learn, Fail Fast, Mikado

 

Besoin d'un filet de sécurité efficace

Approval Tests

 

Réduction de la charge cognitive                 

Clean Code, Typage

 

@AdrienJoly

@JulienTopcu

@JkNourry

💉

Bilan de l'opération

Augmentation de la Robustesse

Ajouts de ≠ types de tests

Structure de données et Contrats explicites

Externalisation de la migration de données

 

Augmentation de la Maintenabilité

Emergence & Isolation du Domaine

Ségrégation des Responsabilités
Gestion des
≠ complexités via l'Architecture Hexagonale

Tests F.I.R.S.T.

 

@AdrienJoly

@JulienTopcu

@JkNourry

MERCI

N'oubliez pas de noter ce talk ! 🙏

[2h]Architecturoplastie hexagonale d’un backend Node.js : Opération à code ouvert

By Julien Topçu

[2h]Architecturoplastie hexagonale d’un backend Node.js : Opération à code ouvert

Votre backend n'a même pas 3 ans et pourtant, il n’est pas en forme. Il devient difficile d’y ajouter de nouvelles fonctionnalités, de maintenir et/ou de refactorer l’existant. Le code est intolérant à la montée de versions de librairies, pouvant lui causer une régressionnite fonctionnelle aiguë. Les tests deviennent douloureux à l’écriture. Les précédents choix techniques ont comme effet secondaire de limiter ou verrouiller l’évolution du logiciel, à un point où il devient tentant de repartir de zéro. Votre backend commence lentement à pourrir, son architecture s’étant sclérosée. Mais savez-vous qu’il existe différents types de complexité logicielle ? Et que bien les identifier en les séparant avec un pattern d’architecture adapté, peut améliorer la pérennité de nos applications ? Et tout ça, quels que soient les frameworks que vous utilisez ? Dans cette opération à code ouvert sous forme d’un mob-programming intéractif, venez découvrir comment redonner un coup de jeune à votre backend à bout de souffle en le faisant migrer vers de l’Architecture Hexagonale.

  • 965