尤雨溪也是很棒的產(chǎn)品經(jīng)理
大家好,我卡頌。
這篇文章不是標(biāo)題黨,也不是想蹭尤雨溪的流量,而是我看了VueConf US 2023[1]后的一點感想。
從字節(jié)聊到Vue
在聊本文的主題前,讓我們先從字節(jié)聊起。字節(jié)有個很響亮的綽號 —— App工廠。是指字節(jié)會在各個賽道用流水線的形式批量產(chǎn)出App,再根據(jù)數(shù)據(jù)不斷迭代。
當(dāng)然,字節(jié)看得上的都是很大的賽道。實際上,在很多一線互聯(lián)網(wǎng)城市,有很多體量比較小的互聯(lián)網(wǎng)公司,也在采用類似的開發(fā)模式。具體是怎么做的呢?
首先,他們會定時跑App Store或者Google Play的排行榜,看看各品類有什么發(fā)展不錯的新App。
當(dāng)發(fā)現(xiàn)這類App后,他們會結(jié)合公司自身的開發(fā)資源,判斷到底能不能復(fù)刻一個,以及預(yù)期收益能不能覆蓋運(yùn)營成本(買量、刷好評等費(fèi)用)。
當(dāng)發(fā)現(xiàn)這事兒有搞頭后,就會立項并迭代。
與這種「工廠模式」(姑且這么叫吧)相對應(yīng)的,就是常規(guī)的「我有一個好點子,我要落地這個好點子」的開發(fā)模式。
對于成熟互聯(lián)網(wǎng)團(tuán)隊來說,顯然前者比后者更容易成功(因為省去了很多試錯成本)。
Vue特性的迭代也類似「工廠模式」,比如:
- 模版語法借鑒Angular 1
- Composition API借鑒React Hook
- Vapor Mode借鑒Solid.js
注意,在開源領(lǐng)域,「借鑒」這種行為無論從法律,還是開源道德層面來說,都是很正常的行為。甚至,開源項目能夠推陳出新,本身就是不斷在前人的肩膀上攀登。
所謂「創(chuàng)新」,很多時候并不是「從0到1想出一個點子」,而是「把已有的點子重新排列組合」。
有些同學(xué)可能會質(zhì)疑:開發(fā)、運(yùn)營App是市場行為,但搞開源是搞技術(shù),而且是完全免費(fèi)的,兩者不能類比。
實際上,開源本身就是一門生意。在這門生意中,開發(fā)者是用戶,開源項目是產(chǎn)品,而「免費(fèi)」本身只是產(chǎn)品的一種定價策略。
Vapor Mode的產(chǎn)品思維
在VueConf US 2023中,Vapor Mode的后續(xù)安排就很好的體現(xiàn)了產(chǎn)品思維。
首先,Vapor Mode的概念尤雨溪在2022年[2]就提出了,這是一種模版編譯模式。相比「虛擬DOM」,他有兩個優(yōu)點:
- 對于小項目,打包體積更小
- 框架自身的運(yùn)行時工作流程更短,這通常也意味著框架性能更好
雖然Vue同React一樣采用「虛擬DOM」,但其更新方式是響應(yīng)式更新。與其更新方式類似的Solid.js可以從編譯策略中獲益,顯然Vue也可以。
所以,借鑒Solid.js的編譯策略,尤雨溪提出了Vapor Mode。
這一步可以類比上面例子中的「尋找優(yōu)秀的App」。
作為一個產(chǎn)品,Vapor Mode的發(fā)布分為四個階段:
第一階段(當(dāng)前所處階段)的目標(biāo)是「提供核心功能的運(yùn)行時」,比如「v-if、v-for指令在Vapor Mode下的運(yùn)行時實現(xiàn)」。這樣就能大體評估Vapor Mode對運(yùn)行時性能的改善有多大。
這一步可以類比上面例子中的「評估開發(fā)這個App到底值不值」。
下一階段的目標(biāo)是「實現(xiàn)核心特性的編譯器」,可以完成:
- 從JSX到中間代碼,到Vapor Mode代碼的轉(zhuǎn)換。
- 從模版語法到中間代碼,到Vapor Mode代碼的轉(zhuǎn)換。
將編譯器單獨(dú)作為一個步驟,除了因為他是必須的組成部分外,從產(chǎn)品的角度出發(fā),還有個很重要的原因 —— 有了編譯器,就能出一個playground。
屆時,開發(fā)者可以預(yù)先體驗Vapor Mode的輸出結(jié)果。雖然還不能在項目中使用,但能讓用戶(也就是開發(fā)者)感知到項目的進(jìn)展。這對于維持用戶關(guān)注(即維持開發(fā)者關(guān)注)是很有幫助的。
再下一個階段的目標(biāo)是「可以在現(xiàn)有項目中插入Vapor Mode組件」。
在實際項目中,「在現(xiàn)有項目中插入Vapor Mode組件」的場景其實不多,更多的場景應(yīng)該是「新開Vapor Mode項目」。
但從產(chǎn)品的角度出發(fā),這個步驟是實現(xiàn)MVP(minimum viable product,最小化可行產(chǎn)品)。這樣,Vue團(tuán)隊可以以最小的成本,驗證Vapor Mode在市場中的反饋。
最后一個階段的目標(biāo)是「Vapor Mode全特性支持」,也就是將之前「虛擬DOM」下支持的特性(比如Transition、KeepAlive)都遷移到Vapor Mode。
可以發(fā)現(xiàn),Vue團(tuán)隊會在前面所有驗證步驟(驗證可行性、驗證收益、驗證市場反饋)都走完后,再慢慢遷移特性。
試想,如果悶頭一頓開發(fā),直接上線全功能Vapor Mode,如果開發(fā)者反饋不佳,那對于Vue團(tuán)隊來說,可是不小的打擊。
總結(jié)
本文從產(chǎn)品的角度分析了Vapor Mode的迭代策略。不難看出,尤雨溪不僅承擔(dān)了開發(fā)工作,還要承擔(dān)產(chǎn)品經(jīng)理、項目經(jīng)理的工作。
Vue能成為世界范圍最知名的前端框架之一,除了其團(tuán)隊成員的專業(yè)性外,「工廠模式」的產(chǎn)品開發(fā)模式也功不可沒。
參考資料
[1]VueConf US 2023:https://www.youtube.com/watch?v=y-hN5Q_lb9A。
[2]2022年:https://blog.vuejs.org/posts/2022-year-in-review。