separating the functionality of a program into independent, interchangeable modules, such that each one contains everything necessary to execute only one aspect of the desired functionality. MODULAR ARCHITECTURE
▸ Global reach 24 coutries ▸ Offering choice 205,000 Restaurant Partners serving over 100 different cuisine types ▸ Diversified customer base 54m active customer ▸ A fantastic team Over 8,000 employees globally
libraries on which other libraries have dependencies but where they depend on different and incompatible versions ▸ Sometimes duplication is better ▸ Low-level code shouldn’t change frequently, and our code changes frequently by definition
inevitable that different developers prefer different kinds of architecture ▸ Best to evangelise SOLID, Dependency Injection, Inversion of Control. MVVM VIPER MVC MVP MVVM-C ELM
clutter ▸ Tiny surface integration point ▸ Swift/Objective-C interoperability ▸ “A component interface should increase slower than its surface are” Swift Obj-C
with the app (no tedious process for hotfixes) ▸ 1 single Pull Request: lower cognitive load, work is not interrupted NOTES ON THE MONOREPO Separate repos Monorepo CI CI CI Integration publish version Implementation Implementation time Integration
Jenkins scripts that look at the changed files and then intelligently trigger only the platforms affected by such a change.” - Peter Steinberger ▸ Modules still isolated ▸ Exception made for 2nd-level dependencies NOTES ON THE MONOREPO