- 凡是想要了解实现原理的就会去分析
- 遇到有趣的就更要上了
- 难也没关系, 来一个干一个, 来两个宰一双 ><
- (算法, 操作系统, 计网, 编译原理, 设计模式, 软件工程, 数学(机器学习, 图像处理))
目的
学习实现原理, 代码组织, 满足好奇心
分析方法
- 需要有小的 demo 展示在最开始的地方
- 必须配置好相关环境, 部署好代码
- 检查代码结构, 确认入口
- 对于比较简单的, 走一遍流程, 困难的, 针对各个函数
- 分析功能的实现的最简执行单元, 判断参数重载, 错误捕捉等其他部分
- 对其进行总结, 评价
对于比较难的, 不要光看, clone 下来撸一会再简单实现一下, 必须要用复制下来看
看到一个 console.error 打印堆栈的方法
现在 19.11.5 暂且对参数重载, 错误捕捉等不做要求, 假定所有输入调用常见且规范
代码好坏评价
- 功能特性
- 执行性能
- 可读性
- 文档与注释
- 可扩展性
关于可读性, 如果没有复用就不要分出函数来, 另外函数行数也不应该过长,最多80行, 3~40合适(等经验多了再看看)
19.11.6 - 没有踩过坑, 可扩展性部分较难判断出来
代码之外的, star数, 更新频率, issue
看看更加成熟的观点 - 精读《12 个评估 JS 库你需要关心的事》