某框架的使用者,想看下框架运行原理,于是拉代码编译。
结果看到模块编译时发现,框架源码在编译时运行了一部分代码(不仅仅是 webpack 的打包,还运行了),然后在框架启动时运行了一部分代码(就是项目启动时,还没显示在页面上),以及在打开页面时运行了一部分。
于是一种挫败感油然而生,本以为自己水平应该还行了,结果发现运行竟然这么复杂,不知道大佬们在搞框架时候,最终是怎么研究源码的?
1
Austaras 2019-12-12 21:52:25 +08:00
哪个框架你先说名字
|
2
orzorzorzorz 2019-12-12 21:55:12 +08:00 5
看库又不是这么看的,该先搜搜别人是怎么看的,先把坑给避开了。然后去看官方文档,里面肯定会有 development 相关的东西。看完再确定自己要看什么,然后去搜搜别人怎么说的脉络,对比多家心里有个数,然后再去看代码。
你前戏都懒得做,你不疼谁疼? |
3
tq0106 2019-12-12 21:57:47 +08:00
@orzorzorzorz 生动形象👍!
|
4
wszgrcy OP @orzorzorzorz 当时我看源码的第一个想法是看某功能怎么实现,结果发现好像不是太难,于是就想从这个框架的启动开始看,整个流程是怎么实现的,结果就发现被教做人了。。。外围的一些封装还是能看懂的,结果看核心发现难度徒增,各种依赖都出来了
|
5
nianyu 2019-12-12 23:20:50 +08:00
引用程墨的话-----什么鸟东西需要看源码才能解决问题,那么这玩意设计的一定是烂货。
|
6
night98 2019-12-12 23:35:03 +08:00
基本上看不完,同 5 楼,非要看源码才能解决问题,那么设计的一定很烂
|
7
chenliangngng 2019-12-13 00:45:49 +08:00 via Android
以前用过某知名库,此库还有库中库,有一个库中库没有把主库的一个接口暴露出来,导致相应功能无法覆盖所有有场景。
为了修复这个问题引发的 bug 盯着电脑一行行代码看了两天,各种回调跳来跳去,两天总共就看了不到 1000 行不到 10 个函数。 要真的想慢慢研究一个库,你最好准备一副抗蓝光眼镜 |
8
ansonsiva 2019-12-13 08:32:44 +08:00 via iPhone
@chenliangngng 原来我不是一个人😂
|
9
hyperbin 2019-12-13 08:59:44 +08:00 via Android
有个份心的话会有那么多的库引用 left-pad 模块吗
|
10
KgM4gLtF0shViDH3 2019-12-13 09:21:32 +08:00
|
11
enjoyCoding 2019-12-13 16:25:34 +08:00
看完? 看不完的 把 package.lock 打开都看看多少库...
我不看 看也看核心的诸如 axios lodash,而且更多的关注设计模式而不是比较细节的地方 react 和 vue 我都觉得不用自己看 靠别人喂都喂饱了 |
12
shunfy 2019-12-13 18:49:34 +08:00
不可能看得完吧? 除非你是神, 记忆力超群的神
|