public
Description: Turtles all the way down
Homepage: http://simonwillison.net/2009/May/19/djng/
Clone URL: git://github.com/simonw/djng.git
djng / planned_services.txt
100644 40 lines (35 sloc) 1.299 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
What should be a service?
=========================
 
As a general rule, services should be things that get configured in some way.
Not everything in Django should be converted in to a service. If a component
doesn't require any per-site configuration (e.g. forms, syndication feeds) it
should probably be left as a regular library.
 
Stuff in Django that should be a service
----------------------------------------
* Caching
* Templating
* Sending e-mail
* "Current user" authentication
* Sessions
* Database connection - django.db.connection
* Higher level ORM
* File storage
* Sites - or at least the concept of the "current site"
* i18n / translation
* URL reversing
 
Stuff that isn't yet in Django but should be a service
------------------------------------------------------
* HTTP client
* Logging
* Message queue
* Cryptography (in particular signing things)
 
Stuff that shouldn't be a service
---------------------------------
* The admin: it's just an application
* Signals: they are part of core Django itself
* Forms: they are a library, they don't need configuring at all
* Testing: core Django, lives above services as has tools for mocking them
* Sitemaps / syndication: again, these are libraries
 
Stuff I'm not sure about
------------------------
* Content Types / generic relations