title: ‘Breaking out your Django app for great good (This Old Pony #65)’ layout: newsletter published: true date: ‘2018-10-16T10:00:00.000Z’

Last week I told you that creating an open source reusable app was a good way of improving its quality. Some of you may have been disappointed, because the benefit is largely due to instrumental reasons which may not apply to your project. And further, creating a separate and open source version of functionality in your project turns out to be a non-trivial level of effort.

That’s okay, because I have good news! You can get many of the benefits without going through all the trouble of creating and publishing an open source package. You can get most of the benefits by simply pulling the functionality into it’s own app. And if you have multiple projects, you can still create and use an installable app without sharing it with the world.

In the Django Standalone App Fieldguide[0] I outline how one of the steps to pulling functionality out into a standalone app, i.e. one that’s published and downloadable on the Python package index, is creating a distinct, uniquely namespaced app in your own project. So for our purposes here you can stop there.

Let’s reiterate why you would do this, that is, what problems are you solving and what benefits should you expect, aside from more experience refactoring?

I’ve given some outlines on how to approach this in the most recent chapter, “Separating your app”.

What kind of obstacles have you faced in extracting code in your Django projects?

Wheel-installably yours

[0] Still in the editing process, including some content which is being embargoed until it can face minor editing: http://www.django-standalone-apps.com/