锁定API
有效地构建API的技巧与管理期望以及结构有关。
当我说API时,我指的是公共/内部类/方法的命名方式以及它们的访问级别(即私有/公共/内部)。
如果您担心代码在黄金时段可能还没有完全准备好,可以随时将其最初发布为Beta。
发布:
Beta(即1.0版之前的版本)
- 可能包含多个API重大更改
- 可能缺少版本之间的向后兼容性更改
- 可能缺乏抛光
官方(1.0+)
- API已锁定,直到下一个主要版本
- 引入的任何更改都应保证向后兼容
次要(ex 1.1)
- 包含错误修复和/或功能实现
- 可能会添加但不会脱离已定义的API
如果您认为该API需要经过严格的处理,则可以将其作为Beta发布一段时间。这表明它可以使用,但不应用于生产和/或关键任务代码。
许多人将带编号的版本控制方案当作hogwash对待,但是当有效地使用它们时,可以使用它们来提供一些摆动空间,直到您整理出结构为止。
您关于如何使用它的假设是错误的
无论某件产品的设计水平如何,人们都会找到一种滥用或创建替代用途的方法。
解决此问题的一种方法是使用访问器(即私有/公共/内部)来锁定尽可能多的实现,但是没有多少设计或工程给您带来比向用户发布代码一样多的洞察力。
您认为代码可以变得多么“完美”并不重要,您的用户将证明事实并非如此。
我认为这是使用现有代码库总比完全重写更好的主要原因。充其量可以说是完全重写,但很可能新代码库将包含与原始代码库一样多(甚至更多)的错误。
在您的情况下,您正在从头开始进行战斗,因此您不妨上手。
听起来您的其他基地已经覆盖。API文档至关重要,测试对于确保将来进行更改时的稳定性非常有用。
在将代码发布用于生产之前,实现一致的日志记录方案非常重要,因为您将需要一种全局启用/禁用/过滤日志的方法。顺便说一句,在大多数情况下,日志记录实际上仅涉及到导入库并将Debug.WriteLine()的输出调用更改为Logging.Debug(),Logging.Info(),Logging.Error()之类的东西。记录器本身仅提供配置,过滤和更广泛的输出方案(例如文件,控制台等)的标准实现。
除此之外,我希望将代码发布并使用。即使仅由少数用户启动。