Laws of Software Engineering · Principle
Principle
Postel's Law
Be strict about what you send. Be flexible about what you accept. *This advice is now contested.*
How to use it. In modern systems, prefer being strict in both directions. Flexibility was right for the early internet. It is mostly wrong now.
How it gets misused. Quoted as timeless wisdom. It has caused real problems: protocols that cannot evolve and errors that pass silently. Read it alongside Hyrum's Law.
Related
-
Principle Hyrum's Law If your software has enough users, every behaviour they can observe will become something they depend on, even if you never promised it.
- Principle Bounded Contexts Different parts of a system can use the same word to mean different things. Draw an explicit boundary around each meaning and translate at the seam.
Clusters
- The Interface Contracts cluster - What you promise, what you accept, what your users come to depend on.