Design by ContractАрхитектура
Graham is a seasoned developer, author and conference speaker. He likes to find new ways to think about software design, architecture and quality, and share those ways of thinking with others.
People are getting interested in functional programming now and designing their software as functions that transform data from one type to another, rather than recipes that sequentially modify some state. The claim is that we can "reason about" our software better, design by contract is about capturing that reasoning as statements about the inputs and outputs of our functions, and connecting those together to make sure that our software works correctly for _any_ valid input, not just the few cases we thought about in unit tests.