尤雨溪談 Vue.js :締造自由與真我

尤雨溪(Evan You),前端框架 Vue.js 做者,獨立開源開發者,現居美國新西。曾就任於 Google Creative Labs 和 Meteor Development Group。因爲工做中大量接觸開源的 JavaScript 項目,最後本身也走上了開源之路,如今全職開發和維護Vue.js。前端

最初是什麼動機促使了Vue 的產生?

Vue 一開始徹底是一個我的興趣項目。2013 年的時候我還在 Google Creative Lab,那時候前端框架還處於比較草莽的階段,React 剛剛發佈還沒幾我的知道,最成熟的是 AngularJS (Angular1)。我當時一方面是想本身實現一個簡單的框架練練手,另外一方面是想嘗試一下用 ES5 的 Object. define Property 實現數據變更偵測。衆所周知 AngularJS使用的是髒檢查,而當時大部分的應用還須要支持 IE8,因此不能全面使用 ES5,而我的項目則不須要考慮這些。Vue 就是這樣做爲一個實驗性質的項目開始的。vue

Vue 的發展歷程是什麼樣?從1.0到2.0有哪些大方面的改動?

Vue 的發展歷程,從最初的實驗階段(2013年中到2014年2月),0.x 階段 (2014年2月到2015年10月),1.x 階段 (2015年10月到2016年9月),到如今的2.x 階段 (2016年9月至今),加上正式對外發布的時間,到今天已經有足足5年多的時間了。0.x-1.0 的改動主要集中在模版語法上,在 1.0 以後,模版語法就相對穩定,沒有再經歷過特別大的改動了。2.0 的改動則專一於內部的渲染機制變化,引入了 Virtual DOM,從而得到了服務端渲染、原生渲染、手寫渲染函數等能力。目前 3.0 正在竭力的開發過程當中,主要集中於利用 ES2015 的新特性、改進內部架構和性能優化上。程序員

做爲創始人,目前您對 Vue 的貢獻與初期相比大概佔多少比重呢?

如今的 Vue 跟運行初期相比,最大的區別就是框架涵蓋的範圍變大了許多。一開始Vue只有一個核心庫,如今則是包含了路由、狀態管理、CLI 工具鏈、瀏覽器開發者插件、ESLint 插件等等的全套設施。目前只有核心庫依然由我維護,其它子項目基本都交給團隊成員去作平常維護了。web

Vue 的代碼追求簡約輕量,在實際開發中是怎麼和「功能性」結合在一塊兒的?

簡約和功能之間的平衡確實是一個頗有挑戰性的設計問題。從個人角度來看,須要確保的是當用戶不須要一個功能的時候,那麼這個功能就不該該給用戶形成額外的心智負擔。好比說 Vue 的 動畫組件,若是你不須要動畫功能,那麼你能夠徹底無視它的存在。從框架層面來講,這也體如今 Vue 的"漸進式」 設計理念裏面,好比你不須要客戶端路由,那麼你甚至不須要知道 vue-router 的存在。但對於須要這些功能的用戶而言,這些功能都是包含在框架以內的。因此 Vue 的 API 列表看上去好像很長,但實際上手須要掌握的核心概念卻很簡單,用戶只須要去了解功能的意義和價值就能夠了。vue-router

目前市場上初創及中小型企業的技術團隊爲實現項目的高效 開發及快速交付,對 Vue 的採用度很是高,那對於須要長期 維護的項目能選擇使用 Vue 嗎?

固然也適合!可是須要團隊有良好的開發規範,代碼的可長期維護本質上是一個規範問題。要讓一我的寫出來的代碼不只能被之後的同一我的看懂,還能被團隊裏其它成員看懂,甚至是被好久之後新加入的人看懂。從這一點來講,靈活性跟長期可維護性確定是有必定衝突的,想要寫出來的代碼一致,就須要有制約。有人可能以爲 Vue 制約太少,但其實該有的都有,徹底取決於你是否須要它們。若是你知道一個項目是要打長期戰的,那麼在啓動項目的時候,就要有意識的選用框架所提供的有利於長期維護的功能。一方面是採用好比 Vuex 這樣的狀態管理方案 -Vuex 的代碼是自帶必定的強制規範的,它可讓你們寫出來的修改狀態代碼都遵循同樣的流程。另外一方面則是須要團隊制定嚴謹的開發規範,好比代碼風格、靜態檢查、TypeScript、單元測試等等——這些 Vue 都經過 VueCLI 提供了工具層面的支持。咱們在 3.0 中還會進一步增強和 TypeScript 的整合。小程序

