昨天翻譯了React
團隊聖誕特輯的一篇文章《一塊兒走進React核心團隊》。前端
文章是好文章,能一窺大廠頂級開源項目團隊的平常。細讀後發現,從文章隱隱透露出做者:react
心情低落 —— 嘗試開解本身 —— 開解成功後git
的心路歷程。github
尤爲是文末最後一句話:web
這意味着要有信念,不能由於你沒有新的特性產出,就意味着你沒有提供價值。性能優化
不論是大漂亮國的資本主義碼農,仍是我這樣的北漂渣渣碼農,在這個快速成長的行業,心裏都是頗有壓力的吧?前端框架
前段時間有朋友給《React技術揭祕》提了PR
:關於effectList 單向鏈表的使用已經被react廢棄掉了。markdown
昨天抽出時間決定去看看源碼裏effectList
爲啥廢棄了。架構
首先找到對應PR:app
再拉取最新的代碼,奇怪的是此次改動在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技術揭祕,反響還不錯。
因此,朋友們,有想法,就去作,作事情自己就是創造價值,他會在將來某一天回饋你的。
畢竟不作怎麼知道,漲再多工資也買不起房