最小化认知复杂度概览
用户在使用库之前,需要快速准确地建立起关于库的函数和抽象的认知模型。 实现这一点的最佳方式是尽可能减少他们遇到的复杂度。
最小化认知复杂度的策略包括:
- 简洁性: 努力提供一个以最少组件实现最多功能的 API,复用现有的 Kotlin 类型和结构以避免冗余。在可能的情况下,创建一小组核心抽象,并在其之上构建附加功能。
- 可读性: 以声明式风格编写 API,使代码意图清晰。除非绝对有必要创造新名称,否则直接从问题领域中为抽象选择名称。按其预期用途使用基本数据类型。明确区分核心功能与可选功能。
- 一致性: 为 API 的每个设计环节保持单一且清晰的方法。无论是面向对象还是函数式,都应使用统一的命名约定、错误处理策略和模式。
- 可预测性: 将库设计为遵循“最小惊讶原则”。确保默认设置符合最常见的用例,让用户能够通过最简单、最简短的代码完成任务。仅允许以明确指定的方式对库进行扩展,以保持一致性和可预测性。
- 可调试性: 通过简化信息提取以及在嵌套函数调用中进行导航,确保库能够辅助用户排查故障。当抛出异常时,异常的类型和内容应与底层问题相匹配,并提供有效诊断和解决问题所需的所有必要细节。应当能够捕获并输出领域对象的状态,并查看任何中间表示。
- 可测试性: 确保库以及使用该库的代码都能被轻松测试。
接下来的章节将详细介绍如何在 Kotlin 中实施这些策略。
下一步
要开始深入探索这些策略,您可以从下一节了解简洁性开始。