Six lines of code to prevent Python spaghetti
Python projects have a habit of getting tangled. The latest Import Linter contract type can help.
My website, built in Jekyll.
Python projects have a habit of getting tangled. The latest Import Linter contract type can help.
Django's transaction.atomic context manager is an important tool for maintaining data integrity. But its guarantees are frequently misunderstood.
Design is crucial to good software development, but many people lack a process for doing it. In this blog entry, I explain the three step process I use.
Inversion of Control, in which code delegates control using plugins, is a powerful way of modularising software. It may sound complicated, but it can be achieved in Python with very little work. Let's examine three different techniques for doing this.
Python is a wonderful language that is a joy to develop in. But I've found that projects written in Python can easily grow into an unmaintainable mess. Keeping a code base maintainable, particularly when it's large and complex, is difficult.
Inversion of Control is a principle for improving the modularity of software. It's a powerful strategy for simplifying systems that might otherwise become tangled and difficult to understand.
Without a planned structure, larger Python projects can become a complicated web of interdependencies. The Rocky River is an architectural pattern to help make larger projects easier to work with.
A tool for imposing architectural constraints on your Python projects.
Apps are a fundamental concept in Django. But what exactly are they and when should we use them?
Django signals are a great way of communicating between your apps. But they are often misused. Find out what signals are for, when to define your own, and when to avoid them.