Programming Discipline

There are four features of the coding discipline we use:

  • interfaces
  • inline documentation
  • cross-referencing
  • top-down code growth

    -= interfaces =-

    Components are strictly encapsulated through interfaces. This is a traditional feature of object-oriented programming, but is especially emphasized here. Any number of components supporting the same inteface can be tested in a uniform manner. Accordingly, an old implementation can be replaced with a new one with the same interface without re-writing any other code. These benefits augment the top-down growth paradigm (see below).

    -= inline documentation =-

    The behavior of each function is clearly described immediately within the function itself. Longer functions contain extensive comments within the different sections of code. This allows coders with poor short- term memories to remember what they were doing, and coders who are new to the code to quickly understand what in the world the previous coder had in mind.

    -= cross-referencing =-

    Related areas of code in different files or distant within the same file are cross- referenced. This facilitates changes to any sensitive pieces of code which will require additional changes in other places as well.

    -= top-down code growth =-

    Top-down growth consists of developing at all times with an operational prototype. That is, an empty but working code skeleton is developed first, then slowly augmented piece-by -piece until a desired level of functionality is reached. This makes the programmer more excited about the task at hand, and vastly improves coder morale. In addition, it allows much testing to occur before other components are completed, so that each component, in theory, should be nearly fully tested by the time the code base approaches finalization.