以框架定位論前端的先進性
朋友圈有人說希望我聊一下前端先進性,這是個不太好討論的問題,嘗試著從框架定位方面講講。
首先,我們看一下前端的問題是啥,我以為最重要的問題是前后端比例失衡問題,本質上這個是不可以解的,只要有地方不叫,那就是需要成本優化的。公司是商業組織,這是很容易理解的。從更大的角度看,整個前端開源生態也面臨一樣的問題,從3大框架混戰到2018年之后就進入相對穩定的時期,能做的更多是微創新,也是一個尷尬的困境。
如果說一定要找解法,優化解法如下。
-
造輪子,提效,以前造業務相關廣度優先,現在是深度優先。
-
產研鏈路優化,提效
-
pk需求,管理預期,降低分子,降壓
-
提升自己產能,堅持每日有點進步
都是打破自身邊界的事兒,每個領域其實都是可以有先進性的。以上4點其實是我在阿里4年經歷的總結。但論先進性,有些話是不好講的。以阿里的技術來做品評也是不合適的。如果想做到中立,又能講清楚,以框架來討論應該是個好主意。我本人也對開源也還算熟悉,對各種框架也還算熟悉。
框架設計定位的4點想法:人無我有,人有我優,人優我特,人特我轉
-
人無我有:如果市面上沒有,那是創新,比如前端同學苦webpack久已,如果能做到bundless,那就是蝎子粑粑獨一份,比如snowpack(2018年開始)就是很好的例子。
-
人有我優:雖然snowpack是第一個,但它還是有很多可以改進的空間,vite(2020年初)做到了真正的按需編譯,快速的冷啟動,即時的模塊熱更新,使用rollup插件機制,站在rollup生態上,更方便。
-
人優我特:在我們做ssr的時候,研究了市面上的所有ssr方案,彼時egg已經做的相當好了,所以我們采用了next的寫法,做了ssr和csr無縫降級,在大流量c端方面做了降級,兜底等方面的優化,所以egg-react-ssr的定位是略顯小眾,特別的,好處是在ssr領域做到最好,聚焦,極致。
-
人特我轉:ssr領域其實能做的,egg-react-ssr已經都做到沒有對手了,next轉型做大而全,那么ssr接下來如何走呢?2019年Serverless在前端開始成為探索方向,二者結合,將ssr和csr放到Serverless上渲染,于是就有了Serverless-side rendering,即基于Serverless的端渲染。網上說的Serverless ssr其實是被帶偏了的,他們只是看到了ssr和Serverless的集合,這是不專業的。
簡單的講了一下框架設計的定位方法,本質上,它考驗的是作者的格局,框架定位是否準確,和它能夠做到多大是有直接關系的。 從定位是可以看出框架的先進性的,比如vite 很明顯就是踩在風口,根植于rollup生態,最差情況vue自己收益,所以這樣的設計是一定會受到開發者的認可的。
再看幾個我堅持的原則
-
遵循DRY原則,不要做同質化的東西。做不出特別的點便不要做。比如fastify就是很好的,雖然是web框架,但在性能領域,無論模塊,還是node源碼,還是http client都在做優化,這種持續且有深度的開源是非常棒的。相反,如果只是簡單的搞一個Web框架,換個寫法,不做也罷。
-
克制,先專精,然后再考慮后面的事兒,畢竟人的精力是有限的。首先能知道自己該做啥的不多,畢竟俯視視角不是一天二天就能形成的。其次,大家習慣性做加法,想改變這種想法是非常困難的,挑戰人性。
-
設計的時候要大,做的時候要小。設計的時候是可以隨便討論的,將所有問題拋出,批判性的反復討論,最終形成框架的定位,這個過程一定要透明,公允,不然容易帶有過多個人意志,雖然很多時候是對的。做的時候小是因為精力問題,先有再優,后面正常迭代就好了。
-
先解決自己的問題,其次挑一個有挑戰的努努力能夠搞定的業界難題,如果二者能結合是最好的。很多時候,社會責任很多人是沒到考慮的時候,格局不大到一定程度是不會這樣思考的。
當然,我們看別人的項目也要有一定的包容性。
-
先看定位,理解意圖,你就會更包容
-
理解所處階段,如果業務很忙,如果底子或沉淀不足,如果人不夠。。。有很多因素決定框架的質量
-
基本功是否夠硬,比如文檔,架構,代碼規范等等,多看優點,有思考,有不同,從觀賞者的角度有收獲就好
其實說白了,換位思考而已,大家都不容易,不必苛責。
先進性本身也是相對的,能夠滿足自身需求,能夠對社區有幫助就更好了。