Jérémy CHAUVIN
Développeur Fullstack
API 1
API 2
Front
Lib globale
API 1
API 2
Front
Lib globale
Et pourquoi pas les monorepo ?
Démystifier les monorepos
Microsoft
Stripe
Doctolib
Monorepo
≠
Monolith
Monolith
Un monolith est une application qui a l'interface utilisateur et l'accès aux données dans un seul programme "
=
Un artifact
Monorepo
Un monorepo est un seul repo qui contient plusieurs applications avec des relations bien définies "
Monorepo
Bario
config
D.S
Bars API
Bario
Administration
Monorepo
Polyrepo
dans les faits
Modification coûteuse pour les lib partagées
Partage de code difficile
Duplication de code
Outils pas maintenus
Polyrepo
BarsApi
Bario
Administration
Config
DS
Repo de
Binaire
(Artifactory, nexus)
V1
V3
V2
Polyrepo
Autonomie des équipes
Microservice
Monorepo
dans les faits
Facile de créer un nouveau projet
Commit Atomic
Une seule version
Facile de partager le code
Monorepo
Les préjugés
Ne pas être au courant si une PR/MR s'ouvre
Monorepo
Les préjugés
Ne pas être au courant si une PR/MR s'ouvre
CODEOWNER
Monorepo
Les préjugés
C'est lent
Monorepo
Les préjugés
C'est lent
Cache des tâches
Orchestrator des tâches
Détecte sur quel package il faut exécuter les tâches
Monorepo
Les préjugés
ÇA VA ÊTRE UN VRAI PLAT DE SPAGHETTI
Monorepo
Les préjugés
ÇA VA ÊTRE UN VRAI PLAT DE SPAGHETTI
Un monorepo est un seul repo qui contient plusieurs applications avec des relations bien définies"
Monorepo
Monorepo
LES SERVICES PAS FORCEMENT ADAPTES
CI/CD COMPLEXE A METTRE EN PLACE
LES BRANCHES LONGUES
Warning
Monorepo
Les outils
Bazel
Gradle
Lage
Lerna
Nx
Pants
Rush
Turborepo
Monorepo
Conclusion
Monorepo
Conclusion
Pas de perte de temps
Plus facile de faire un découpage clair
Amélioration de votre devEx
🙏
Merci !
Merci !
Question(s) ?
👋
monorepo
By Jérémy
monorepo
- 163