You basically create seperate objects for each part of your application.
Mediators (Object’s That Control the Views)
Context (Maps Everything Together)
VO (Store Data)
The key is that every object only worries about it’s responsibilities, making it very structured and easy to debug. They for the most part don’t call direct functions of each other. Instead they create custom events and shoot them to each other. This is especially cool for Modular Apps. You can blast a event to all modules and they can each handle there own responsibility.
It allows you to seemless cover your own ass… It is also very useful for transfering, and updating code. Trac is also very cool, it has one of the best bug tracking sytems, a cool wiki, and a subversion browser. Here is a tutorial about how to setup these up on a fedora/redhat server… It’s pretty easy…