I think the most interesting idea is Hyrum's Law. It says, "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." All that to say that documentation and good intentions don't actually protect you. For example, if a hash table happens to iterate in a certain order, someone will eventually depend on that order whether it's promised or not. Then as an API owner, it means you can't reason your way to the conclusion that "nobody depends on this" for an interface. Having a robust CI system and canarying practice in place before touching anything widely used is a must, which ties right into the logic behind the Beyonce Rule. As an API consumer, it means treating undocumented behavior as unstable even when it's convenient. It's just a safer bet.
When you take them together these approaches shift the topic of maintainability from being a matter of following rules correctly to an ongoing negotiation with reality. I've been on both an API producer and consumer and the lesson in the text rings true.
Tuesday, July 21, 2026
CST438: Week 4 (Week 79)
Subscribe to:
Post Comments (Atom)
CST438: Week 7 (Week 82)
One of the differences between Agile and Waterfall software development cycles is that the Agile is more flexible while Waterfall tends to b...
-
This week I learned that React is really powerful for building interactive web UIs. It ties state directly to what shows up on screen. Until...
-
This week we covered merge sort and though we didn't have a programming assignment I took some time to explore it. I watched some video...
-
What did I expect that a course in Software Engineering would cover? I figured that it would cover the design, development, validation, and ...
No comments:
Post a Comment