[Django] Developing isolated frontend and backend components
settings.py file with no clear isolation between different app settings.
Django's default project and app structure works well for smaller teams but can soon become a management overhead as the team grows. A monolithic app makes it hard to develop different components of the app in isolation and can often lead to a tightly coupled codebase. In this talk, I will walk you through the above problems and then present a solution that allows for isolated app component development with isolated settings per component.
Familiarity with Django and zeal to develop decoupled app components.
- PyCon India, Title, Date
- About presenter
- Take away from the talk:
- Ability to develop different components of a Django app in isolation
- Finally to achieve a top level Django project with just a requirements.txt and deployment related files
- No more messing around with a global “settings.py” file, per component “settings.py” file.
- Ability to enforce “Minimum access privilege” within the development team (for large and sensitive Django projects)
- A working example with demo app (available on GitHub after the talk)
- In this demo app we will build a sample PyCon website
- Why are we doing this breakdown of components?
- Take audience through our demo app version built using vanilla Django project structure
- Surface problems that teams will experience as project gets bigger
- Enforces isolation, enforces good coding practices and test coverage
- Lets start with a backend APIs
- Lets see a frontend with in-built support for SASS, Typescript, Jasmine, Karma integration
- Ability to customize individual node frameworks
- Lets see how to bring these two components together in development
- Possible deployment strategies for production
- What about web sockets? Any Django channel fans here?
- Let’s add a channel component to our app
- Include channel component in top-level project
- ASGI deployment strategies
- The End, Thank You, Demo links
Abhinav Singh is a seasoned engineer and open-source evangelist. He has worked with Django for over 10+ years and has been part of planet scale projects involving Django. A former Google, Yahoo, Oracle engineer and IIT Guwahati alumni, he is currently working on a startup in stealth mode.