GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Main page
  • Contents
  • Current events
  • Random article
  • About Wikipedia
  • Contact us
  • Help
  • Learn to edit
  • Community portal
  • Recent changes
  • Upload file
  • Special pages
  • Search
  • Donate

This view

  • Original page
  • New address

GeezerVison is showing en.wikipedia.org — Self-documenting code - Wikipedia

icon
This article needs more citations. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Self-documenting code" – news · newspapers · books · scholar · JSTOR
(March 2020) (Learn how and when to remove this message)

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.[1]

Objectives

Commonly stated objectives for self-documenting systems include:

  • Make source code easier to read and understand[2]
  • Minimize the effort required to maintain or extend legacy systems[2]
  • Reduce the need for users and developers of a system to consult secondary documentation sources such as code comments or software manuals[2]
  • 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[2]
  • consistency[2]
  • scope of the application and system requirements

Examples

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

size_t count_alphabetic_chars(const char *text)
{
    if (text == NULL)
        return 0;

    size_t  count = 0;

    while (*text != '\0')
    {
        if (is_alphabetic(*text))
            count++;
        text++;
    }

    return count;
}

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.[3]

See also

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

References

  1. ↑ Schach, Stephen R. (2011). Object-Oriented and Classical Software Engineering (8 ed.). McGraw-Hill Professional. pp. 505–507. ISBN 978-0-07337618-9. OCLC 477254661.
  2. 1 2 3 4 5 Paul, Matthias R. (2002-04-09). "Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1". freedos-dev. Archived from the original on 2020-03-24. Retrieved 2020-03-24. […] almost any numeric value in source code should be replaced by a corresponding symbol. This would greatly improve the self-explanatory aspect of source code and significantly ease maintenance of the code in the long run, as it would enable one to search for symbols to find relations between different excerpts of the code. […]
  3. ↑ Raskin, Jef (2005-03-18). "Comments Are More Important Than Code - The thorough use of internal documentation is one of the most-overlooked ways of improving software quality and speeding implementation". ACM Queue. Development. 3 (2). ACM, Inc. Archived from the original on 2020-03-24. Retrieved 2019-12-22.

Further reading

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


Stub icon

This programming-language-related article is a stub. You can help Wikipedia by adding missing information.

  • v
  • t
  • e
Retrieved from "https://en.wikipedia.org/w/index.php?title=Self-documenting_code&oldid=1299078526"
Categories:
  • Computer programming
  • Software documentation
  • Programming language topic stubs
Hidden categories:
  • Articles with short description
  • Short description is different from Wikidata
  • Articles needing additional references from March 2020
  • All articles needing additional references
  • Use dmy dates from March 2020
  • All stub articles
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.