能夠簡單介紹一下目前 Vue 的團隊和運營策略嗎?

Vue 目前除了我以外還有一個全職成員蔣豪羣,他如今負責咱們 CLI 的維護工做。除此以外的成員分散在世界各地,都是志願者,但絕大部分人的全職工做也都是每天要和Vue 打交道的。這些成員維護着咱們 GitHub 上的倉庫以及文檔,也有人主要負責社區,好比管理論壇、聊天室、各地的線下聚會等等。要說運營策略,其實沒有什麼策略, Vue 並非一個商業項目,它如今幾乎徹底是由一個自發造成的社區在推進,這就是開源的精妙絕倫之處。瀏覽器

Vue 是在什麼時候開始以國際化社區的方式來運做的?

從始至終都是。我以爲開源不分國界,因此一切都是以儘量讓更多人蔘與到 Vue 的方式去運做的。性能優化

您認爲 Vue 從我的開發者維護的開源項目到國際化社區運做的品牌,最大的變化是什麼?有什麼經驗能夠分享嗎?

最大的變化就是我做爲項目管理者工做上的轉變吧。一開始只須要埋頭寫代碼,偶爾修幾個 bug 就好了,可是如今要作不少代碼以外的工做,好比思考項目的總體規劃,跟社區溝通開發計劃,跟團隊成員溝通項目情況,跟贊助商溝通贊助合同,飛到世界各地參加會議,協調社區裏潛在的利益衝突等等,能夠說如今更像是半個項目經理吧,這也是一個成長的過程。運營開源項目不只僅是代碼,更重要的是人。前端框架

與 Vue 國際化的團隊協同工做,面向不一樣國家的開發者,您有什麼有趣的發現或啓發嗎?

其實世界各地的 Vue開發者共同語言和相同點遠多於不一樣的地方,畢竟你們都是作同一行,用的又是同一個框架。前端工程師

Vue 是做爲 GitHub 2018前端熱門項目第一,同時也是開源中國2018年度最受歡迎開源軟件第一,展示了 Vue 在國內外的巨大影響力,將來 Vue

有怎樣的發展規劃呢?

Vue 的定位就是爲前端開發提供一個低門檻,高效率,但同時又可以伴隨用戶成長的框架。所謂的 「伴隨用戶成長」,就是當一個新手用戶入門的時候,Vue 儘量地讓這個過程簡單直接,而當以後用戶開始作更復雜的應用了,有更復雜的需求了,他會發現 Vue 依然可以提供良好的支持。這樣 Vue 能夠在新手成長到進階的開發者的一路上都提供價值。在這個大目標的前提下,Vue 會根據 web 平臺和 JavaScript 語言自己的進化不斷改進本身,確保自身能夠始終勝任這個使命。

國內的大公司也開始使用 Vue 來開發項目,如滴滴開源的基於 Vue 實現的移動端組件庫 Cube-UI,您怎麼看 Vue 在國內的發展?

Vue 在國內確實有廣大的用戶羣體,不光有各種大廠的組件庫,如今還有基於 Vue 生成各類小程序的方案,這多是中國市場比較獨特的一個需求,擁有這個能力可能對 Vue 接下來在中國的發展還挺關鍵的。

您如何看待開源項目的商業化?

這個世界不會自動給予開源項目的維護者對應的經濟回報,能得到多少回報,除了自己創造的價值,也取決於維護者選擇怎樣的變現方式。有些人可能一聽到開源和變現這兩個詞放在一塊兒就以爲不舒服了,但其實這是一個很現實的問題 。不管是做爲公司自己須要的技術順道開源也好,仍是做爲獨立項目尋求捐助也好,嚴肅的、創造真正的價值的開源必然須要有某種形式的經濟利益參與其中,纔可能保證維護者的長期穩定的投入,否則就極可能須要以犧牲維護者的 life work balance 爲代價,這種狀況我也見過不少。

