Monorepo is great if you're really good
yosefk.com
Monorepo is great if you're really good
1–10 of 159 posts
Re: Monorepo is great if you're really good
#2Re: Monorepo is great if you're really good
#3> Of course in a Good team, needless dependencies would be weeded out in code reviews, and a Culture would evolve over time avoiding needless dependencies.
Really, the one consistent thing is that if you have a good team, you'll make it work no matter what tech or decisions you make (assuming you're also good enough to know when you've lost and change course), and if you're a bad team, you're doomed to failure, because, well, you're bad (by definition).
I think this article also vastly underestimates the cost and annoyance of the tooling of CI'ing a large number of repos, especially if you have to match or do some kind of cross product on the feature branches. (such as, repo A branch B can only be built with repo C branch F, but all the other repos should be master)
Re: Monorepo is great if you're really good
#4> the entire code base got forked, and the entire org is now held hostage by the dumbass. > Of course in a Good team, needless dependencies would be weeded out in code reviews, and a Culture would evolve over time avoiding needless dependencies. Really, the one consistent thing is that if you have a good team, you'll make it work no matter what tech or decisions you make (assuming you're also good enough to know when…
(responding to the article contents quoted in above comment)
Re: Monorepo is great if you're really good
#5> the entire code base got forked, and the entire org is now held hostage by the dumbass. > Of course in a Good team, needless dependencies would be weeded out in code reviews, and a Culture would evolve over time avoiding needless dependencies. Really, the one consistent thing is that if you have a good team, you'll make it work no matter what tech or decisions you make (assuming you're also good enough to know when…
Umm, appoint someone or a trusted few as git admins and only allow them to merge commits? (responding to the article contents quoted in above comment)
Re: Monorepo is great if you're really good
#6Ask your doctor if Monorepo is right for you.
Side effects include but are not limited to your repo growing into a single giant ball of circular dependencies.
Re: Monorepo is great if you're really good
#7Ask your doctor if Monorepo is right for you.
Individual results may vary. Don't take Monorepo if you are bad at programming, or if you may become bad at programming. Side effects include but are not limited to your repo growing into a single giant ball of circular dependencies.
Re: Monorepo is great if you're really good
#8The calculus is trickier than this.
He thinks the above is true because of this other thing he says:
> With multiple repos, modularity is the norm.
But if this were true, being "Good" would be easy. I wish programming tools were this able. Then I could go to the pool every day!
But just because you're using some feature of a build or programming system -- like modules or classes or namespaces -- doesn't mean you get the win. Certainly doesn't mean you know how to wield these tools.
In the end the technical feature doesn't save you. You actually have to have a hard-earned skill, which is how to properly modularize code into stable components with narrow stable interfaces and all of that. This skill is very rare ime.
Now back to monorepo vs modules.
If you use modules but you suck at modularization you're going to be paying a huge tax. Because you'll be creating volatile code/interfaces and you'll have to go through a process each change. You will be amplifying the tax from your lack of skill that you wouldn't if you were just in a single monorepo.
On the other hand if you use a monorepo and you suck, you won't experience ^^this^^ pain and you'll be at a much higher probability of staying sucking.
In short, programming language and build features don't bestow skills.
Re: Monorepo is great if you're really good
#9Re: Monorepo is great if you're really good
#10> ...
> In a not-so-good team, your monorepo will grow into a single giant ball of circular dependencies.
Sounds like the author was lucky enough to not encounter a not-so-good team with multiple repos.... :D