API 设计

3个层面:

  • 达标:词法和语法
  • 正确拼写
  • 准确用词
  • 注意单复数
  • 不要搞错词性
  • 处理缩写
  • 用对时态和语态
  • 进阶:语义和可用性
  • 单一职责
  • 避免副作用
  • 合理设计函数参数
  • 合理运用函数重载
  • 使返回值可预期
  • 固化术语表
  • 遵循一致的 API 风格
  • 卓越:系统性和大局观
  • 版本控制
  • 确保向下兼容
  • 设计扩展机制
  • 控制 API 的抽象级别
  • 收敛 API 集
  • 发散 API 集
  • 制定 API 的支持策略

判断:

  • 可理解性
  • 一致性
  • 可见性
  • 简单性

但是整体 API 的设计还是需要根据实际需求与情况,比如 jQuery 的 API 就是聚敛的写法「设置与获取使用相同api」。好的 API 也是不断改进出来的,也需要根据实际进行分析。

计算机基础

  • 重载
  • 多态

程序设计的本质是抽象,而过程抽象是一种与数据抽象对应的思路,它们是两种不同的抽象模型。数据抽象比较基础,而过程抽象相对高级一些,也更灵活一些。数据抽象是研究函数如何操作数据,而过程抽象则在此基础上研究函数如何操作函数。??

代码规范与可读,可维护「简称最佳实践?」:

  • 统一
  • 命名: 大小驼峰,动词,时态
  • 结构
  • 专一
  • 一个函数只做一件事,即单一职责 「需根据情况,聚敛 API 和 分散 API」
  • 错误与异常处理
  • 控制副作用,js 的混合设计模式
  • 函数改造:非侵入; 逻辑,功能不同需保持单一的职责

抽象

以上整体内容比较多,但目前就只能是学习个一两点,还需要真实地在代码中实践。也就不做过多的深入思考。