Just for practicing the software architecture proposed in the following link: http://qiita.com/mokemokechicken/items/b59f448079a97f132dd6
Although some habits can only be practiced by the discipline among the programmers, others can be enforced by coding itself -- for example, using the singleton idiom in C++ may be applied to the Model class so that it can only be implemented as a singleton.
I believe such practices are essential for applying the basic upstream software design. We should take advantage of the complier errors and let it warn us if we're violating the software design.