Fairly new to object programming. Are there any tools that people use to help them 'remember' the architecture of of what is being developed (i.e. what objects do what, list of methods, attributes, etc.)? Or is pen and paper still the standard?
|
migrated from stackoverflow.com Mar 3 '11 at 5:52
|
Look up the various UML diagramming tools (or those included in your IDE). These give you a quick glance overview of relationships/methods/outputs/etc. for the overall application model. |
|||||
|
|
I like to document my code using a doxygen to easily generate API information, dependency graphs etc. |
|||
|
|
|
Nothing helped me remember the architecture better than understanding. In my journeyman days, once I understand the concern of each object and could follow a request/event from the UI tier to the persistent store and back I was able to confidently use the objects in the architecture. Once I had the opportunity to write my own controllers, business objects, repositories, DAL objects, database tables, this became even more ingrained in my memory. A good exercise it to put a break point on an action and step through the code looking at all of the objects that are used. If you're using MVC for a website, you could also use Firebug or Fiddler to follow the chain from the creation of the HTTP request. |
|||
|
|
|
If you use Java/Jee then you should consider EclipseUML Omondo. I have been using this tool for few years and it is getting better and better. My architecture is defined at UML level then the switch to Java is really smooth and my java code perfect. What I like is to be able to use UML, then manually code and come back at modeling stage without loosing any code or any model information. I have in my UML model all the history of change and can come back to the latest 50 changes of each class, UML model etc... by using the local history feature. Superb Eclipse technology. |
|||
|
|
|
README files with a usage overview, comments in the code, and unit tests are usually is enough for you to remember how a module/library/package/oo-hierarchy works. I like to make my README files "doctests", which are text only documentation with built in tests. These help you force the documentation to be up to date. I don't know how common that is outside the Python world. |
|||
|
|
|
UML is an ideal tool for an overview of application architecture. I can recommend http://www.softwareideas.net/ as a nice lightweight "freemium" modeller. Document your methods/classes appropriately, and your IDE will be ableremind you what the method you wrote 6 months ago is actually for... If you have the time, maintain a Wiki about your application that explains it's theory of operation. |
|||
|
|
|
Maybe this question can also help you in terms of "remembering" stuff: how do you remember programming related stuff? |
|||
|
|