Breaking changes
summary
Shows concrete breakages: replacing a numeric status code with a string breaks callers using === and turns arithmetic into string concatenation, the array flatten debate exposes ambiguous semantics, and Node’s Buffer ambiguity gets fixed by splitting into Buffer.from and Buffer.alloc. Semantic Versioning is coarse — zlib 1.2.9 (Dec 2016) rejects previously tolerated compression values and causes crashing servers, taking ~10 months to mitigate. Practical fixes: prefer Maps/Sets, use named-argument objects, assert input types, publish runnable examples and tests.
AI-written summary · about
chapters (11)
- 0:00Breaking changes James Coglan
- 1:42THE SOFTWARE IS PROVIDED AS IS
- 7:26Changing interfaces
- 15:18Conceptual complexity
- 20:59Implied contracts
- 23:47Side effects
- 32:29Never break anything
- 35:52Communicate
- 37:33Avoid brittle constructions
- 41:43Documentation
- 42:45Automated testing
related talks
41mBreaking Changes
39mWe fail to follow SemVer and why it needn't matter
44mBackwards Incompatible Tales
46mThe Unexpected Demise of Open Source Libraries
37mNode.js Package Maintenance...
35mThe Social Coding Contract
26mHow to Break an API: How Community Values Influence Practices
01h 07mRuby Committers and the World
