Boost Your Django DX
đ Updated 18th November 2024 with new content - see blog post.
During my years working with Django, Iâve picked up many tools and techniques to boost my Developer Experience (DX). This book covers as many of these as possible so you can learn them, too!
Contents
The book contains 14 chapters.
Below is a brief summary of the contents - my blog has the full table of contents. For a sample extracted from the settings chapter, see this post.
-
Introduction
Opening notes, acknowledgements, and changelog. -
Virtual Environments and Dependencies
Manage environments, and the dependencies within, correctly and easily. Covers venv, virtualenv, pip-tools, pip-lock, recommended practices for dependency management, and Pythonâs development mode. -
Python Shell
Enhance your Python command line experience. Covers IPython and django-read-only. -
Debuggers
Debug effectively with pdb and ipdb. -
Development Server
Make Djangoâsrunserver
better. Covers django-debug-toolbar, Watchman, django-browser-reload, and Rich. -
Code Quality Tools
Fundamental tools for improving code quality: EditorConfig and pre-commit. -
Python Code Quality Tools
Keep your Python code tidy, modern, and free of small bugs with Black, isort, Flake8, pyupgrade, and django-upgrade. -
Further Code Quality Tools
Extra tools for the extra languages your Django project may use. Covers Djade (templates), Biome (CSS, JavaScript), ShellCheck (shell scripts), blacken-docs (documentation), and pre-commit-hooks. -
Build Your Own Tools
How to make your own code quality tools. Covers pre-commitâs virtual languages, how to write and test a Flake8 plugin, and how to write a pre-commit-compatible command line tool. -
Documentation
Tools to get you to the right documentation, quicker. Covers DevDocs, DuckDuckGo, Bonus Django Documentation Sites, Wget, and some miscellaneous tips. -
Settings
Tips and patterns for managing Djangoâs settings file. Covers structuring your settings, a template, some patterns to avoid, and testing settings files. -
Models and Migrations
Tips and tools for managing your data. Covers writing a management command to seed your development database, generating data with Factory Boy, migration safeguard practices, and django-linear-migrations. -
System Checks
Make the most of Djangoâs built-in runtime code quality framework. Covers how system checks work, how to write and test your own checks, and django-version-checks. -
Outroduction
Closing notes with links to further reading, including many things that didn't make it into the book.
FAQ
Who are you?
Hi, I'm Adam Johnson. I'm an author and solo consultant working with Django and Python.
I've used Django since 2012 and have been a member of the Django Project Steering Council since the 2.2 release cycle.
Is this an official Django product?
The Django Software Foundation didn't help me out with this book, and this is in no way "official". It's a product of A.W.S. (Adam's Web Services) Ltd.
You should make a donation to the DSF separately!
What's included?
A PDF watermarked with your email address, an ePub, an AZW3 file (Kindle), and a resources zip file containing all the code examples.
Will you do a printed version?
Unfortunately, I canât afford to do print versions given that I (aim to) update at least every eight months for each new Django version, and the audience is so global.
Do you offer any discounts?
Gumroadâs purchasing power parity feature will automatically offer you a discount based on your location.
Outside of that, I offer occasional seasonal discounts. Follow my blog,Mastodon, or Twitter to be notified of these.
Can I get an invoice?
Gumroad will send you a receipt with a "generate" button to turn it into an invoice, so you can make your employer pay!
Can I purchase with an alternative method (e.g. direct bank transfer)?
Due to accounting limitations, I'm only able to sell my product on Gumroad. If it doesn't work for you please try emailing Gumroad support (support@gumroad.com) and CC'ing me.
Praise
âI learned more from those two books than years of coding in Djangoâ
âNick McCullum on Twitter
âBesides âFluent Pythonâ is âBoosting your Django DXâ by @adamchainz my most read #python book. It is such a great book for tooling enthusiasts like me.â
âOliver Andrich on Mastodon
âThe Django DX book is incredibly helpful to both confirm I am on the "right" path but mostly learning a TON that I'm incorporating into my projects.â
âdev jay on Twitter
âJust finished your book in one sitting. Really excited to put your wisdom into action!â
âFelix Sargent on Twitter
âI've been working with @djangoproject for over a decade and still love it, but the hardest thing now is not the framework, but learning how to use it better, how to break old habits, and find new tools and patterns. Really appreciate @AdamChainz "Boost Your Django DX" book, thx!â
â@rogerhoward on Twitter
âIf you experience (software) development or work with those that do, drop whatever youâre doing and buy this book now! Having worked with Adam for the past couple of years, he has improved our developer experience no end at http://ev.energy (and his book on testing is đ„)â
âChris Darby on Twitter
âUsed my employer training budget for both of Adam's books, and they are one of the best purchases of my technical books. If you write Django, buy them and thank me later. Reasons for my confidence:
- tooling and best practices are hard skills that you can only know how good they are when you know them and use them daily. It saves you hours of unnecessary work, and makes life much easier.
- I had the "wow, wish I had known this!" moments almost while reading every page of the book â
âXuan on Goodreads
âI've spent years building Django projects for my clients and I started coaching new developers in Django skills in 2021. This book contains a lot of Adam's hard-won practical tips that would have saved my clients a lot of money. From setting up your environments properly, to code quality tooling, to writing your own flake8 plugins, new Django devs will ramp up much faster, and experienced developers will learn some great stuff too!â
âJohn Sandall on LinkedIn
âIt's gold - enjoying the book a lot! Gold nuggets everywhere.â
âAd Timmering on Twitter
âWow, that was quite a reading! If you are scared by typical complexity of technical books, don't be â this book is very approachable. Actually, I'd particularly recommend Boost Your Django DX to the folks who are just getting into the exciting world of Django because it explains how many goodies work and will help you not only write a better code, but do it faster, as well as understand where some of the potential pitfalls may appear. For me personally, the author's experience/background also plays a huge role and creates trust when I decide whether to spend time on a book. If you feel the same, do your homework or at least take a sneak peek here: https://forum.djangoproject.com/u/adamchainzâ
âEvgeni Sautin on Goodreads
âLooking through the Boost Your Django DX table of contents. A lot of good stuff in there...
Before I know it, I'm already on page 58, with some ideas for new approaches and productivity boosts. Great read! đâ
âKatherine Michel on Twitter
âI start reading the "Boost Your Django DX" book by @AdamChainz today. Its BRILLIANT ! đ€© â
âSimon Krull on Twitter
âI got a chance to be a beta reader of this book and can highly recommend it - a lot of great tips!â
âMateusz BeĆczowski on Twitter
âFinished reading @AdamChainz's "Boost Your #Django DX" book, lot of helpful advice and tips, recommended!â
âBob Belderbos on Twitter
âIt helps sometimes to see the same information presented in a new way and that's why I recommend the book for anyone working with Djangoâ
âRyan on Twitter
âPicked up @AdamChainz new book "Boost your Django DX" this weekend. Been using Django since pre-1.0 and like everything there's always something to learn.â
âKevin Fricovsky on Twitter
Watermarked PDF, ePub, AZW3 & resources zip file