# 模块化原则
# 模块化设计的要点
# 单一职责原则
当组件有一个唯一的精确目标时,就称它们遵守单一职责原则。
# API优先原则
面向接口编程而不是面向实现编程。
# 揭示模式
模块仅暴露外界需要的。
暴露的少,也方便以后的修改
# 寻找正确的抽象
抽象需求,然后统一实现,而不是一个个实现用例中的需求。
# 状态管理
模块化设计通过将状态树划分成可管理的小块来解决这个问题,树的每个分支都处理状态的一个特定子集。
# CRUST原则:一致 弹性 明确 简单 小巧
- 一致(consistent)。意味着相关的函数有相似的签名形态,比如数组的forEach some every map filter 入参一致
- 弹性(resilient)意味着灵活,并且接受几种不同的方式的输入,包括可选参数和重载。
- 明确(unambiguous)即对于如何使用API的功能、如何提供输入或理解其输出,没有多种不同解释。对于相同类型的结果,应该返回相同类型的输出。
- 简单(simple)是指使用,处理一般用例几乎不需要配置,对于高级用例允许其定制。
- 小巧(tiny)即够用但没有过度设计,包含尽可能小的表面积,同时为未来的非破坏性拓展留有空间。