
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
- 272