3 ms·
Well informed article, thank you. In practice I'm pretty happy with a huge monorepo, but have a somewhat surprising problem with it: it makes fine-grained code
by cousin_it 6y ago
Well informed article, thank you. In practice I'm pretty happy with a huge monorepo, but have a somewhat surprising problem with it: it makes fine-grained code reuse too easy. People end up adding tons of dependencies, and building anything requires building ten thousand targets at head. (It seems the npm ecosystem ran into the same problem from another angle, they also made fine-grained reuse too easy and ended up with huge dependency trees.) In theory, the solution is using larger libraries with less frequent releases, but then we run into lag and the diamond problem again. I don't know how to square this circle.
- ithkuil 6y agoThat's why bazel has visibility rules. You have to explicitly mark things public or express which package can import which package. If used judiciously it can help keep things in check or at least have the teams involved be aware of the maintenance burden.