Description
Have you ever... - Felt like a Django codebase is a bit of a mess? - Struggled to find where something happens in a codebase? - Felt like Microservices is the only way to manage your complexity?
This talk is a tour of the techniques, conventions, and tools, that Thread uses to scale our Django codebase. These have helped us over the years to add more developers, more code, more functionality, and more frequent releases, while still being productive in one large Django codebase.
We have nearly 500 apps, around 450 models, around 400k lines of Python, and around 1000 URL patterns. We've also had many more over the past 8 years and 120k commits. Despite this, we release around 10-20 times a day with a small engineering team.
Some of the things we'll cover include: - What goes into an app - Structuring apps for readability - Tools and techniques - Issues to be aware of - Things we got wrong when we started! - Our wishlist for improvements to Django to better support apps
This talk is targeted at those familiar with Django concepts, but those working day to day with other engineers on a Django codebase are likely to get the most out of it.