Whenever we start reading a big project source code it's often necessary to note down the calling chains and notes that reason why a specific code pattern was chosen, for example. I found primitive tools like A4 sheets lack the cut and paste or find capabilities. Consider working with a very simple editor like command line ones (such as vim/emacs or nano), or other lite IDEs like Geany. What are your methods to take notes to help you track the code folds and- ummm- mazes?
|
|
|||||||||||
|
|
For large projects I find that a mindmapping tool like Free Mind is a HUGE help. The ability to collapse and expand the different areas make it much easier to get an overview of what's happening and then be able to drill down to be as specific as you like. |
|||||||
|
|
My method is simple, write it down, draw diagrams. The reason why I prefer this method is because it helps me learn the code faster. You accelerate learning when you write things down. Remember, typing does not have the same effect as writing it down by hand. |
|||
|
|
Best thing I find is to use an application dedicated to note taking. My favourite is Evernote. For things that may need to be shared among teams, a wiki is useful. As a side note, taking notes is not just specific to following paths through the code. As a developer you should usually be taking notes daily on any number of things, from common commands to context and background on bugs or tasks, even just what you plan to do for the day. It's important and it's worth spending time finding an app/tool that suits your needs. |
|||||
|
|
I use a pen and a sheet (or multiple sheets) of paper. If there's something I really want to preserve for future reference, I type up my notes or use a diagramming tool (Dia). I've been known to print man pages and file the hard copy for things like C string formatting. That said, I'm usually working alone, so teaming is not a big part of what I do. |
|||
|
|
Personally I like to leave the documentation of call-chains and the like to other programs (for example Doxygen springs to mind). What is of more interest is the common patterns and idioms used in the code. When working on open source projects it pays to pay attention to these as cooperation is easier when everyone is understands the same concepts. |
|||||
|
