幾週之前我和一位面試者暢談了關於我們應該如何選擇js框架。他指出當大廠開始公開它們的獨家秘方,是多麼令人興奮。開發者內心獨白:「這些大廠寫的js與我的不同,他們卓越且成功。他們組織js的方式比我好?我要接受它?」
他們的秘密武器應該是優秀的,但不要因為其他人的熱情而去假設它的優異性。在你不理解之前,你不會從StackOverflow 複製貼上答案,所以為何你要複製貼上一個框架?
這讓我想到了當初我們決定在GitLab上使用vue
更簡單更易用
讓我們投向Vue.js的主要原因在於:它能讓團隊書寫用js變得更容易且簡化了js。上手Vue.js是相當容易的。它的原始碼有著很高的可讀性,如果你需要只用他的文件便可入門。你不必使用任何額外的函式庫。如果需要可以和jQuery協同工作。他有許多的插件,但並非必須。我個人很喜歡優雅的Vue.js。用Vue.js配合已存在程式碼是十分簡單的。 Vue.js並不神秘,他的底層只是一個物件。
我與許多js開發者討論過後發現一個有趣的現象:那些花費主要時間在Angular上的開發者對js的理解並沒有多深。我並不想這樣的情形出現在我和我的夥伴身上。為何我們要書寫「非js」?
這讓我想到了當初使用Backbone的情形,我需要盡可能保持DRY(don`t repeat yourself),因為這玩意就是張白紙隨你書寫。 Vue.js並未對其他東西做太多工作,它只關注數據。
但Vue.js在你要做的與他能做的之間達到了完美的平衡。如果Backbone 是無政府狀態(無人負責)那麼Angular就是獨裁者(Angular團隊負責所有)。我覺得Vue.js像是共產主義:專案由你負責,但Vue.js為你鋪設了一張可延展,健壯並且有彈性的安全網來幫助你更加有效地編程,並且規避dom帶來的影響。
為了讓你理解我的想法,請看程式碼點擊預覽
<div id="journal"> <input type="text" v-model="message"> <div>{{message}}</div> </div>
var journal = new Vue({ el: '#journal', data: { message: 'Your first entry' } });
如果你曾看過一些js庫,那麼在不依賴文件的情況下,看懂上述例子中的程式碼並不困難。通常在其他框架中,此處需要簡單暫停一下。當你執行「入門」等級的例子時,你感到滿意。但當你想要在框架上獲得花費成本的價值時,事情變的變得複雜。這並不會發生在Vue.js上,實際應用就跟文件範例一樣簡單。
Vue.js + GitLab意味著更少的程式碼
那麼這為GitLab解決了哪些問題?我加入之時,所有的程式碼使用JQuery書寫,這並非有什麼錯誤,不過這花費了更多的程式碼來解決每個問題。我們知道自己可以做的更好。一旦我們開始使用Vue.js,我們使用更少的程式碼便能夠迅速且連續地解決複雜的問題。
舉一個我們專案使用過程中簡單且實際的例子:在GitLab Issue中,issue的狀態是在closed 與open 間切換的。這個值經常需要變化,並且應用在許多的個view中。使用JQuery你需要30行左右的程式碼來實現該功能。
在Vue.js中,我們只需要一行的js程式碼。其他程式碼我們加在HTML 中加入一些額外的屬性。
尤雨溪甚至做一個碉堡的框架並不僅僅是書寫優秀的程式碼。你需要一個優異的文檔,一個幫組每一個人學習的強大社區,一個配套庫的支持,大量插件幫組用戶解決困難,一個基於用戶用戶反饋並保證框架關聯性的反饋循環。 Vue.js是所有這些的集合體,並非隻隻有優秀的程式碼。這就是我使用它的原因,那麼你呢?