Command-query Separation - Connection With Design By Contract

Connection With Design By Contract

Command-query separation is particularly well suited to a design by contract (DbC) methodology, in which the design of a program is expressed as assertions embedded in the source code, describing the state of the program at certain critical times. In DbC, assertions are considered design annotations – not program logic – and as such, their execution should not affect the program state. CQS is beneficial to DbC because any value-returning method (any query) can be called by any assertion without fear of modifying program state.

In theoretical terms, this establishes a measure of sanity, whereby one can reason about a program's state without simultaneously modifying that state. In practical terms, CQS allows all assertion checks to be bypassed in a working system to improve its performance without inadvertently modifying its behaviour. CQS may also prevent the occurrence of certain kinds of heisenbugs.

Read more about this topic:  Command-query Separation

Famous quotes containing the words connection with, connection, design and/or contract:

    We live in a world of things, and our only connection with them is that we know how to manipulate or to consume them.
    Erich Fromm (1900–1980)

    Accept the place the divine providence has found for you, the society of your contemporaries, the connection of events.
    Ralph Waldo Emerson (1803–1882)

    A good scientist is a person with original ideas. A good engineer is a person who makes a design that works with as few original ideas as possible. There are no prima donnas in engineering.
    Freeman Dyson (b. 1923)

    Smoking ... is downright dangerous. Most people who smoke will eventually contract a fatal disease and die. But they don’t brag about it, do they? Most people who ski, play professional football or drive race cars, will not die—at least not in the act—and yet they are the ones with the glamorous images, the expensive equipment and the mythic proportions. Why this should be I cannot say, unless it is simply that the average American does not know a daredevil when he sees one.
    Fran Lebowitz (b. 1950)