Keeping It Clean
summary
Badoo rewrites its messenger component using Clean Architecture with MVP and RxJava for threading, in an app with over 100 million installs and ~100k lines of code. The implementation keeps use cases as pure Java, moves caching and network into gateways, and yields an open‑source reference with ~60% test coverage. Developers report steeper upfront work and boilerplate but faster feature additions, easier testing, replaceable implementations, and postponed infrastructure decisions.
AI-written summary · about
chapters (28)
- 0:00Introduction to clean architecture
- 1:40Why architecture matters
- 3:25What is clean architecture
- 5:30Key principles of clean architecture
- 6:54Structure and intent in apps
- 7:57Dependency direction in clean architecture
- 9:24Inversion of control explained
- 10:04Different models for different layers
- 11:47Entities and use cases
- 13:12MVP and clean architecture
- 14:14Gateway implementation details
- 15:00How use cases and gateways work
- 16:04Message gateway implementation
- 17:49Threading with RxJava
- 18:54RxJava vs traditional threading
- 21:22Boilerplate and learning curve
- 22:05Testing and maintainability
- 23:29Tips for adopting clean architecture
- 24:52Team collaboration and code reviews
- 25:33Q&A: Offline messaging concerns
- 27:41Q&A: Network programming models
- 28:45Q&A: Selling clean architecture to teams
- 31:33Q&A: Threading in gateways
- 34:03Q&A: Use cases and screen transitions
- 36:51Q&A: Deviations from original design
- 38:15Q&A: RxJava and threading decisions
- 39:45Q&A: Handling orientation changes
- 40:30Q&A: Isolating system dependencies
related talks
51mClean Architecture: A Deep Dive
56mClean Architecture: Deep Dive
19mClean Architecture: A Solution to Improve System Maintainability
41mOne year of Clean Architecture: the Good, the Bad and the Bob
51mClean Architecture: Why? How? For Whom?
53mClean Architecture and How It Helps Build Microservices and Microfrontends
36mWhat I learned improving complex code in my first year as an engineer
47mStep by Step Toward Clean Architecture
