4 ms·
I'm really confused by this monorepo thing. So many people have gleefully hopped on to this particular cult, and the most reasonable reasoning that I've heard i
by dylan-m 9y ago
I'm really confused by this monorepo thing. So many people have gleefully hopped on to this particular cult, and the most reasonable reasoning that I've heard is it helps to glob together interdependent parts of a system, but I feel like that's throwing away everything we take for granted about what makes good software: that it's better to separate your code into distinct pieces with well-defined scope (and their own version numbers that reflect their interfaces); to expose your interfaces, rather than your implementations, and if someone is dependent on the exact implementation of module B then maybe your design is fucked and you should start over before you hurt someone.
So I'm skeptical of that first argument. What does this do for you that a decent architect doesn't do better? Is it a way for dangerously lazy project managers to justify themselves? Is it because it works for Google so of course it works for everyone? Is it a workaround for Github's private repo limit but nobody wants to admit it because they're afraid Github will figure it out? If Windows needs this, how the hell are Debian, Fedora and Ubuntu doing all these releases? Do you know how many repositories they have to deal with?!
- jasonpeacock 9y agoAmen. Bragging about having a large repo is showing the world that you can't design large software systems. Just like creating branches in Git is cheap, creating repos in Git is just as cheap. The difference is that you need actual design and engineering discipline to version your interfaces and manage those dependencies. Having a kitchen-sink repo is poor engineering, and massive code smell.