Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 3rd Edition
by Krzysztof Cwalina, Jeremy Barton, Brad Abrams
D
Breaking Changes
Every single change that you make in a reusable library has the potential for breaking something. If you make a method faster, you may inadvertently reveal a race condition in your caller’s code. If you make a specific case slower while making the general case faster, you might exceed the maximum time your caller allowed, or reveal a different race condition. Correcting an incorrect return value is generally good, but some callers may create a dependency—knowingly or not—on the incorrect value you returned.
This appendix touches on many different kinds of changes, the kinds of things that can be broken by changes, and whether a change is one that the .NET BCL team would generally accept for the core .NET libraries. This content ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access