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