3 ms·
> With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on
by sedatk 5y ago
> With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.
I find it too verbose. How about this alternative: "Every undocumented behavior of a system eventually becomes a contract."
- tooltower 5y agoAh, so I can stop people from depending on internal details by documenting it! /s I'd use the word "observable" rather than "undocumented"
- kijin 5y ago> Ah, so I can stop people from depending on internal details by documenting it! /s That actually makes sense. If some behavior is not to be relied upon, document it explicitly as such. With scary warning if necessary. At least this will provide you with more ammunition when your update inevitably breaks someone's workflow.
- sedatk 5y agoI mean documented features are observable too; I wanted to narrow the scope.
- duxup 5y agoHonestly I needed to read your phrasing to understand the original phrasing of the law. Thank you.
- the8472 5y agoSomeone depending on it does not mean it becomes the contract. Someone depending on implicit behavior means https://xkcd.com/1172/ https://xkcd.com/1172/ and you shrug and break them anyway because the contract never required you to uphold the property. It's called contract after all, there's a mutual relationship, not a one-sided one. Otherwise specifications would be meaningless and we would just tell people to read the source.
- deleted 5y ago[deleted]