Software Design/Specify interface contracts
This page augments Design by contract article on Wikipedia.
Why
editWell-specified interface contracts reduce cases when clients intentionally or unintentionally rely on unspecified behaviour, thus making the client code more robust.
Conversely, when clients don't use unspecified behaviour, maintaining the interface's compatibility doesn't require researching the code of the clients.
Sources
edit- David Thomas; Andrew Hunt (2019). The Pragmatic Programmer (20th Anniversary ed.). Addison-Wesley Professional. ISBN 978-0135957059.