[Tutor] Larger program organization

Kent Johnson kent37 at tds.net
Sat Feb 12 17:28:45 CET 2005


Ryan Davis wrote:
> I'm starting to make a code-generation suite in python, customized to 
> the way we ASP.NET at my company, and I'm having some trouble finding a 
> good way to organize all the code.  I keep writing it, but it feels more 
> and more spaghetti-ish every day.

Organize your code into packages. Give each package a clear responsibility and clear dependencies on 
other packages. For example my current (Jython) project has these packages:

app - top-level application objects
data - database access - all the SQL code and database objects
dbload - helpers for initial database load
gui - gui classes
importer - classes to implement an import function
main - misc. main programs, not really part of the main app
server - embedded web server
tree - support for the Swing TreeModel that is a major part of the app
writer - generation of output files

I also use some packages that are not specific to the application:
db - generic database support
swing - generic Swing widgets and support classes
util - misc helpful stuff

In total there are 121 Python files (including test modules) and 49 Java files.

For a smaller project you might just have a few modules in one package, or just a couple of packages.

HTH
Kent



More information about the Tutor mailing list