2013-08-31

7 things to be done when start making an APP


1. Version Control System (VCS) ready 

Version Control System is a very important things for every APP developers, it helps to keep track of the development history and changes; It is not a MUST, but you may be regret if not adopt any VCS; 

The two famous VCS are GIT and SVN; And the two famous public repositories are GitHub and BitBucket;  

Related Links:
  • GIT: http://git-scm.com/
  • SVN: http://subversion.tigris.org/ 
  • Repository: 
    • https://github.com/
    • https://bitbucket.org/

2. KM and PM Tools Ready

KM and PM are Knowledge Management and Project Management respectively; The tools for these two are important because, During the APP development, you need know the Road Map, which are what is the stuff to going to do, and when should be done right now. 

I am using MediaWiki for KM and Redmine for PM 

Related Links:
  • http://www.mediawiki.org/wiki/MediaWiki
  • http://www.redmine.org/ 
 

3. Code style

Code Style is a important thing for program; A consistent style can help coders code efficiently because they can understand other codes quickly (no need to ask or check docs). 

Related Links:
  • http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
  • http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

4. Naming Convention

Naming Convention (or called Naming Rules) are the rules how coders names the variable, class, package, ….; It is important because we are all humans not machines; If the "java.util.Random" class named as "java.xx.AA", you are hardly guess the behaviours of the class. It is also an important section inside the Code Style; 

The followings are the parts should be defined:
  • Namespace (named as Package in java)
  • Class Prefix, Suffix
      (for example: GL Prefix mean Graphics Library module, View suffix mean this is a view class) 
  • Variable Prefix, Suffix
     (for example: str Prefix mean it is a string)
Related Links:
http://en.wikipedia.org/wiki/Naming_convention_(programming)


5. Program structure and folder structure

Folder structure is that clarifying how different kinds of files should be placed; To make a good program, we need to organise the source and project files properly; The more chaotic it is, the harder 
to manage the program project. 

This is an example of program structure
  • log.txt - development logs
  • docs/ - documents related to the project
  • src/ - source code folder
  • res/ - resource folder
  • res/gui/ - resource related to GUI
  • res/sound/ - sound resource

6. Make a very simple runnable program

This is my practice of start a software project. I make a very short and simple program so that I can make sure compile, build and run doing properly. This can make sure the development environment is setup successfully. "Build and run" is a good starting point of the coding activities;

7. Setup TDD coding facility

Once a program can be built and run. I will immediate add unit test related sources and library, such as  JUnit. For project involving graphics stuff, I will write some codes help testing the some graphics modules. Once it is done, it let you to write and test small pieces of code, which is the TDD practice;