编写公共类库的第一原则:管好你的 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的纯净和专注需要反问自己功能是否是核心职责,是否足够通用,并避免暴露实现细节。

➡️

继续阅读