5 ms·
Alternate title: monorepos - ideal for teams under 100 devs
by pbiggar 8y ago
Alternate title: monorepos - ideal for teams under 100 devs
- nomel 8y agoThe title should have been "Monorepos: Please don't, at scale", but I suspect it was made intentionally controversial.
- tensor 8y agoWhich large companies use polyrepos? Google, Facebook, Microsoft, Uber, all use monorepos.
- hiyou102 8y agoMicrosoft doesn't use a monorepo. Bloomberg, Dropbox, and Amazon don't either.
- ec109685 8y agoMicrosoft switched all of windows to a mono repo.
- lostmsu 8y agoI think Windows was already a single repo forever. IMHO, that's exactly what is slowing it right now. Other products have their own repos, sometimes multiple. As of 2016.
- ec109685 8y agoNo, they had multiple for windows: https://blogs.msdn.microsoft.com/vsappcenter/how-mono-repo-and-one-infra-help-us-deliver-a-better-developer-experience/ https://blogs.msdn.microsoft.com/vsappcenter/how-mono-repo-a...
- jvolkman 8y agoAmazon
- floatboth 8y agoIf it's not at scale, is it even a monorepo? It's just… repo??
- joeblau 8y agoAt Uber, both of our iOS and Android teams are over 100 contributors each and we have a Monorepo for each app platform. I'm not on the ops team but being in a Monorepo here has been one of the best development experiences in my career.
- pbalau 8y agoFB has a monorepo for most of the known universe
- paulddraper 8y agoAnd Google has one that includes the multiverse.
- rkangel 8y ago> we have a Monorepo for each app platform Do you mean two separate mono-repos, one for Android, one for iOS? To me that's not a monorepo. Is there little shared code between the two platforms, or is there a third repo that is depended on?
- joeblau 8y agoYeah, it's two separate monorepos. There is actually some shared code between multiple monorepos. Code like IDL's and some C mapping code are shared, but they are referenced as vendor libraries so each monorepo updates those dependencies when they need to. If you think about Android vs iOS vs a web based dispatch system vs an autonomy system; They are all totally different. All of the code, dependencies, vendor code (external dependencies), and tools in each monorepo are "platform" specific and live in each respective monorepo. Each monorepo is solving one cognitive problem domain with all of the libraries and dependencies that go with it usually for a target platform. Every iOS app that Uber builds lives in one repository — you clone that down and you can build Rider, Driver, Eats, Freight, and Jump. They all use the same networking stack, same UI stack, same map stack, same VIPER architecture, etc. This makes it easy for someone who is an iOS dev to work in any app or spin up a new app with almost no effort. But, you're right... it's not a monorepo in the sense that all of the code in the company is in one place. Maybe I like micro-monorepos.
- stevesimmons 8y agoAt the bank I used to work for, we had a monorepo with around 2500 developers committing in an average month. Total codebase was 35M LOC. I gave a talk on it, "Python at Massive Scale", at PyData London 2018. Videos on YouTube/PyVideo.
- hinkley 8y agoIt’s easier to divide modules than put them back together. Wait until you know what the real boundaries are (they tend to change as scope and functionality expand)