API 设计与思考

API 设计

3个层面:

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

判断:

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

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

计算机基础

  • 重载
  • 多态

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

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

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

抽象

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