+ 1

Design and documentation, what tools do you use

During the process of programming we write tons of code, as that code adds up we need to have a way manages everything to keep our code clean and succinct. I currently am just using psuedo code and flow charts to organize my code, but as my programs become more complex the more I see the limitations to these two methods alone. What tools or methods do you use to keep yourself organized while programming?

17th Nov 2017, 5:57 PM
Patrick Reiner
Patrick Reiner - avatar
2 Answers
+ 3
First off, that's excellent you're utilizing pseudo code and flow charts, it's something many people hate doing, but it's an insanely useful skill to master, especially if you end up programming in a corporate setting or on a team. Don't lose that skill. It's a good means of planning things our prior to coding, which can actually save you a lot of time/headache in the long run. As for my own charts, I use Visio for that purpose, very easy to do and can easily break things down into individual chunks/modules. Do the same thing with your pseudo code rather than putting the whole program in just the one section. Lately, I've mostly been using Java, and so I use their JAVADOC feature (which rocks) as my means of commenting many things in my code. Afterward, Java turns all of it into an HTML document that's organized and you can use to easily reference stuff from your code. I combine that with regular commenting in my code for the stuff I intend solely for the next person that's actually in my code working, or if I revisit it later and need to be reminded of what my thought was at that time. I can't even tell you how many times I've come back to code a year later and thought "Wtf was I even thinking?' and have to read over the entire flow of my program even though I'm the one that created it. Another method I use is chunking things. I take my program, break it down into all of the major pieces/modules that make it up, and then I break those down into smaller chunks also. I pick a chunk and work on it, then once I'm done with that individual chunk, I move onto the next chunk. This helps to make it easier to think about all of the various pieces in a way that doesn't make it too complicated/complex/confusing. All complexity is nothing more than a bunch of small simple things pushed together. So make complexity simple again and then build it back up into its complexity. Best of luck to you!
17th Nov 2017, 6:09 PM
AgentSmith
+ 1
Dia is an open source and free alternative to visio. also you can generate automatically code from it. sphynx or doxygen are alternatives to other languages than java googletests for unit tests, gitlab for git, ci, issue tracking, and low level planning
18th Nov 2017, 9:45 PM
Gunther Strauss
Gunther Strauss - avatar