昨天翻译了React
团队圣诞特辑的一篇文章《一起走进React核心团队》。
文章是好文章,能一窥大厂顶级开源项目团队的日常。细读后发现,从文章隐隐透露出作者:
心情低落 —— 尝试开解自己 —— 开解成功后
的心路历程。
尤其是文末最后一句话:
这意味着要有信念,不能因为你没有新的特性产出,就意味着你没有提供价值。
不管是大漂亮国的资本主义码农,还是我这样的北漂渣渣码农,在这个快速成长的行业,内心都是很有压力的吧?
又是没有提供价值的一天
前段时间有朋友给《React技术揭秘》提了PR
:关于effectList 单向链表的使用已经被react废弃掉了。
昨天抽出时间决定去看看源码里effectList
为啥废弃了。
首先找到对应PR:
再拉取最新的代码,奇怪的是这次改动在main
分支是不存在的。
blame
后发现,由于废弃effectList
后造成未知原因的性能指标下降,在如下PR中又重置回之前的代码了。
你看,一来一去,Andrew老兄又是好几个没有提供价值的日日夜夜。
按正常节奏去做,本身就是价值
接下来是灌鸡汤时间。
在《一起走进React核心团队》一文中,作者提到两个点:
-
React
团队在18年曾和prepack
团队合作,寻求组件编译时性能优化的方案。 -
React
团队在15年尝试过通过worker
线程分案虚拟DOM
计算压力。
这两项尝试,都失败了。
但是,他们为Server Components
的出现提供了思路。
再谈谈我个人微薄的体会:
我的KPI
有一项是对项目性能优化。
当常规优化手段都试验过后,我开始从项目使用的前端框架Anu
下手。
Anu
是司徒正美老师开发的类React
框架,我们团队从去年开始维护
在React
中,mount
时会先构建一整棵离屏DOM
树,再一次性插入页面。
而在Anu
中,没有区分mount
与update
。这意味着首屏渲染时会遍历,并对页面中的DOM
执行appendChild
。
我们都知道,在各种《性能优化指南中》,都强调:使用离屏DOM
,减少页面中的DOM
操作,可以提高性能。
于是,在将Anu
渲染流程调整到和React
一样后,我惊喜的发现:性能指标没啥变化。
又是愉快的没有创造价值的一天。
不过,有了这次经历,对Anu
的整体架构更熟练了,后来我又尝试为Anu
加上Time Slice
。
现在,已经在愉快的跑React
单测了。
喝完鸡汤擦嘴
很多事情都是这样,按正常节奏去做,本身就是价值。
我做了这么多年前端,感觉自己还是好坑啊。于是去年的某一天,决定学了新东西后就写写学习笔记。
每周抽出时间写一篇文章,这不难吧?断断续续半年过去了,居然凑出一本电子书React技术揭秘,反响还不错。
所以,朋友们,有想法,就去做,做事情本身就是创造价值,他会在未来某一天回馈你的。
毕竟不做怎么知道,涨再多工资也买不起房