Aller au contenu principal

Self-documenting code


Self-documenting code


In computer programming, self-documenting (or self-describing) source code and user interfaces follow naming conventions and structured programming conventions that enable use of the system without prior specific knowledge. In web development, self-documenting refers to a website that exposes the entire process of its creation through public documentation, and whose public documentation is part of the development process.

Objectives

Commonly stated objectives for self-documenting systems include:

  • Make source code easier to read and understand
  • Minimize the effort required to maintain or extend legacy systems
  • Reduce the need for users and developers of a system to consult secondary documentation sources such as code comments or software manuals
  • Facilitate automation through self-contained knowledge representation

Conventions

Self-documenting code is ostensibly written using human-readable names, typically consisting of a phrase in a human language which reflects the symbol's meaning, such as article.numberOfWords or TryOpen. The code must also have a clear and clean structure so that a human reader can easily understand the algorithm used.

Practical considerations

There are certain practical considerations that influence whether and how well the objectives for a self-documenting system can be realized.

  • uniformity of naming conventions
  • consistency
  • scope of the application and system requirements

Examples

Below is a very simple example of self-documenting code, using naming conventions in place of explicit comments to make the logic of the code more obvious to human readers.

Criticism

Jef Raskin criticized the belief in "self-documenting" code by saying that code cannot explain the rationale behind why the program is being written or why it is implemented in such a way.

See also

  • Autological word
  • Code readability
  • Comment (computer programming)
  • Controlled natural language
  • Literate programming
  • Natural language programming

References

Further reading

  • McConnell, Steve. "High Quality Routines checklist". Code Complete.



Text submitted to CC-BY-SA license. Source: Self-documenting code by Wikipedia (Historical)


PEUGEOT 205