vue3源码分析--真的有必要掌握框架的细枝末节吗?

古人云:工欲善其事必先利其器,磨刀不误砍柴工。但是砍柴的人需要知道怎么制作刀吗?

注意:本文先分析要不要学源码,然后分析要不要掌握源码的每一个细枝末节(深究技术)!!!

为什么要学源码

  • 为了面试被迫学习->毕竟面试可是要造火箭的
  • 为了装逼->装逼才是人生的究极快乐
  • 遇到问题网上找不到解决方案->只能硬着头皮啃源码
  • 想了解优秀的代码长什么样->猎奇心理
  • 打磨技术永远不会错->技术是安身立命之本
  • ...

为什么不要深究源码

为了面试被迫学习源码

大部分面试官也只是跟风网上的面试题问的,并不清楚细枝末节,所以能说清楚实现思路足够应对了。工作拧螺丝,80%甚至99%的工作都是调用API就可以解决的。剩下的1%请教同事或者百度也可以解决。如果不能解决改变需求或者换个实现方案绕过去不就行了吗?技术是死的,人是活的嘛

为了装逼

能复述框架实现思路已经够装逼了,再搜罗些生僻的源码面试题足以震慑全场!实在不会的神秘一笑更是高深莫测。完全掌握源码细节还不如好好琢磨话术,怎么说才能显得自己逼格更高

遇到问题网上找不到解决方案

啃相关问题的源码就够了,能解决问题就够了,等问题出现在啃也不迟。再者换个方案不就是了吗?再者业界都没有解决方案,直接告诉业务方做不了就完了呗。

想了解优秀的代码长什么样

写出源码级别的代码和带些坏味道的代码对于实现业务而言有什么区别?就像吃东西是为了填饱肚子,吃10块钱的白米饭和2W的豪华大餐不都是填饱肚子吗?豪华大餐还上菜慢。不过多了些可维护性高的附加价值罢了,附加价值还很难被证实和评估。何必呢?

打磨技术永远不会错

每天能用于学习的时间是极少极少的,而框架是善变且繁多的,为什么不学些更实用的呢?前天学完vue2源码,昨天又看了react hook源码,今天又学了vue3源码,明天leader说我们全面拥抱angular吧。nice,我学你mlgb!学完就过时,浪费时间就是浪费生命!

...

综上:掌握框架核心思想即可,不必深入技术的细枝末节

  • 深究细节需要耗费太多精力,但是中短期收益比较低,甚至学了根本用不到。
  • 用于学习的时间和精力是有限的,我们应该用及其有限的时间学性价比最高的东西(不止于技术),而长期收益是由短期收益累加的,这样看来长期受益也不低。

但是:拿破仑说不想当将军的士兵不是好士兵?
发散:从要不要深究源码细节到要不要挖掘技术深度

提升格局:技术深度的重要性和带来的深远影响远远超出你的想象

一 T M 型人才

  • 一字型人才看起来什么都懂,但都是泛泛,扛不了大旗
  • 企业渴望T型人才(P7是某个技术或业务垂直领域的专家(不说带团队的事))
  • 企业更渴望M型人才(P8是多个技术或业务垂直领域的专家(不说带团队的事))
  • 技术深度是程序员的核心竞争力
  • 有技术深度的人很容易在技术交流中赢得大家的信任和依赖,脱颖而出成为领头羊!
  • 当企业面临困难需要裁员,一定是优先保留有技术深度的大佬而不是写页面快的切图仔! 因为切图仔真的是太容易招了。特别是做了TL之后注重管理忽略技术的leader,必定是先裁掉或者大幅降薪!

一颗树要想成为参天大树

  • 首先要活下来:要让根系更深更发达,只有这样才能在暴风雨来临后存活下来,而根系浅薄的树风一吹就倒了!
  • 仅仅根系深还不够,欲穷千里目,更上一层楼!
  • 其次要长的高:根系深厚能保证我们活下来,而高度(眼界、格局)能让我们更轻易的脱颖而出,吸收更多的阳光(资源倾斜),更容易长成参天大树!
  • 所有光有深度还不够,还要有高度,然后是广度

总结升华

到底先学什么,再学什么?

  • 首先熟练当前业务或团队需要的技术->达到API熟练
  • 其次集中精力成为某个技术或业务垂直领域的技术专家->拥有核心竞争力不可替代性
    • 集中精力成为与核心竞争力关联的技术或业务垂直领域的技术专家->从T型人才变成M型人才
    • 或者提升影响力、眼界、管理、协同等软实力->从技术人才变为TL或项目组负责人(还是M型人才)
  • 然后提升广度
    • 通过学习项目组业务端到端闭环的所有技术,提高在项目组的权威和决策能力
    • 通过对比关联技术快速学习(比如vue和react),提高取长补短、技术选型等能力,对比分析总结出业界通用解决方案(本质),从而进阶成领域专家
  • 再往下编不出去了啊哈哈哈=_- ...
  • 开玩笑,关注我下一篇继续编...

作者:一袋米要扛几楼
链接:https://juejin.cn/post/6926336016152428551
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。