在我的職業發展方面,您是更傾向於專精技術仍是轉型管理?

若是選擇權在我手裏的話固然仍是走技術路線,如今技術以外的工做都是不得不作纔去作的,有時候會以爲 「就想安安靜靜寫會兒代碼「,哈哈。至於管理,我以爲它是隨着你的項目複雜程度愈來愈高,和團隊成員愈來愈多,而伴隨產生的剛需能力吧,我也是不停的在學習和成長。

優秀的前端工程師都是藝術家,您我的從本科讀藝術史到碩士讀美術設計和技術專業的經歷,是否更好的印證了這點?

這倒未必,畢竟前端如今也是一個很大的範疇了,作架構/工具鏈和作面向用戶的組件就涉及很不同的側重點和知識領域。但總體上而言,前端由於是直接跟用戶打交道的活,因此最根本的是要有同理心,也就是可以站在用戶的角度去思考,理解用戶體驗和需求,從而找出可以達成這些體驗和需求的技術方案。學習設計可以很好地鍛鍊這種站在用戶的角度思考的能力,由於在進行藝術創做的時候是具備多維性和發散性的,這種思惟方式在我優化 Vue 的過程當中,確實是幫助了我能站在用戶的角度,更多的去理解用戶體驗。

近些年國內前端開發的需求一直在增長,從碼雲 Gitee 上的開源項目就可見一斑。雖有大量人員涌入,但優秀的前端工程師並很少,不少人也只停留在切頁面水平,對於將來的成長路線並不清楚,對此您有什麼經驗和建議分享?

如今因爲互聯網服務的爆發,對於前端的需求也大量增長,但同時也致使一些崗位的工做內容是同質化的,只要是掌握了基本技能的前端均可以作,那麼這些崗位就變成了替代性很高的勞動力。若是學前端只是單純爲了找份工做,那長期發展確定不會樂觀。想要跳出這個層面須要對這門技術自己有足夠的興趣和熱情,而後找到一個專精,好比你特別擅長性能優化,或者你寫的組件用戶體驗特別好,你切頁面可以切得 100%還原了設計師給出的設計效果,甚至更加簡潔優雅,這都是能夠的。

工做之餘是如何給本身充電的?平時都如何安排工做和生活?有什麼業餘愛好?

如今工做之餘的時間都在帶娃,哈哈!每一年還要去世界各地開會,其實由於有時差都挺累的,但可以感覺不少不一樣的國家城市也算是轉換一下節奏。偶爾有那麼一點點本身的時間,主要是看看漫畫,玩玩遊戲,是個典型的宅男。

Vue的發行版都是以動漫命名的,像是1.0的新世紀福音戰士(Evangelion)和2.0的攻殼機動隊(Ghost in the Shell),最近有看什麼新的動漫嗎?

最近由於戰鬥天使的電影很火,因此特地把原著《銃夢》和《銃夢 Last Order》從頭至尾看了一遍,真是神做!

Vue 給您帶來的最大的收穫是什麼?

自由。當你能夠作本身喜歡的工做來養活本身,同時又不受各類條條框框的約束,這種自由是無價的。能夠這麼說,我用鍵盤敲出了 Vue,而 Vue 把自由和真實的本我饋贈給了我,如今的我很清晰的明白本身在作什麼,我想要的 Vue 是什麼樣的,我能跟隨本身心裏的指引去開發出 Vue 更多的新功能,我如今根本沒法想象再回到大公司去工做的那種情境。

碼雲 Gitee 往期《封面人物》精彩推薦

  • Ruby 之父松本行弘:程序員的樂趣、存在感與平衡
  • 從退學到創業,90 後程序員爲啥這麼愛折騰?
  • 何不作一個既專業又瀟灑的程序員?
相關文章
相關標籤/搜索