理念
这份清单包括项目应遵循的一般精神。 这份清单并不全面。有些内容显而易见,但为了完整性而列出。
-
设定明确的期望。 提前让项目意图和决策被人知晓。 没有什么应该是出人意料的。
-
清晰地传达决策。 团队可能会通过私有渠道评估选项并做出决策。 尽管团队会尽量使用像GitHub discussions或者Discord这样的公开渠道进行讨论,但由于私营公司的性质,频繁的私人检查是常态。 当决策通过私有渠道发生时,团队必须承诺使用公开渠道传达这些决策。
-
错误应尽可能建议修复和提示。 这些应从使用中推断和过滤,以减少表面上无关和无帮助的信息。
-
独特且具体的错误信息。 不使用通用的错误信息。 这可以帮助用户理解出了什么问题,并为维护者提供独特的调用位置和调试所需的信息。
-
优化API。 对所有选项和标记的存在提出疑问。 它们是否必要?它们可以被合并吗?我们如何减少代码分支?
-
降低行话。 不要假设用户会理解特定的术语。 力求为专家和初学者提供精确的含义。 例如,在生成解析器错误时,使用”字符”而不是传统的”token”。
-
在命名命令和标志时使用详细描述。 没有不必要且令人困惑的缩写。
-
使用包容性的术语。 使用中性的代词。不使用有关健全主义的侮辱。 不使用可能被认为是敏感的词语。
-
为通用客户端构建。 不要假设终端只会使用ANSI代码来消耗输出。 使用可以用于在IDE、浏览器或其他环境中查看的抽象。
-
终端输出应该是明确的。 在设计终端输出时,不要仅依赖于像颜色这样的格式化提示。 总是使用格式化、符号和间隔的组合。 如果所有的ANSI代码都被剥离,所有的输出仍应被理解。