编写公共类库的第一原则:管好你的 public
💡
原文中文,约3800字,阅读约需9分钟。
📝
内容提要
在构建和维护 .NET 开源项目时,应遵循「管好你的 public」原则,避免在公共API中添加与核心目标无关的功能,以保持代码的可读性和稳定性。内部功能应设为 internal,以确保公共API的纯净和专注,避免复杂性和混淆。
🎯
关键要点
-
在构建和维护 .NET 开源项目时,应遵循「管好你的 public」原则。
-
避免在公共API中添加与核心目标无关的功能,以保持代码的可读性和稳定性。
-
内部功能应设为 internal,以确保公共API的纯净和专注。
-
‘私货’指的是在公共代码库中添加与核心目标无关的功能。
-
滥用 object 扩展方法会污染公共类型,缺乏可扩展性和控制力。
-
暴露宽泛的 Util 类会带来强烈主观偏好和命名冲突的问题。
-
泄露具体的实现类会导致强耦合和破坏性变更。
-
保持公共API的纯净和专注是优秀开发者的必备素养。
-
每一行 public 代码都是对使用者的承诺,应该是稳定、清晰、且专注的。
-
在封装公共库时,要反问自己功能是否是核心职责,是否足够通用。
❓
延伸问答
什么是“管好你的 public”原则?
“管好你的 public”原则强调在公共API中避免添加与核心目标无关的功能,以保持代码的可读性和稳定性。
为什么要避免在公共API中添加‘私货’?
添加‘私货’会导致代码库目的不明确,引入不必要的复杂性,甚至给使用者带来困惑和麻烦。
如何处理内部功能与公共API的关系?
内部功能应设为internal,以确保公共API的纯净和专注,避免污染公共类型。
滥用object扩展方法会带来什么问题?
滥用object扩展方法会污染公共类型,缺乏可扩展性和控制力,并模糊类库的边界。
为什么不应该暴露宽泛的Util类?
暴露Util类会带来强烈主观偏好和命名冲突的问题,增加使用者的学习成本和依赖。
如何保持公共API的纯净和专注?
保持公共API的纯净和专注需要反问自己功能是否是核心职责,是否足够通用,并避免暴露实现细节。
➡️