摘要:在,我們剛剛使用發布了我們的客戶端的新版本。得到了最多的提及,排在第二位。根據,這個許可證旨在保護他們免受專利巨魔的侵害。正在獲得更多開發者的支持,我們在開發過程中看到了這一點,讓我們更加相信,我們的選擇是對的。
在Rever(www.reverscore.com),我們剛剛使用Vue.js發布了我們的Web客戶端的新版本。經過641次提交和16周的緊張開發,我們非常自豪之前做出的決定。
8個月前,我們的前端在使用Angular 2.確切地說,它使用的是Angular 2 beta 9.這是一個由外包公司編寫的產品,我們從很多層面上都沒有完全滿意,從UX / UI到架構,在某種程度上,與Angular 2本身有很大的關系。
在之前,我承認Angular 2 beta 9是與Angular 2.0不同的產品,但這正是其中一個問題。從beta9到2.0.0,有8個beta版本,8個RC和2.0.0版本,總共有17個版本需要升級。我們確實嘗試從beta 9升級到2.0.0但是太多的api更改了使升級變得非常困難。此外,大約在同一時間我們質疑Angular 2作為我們選擇的框架,Angular團隊決定開始研究Angular 4.雖然他們承諾版本改變不會太大,這意味著當我們完成升級到Angular時2.0.0我們需要另一次升級。多么浪費時間和僅有的資源。
我們不喜歡的主要原因是不喜歡Angular 2是Typescript開發的。我知道Angular 2可以和Javascript一起使用但是同樣,使用Typescript的決定已經被內部使用了,根據我的理解,使用純Javascript和Angular 2并不是你應該使用Angular 2的理想方式。無論如何,擺脫Typescript意味著完全重寫項目。
我沒有覺得Typescript增加了實質性的價值,更糟糕的是,我們注意到我們的編碼速度降低了。使用Typescript在Javascript上很容易做的事情就像定義一個簡單的對象一樣在Typescript上更復雜。我強烈建議您在開始使用Typescript之前閱讀以下文章。這對每個人來說都不一定是正確的解決方案。
我還記得使用Angular 1是多么容易,它有自己的不足,但與其他框架相比,Angular 2在途中失去了某些東西。關于Angular 2的結論很簡單,Angular 1和2的唯一共同點是名稱,它們是完全不同的框架。
因此,考慮到我們在未經測試的系統上有17個版本進行升級,來自業務的很多壓力來編寫新功能,大量錯誤和編寫得不好的代碼,原始開發人員不再在團隊中,只有一個開發人員(我)當時有許多其他職責,自從我使用測試版以來找到正確文檔的問題,以及Angular 2轉移到版本4.他的負面消息開始迅速地積累。
我們做了一個決議,如果我們要花費那么多時間升級,那還不如看看別的框架。
應對
第一個顯而易見的選擇是React,因為大部分公司都在使用它,而那些沒用的人正在談論它。所以這是一個選擇,當然知道Facebook支持它是很有幫助。但是,React本身不是一個簡簡單單框架,你需要添加額外的組件才能讓它綻放光芒。
Vue.js
Vue.js是一個新玩家,我以前從未聽說過它,雖然他們剛剛發布版本2時我們開始考慮不同的框架。起初它引起了我們的注意,但是還是有一定風險的。
決策過程
我們首先開始定義我們的決策點。我們知道框架需要具備以下條件:
它應該是穩定的
由強大的社區或一些大玩家支持
StackOverflow上有很好的文檔或很多問題被解決了
簡單易學
與Bootstrap集成
小巧
理想情況下,它允許我們重用代碼
應該增加編碼速度
基于組件
我們列出所有需求點以后,我不得不開始動手了,所以我給了React和Vue.js幾天,分別審查了Google無法回答的每個決策點。由于我對它們中的任何一個都一無所知,所以在兩天結束時,我會重新評估我在多大程度上重寫了我們要遷移的實際項目的某些部分。
我選擇重寫的部分是:
一些基本的API調用
兩個不同頁面的兩個布局
用戶相關內容的兼容性
登錄表單和一些內容表單
一個bootstrap模式
我對Vue.js的實力感到驚訝,在幾天之內我實際上有了一個概念證明,以展示給團隊的其他成員和我的CTO。我對Vue.js的基本概念有了很好的理解,定義了一個良好的,可擴展的架構,但最重要的是我非常喜歡用它編寫代碼的經驗,我覺得比React上手更快一些。
React比我想象的要難得多,在Redux和MobX之間進行選擇比有一個與Vue.js和Vuex這樣的框架完全集成的選項更有問題。這很簡單,因為當沒有框架經驗時,它會讓你更自信,而不是一個框架有一個正式的庫來做某事。順便說一句,我覺得Vuex的適用性比Redux更容易,但可能這只是個人的一種感知,就像所有的學習曲線一樣。
JSX也是一個問題,因為我們無法重用HTML代碼,而Vue.js確實允許我們在某種程度上這樣做。Vue文件實際上非常適合使用,因為我不喜歡內聯模板。React將JSX / HTML與JS代碼混合在一起,我只是不喜歡,因為我堅信分離關注點,看起來很丑。
編碼速度
編碼速度是Vue.js擅長的領域,不需要學習JSX是一個巨大的幫助。當另一位開發人員加入該項目并在大約1小時的培訓課程后的幾個小時之后就開始項目開發。
這對我們來說非常重要,您可以通過打開vue文件立即看到它。它包含一個帶有HTML和標簽的模板部分,看起來類似于Angular 1,所以如果你做了一些Angular 1,它將非常熟悉。一個vue文件也有一個樣式和純javascript部分,你實際上使用javascript,你只需要學習一些關于Vue.js的東西來完全理解它們。理解Vue.js屬性(如方法,計算,屬性,數據和創建)將使您了解開始編碼所需的大約90%,非常簡單。
文檔
為了獲得適當的速度,我們需要良好的文檔和Vue.js文檔是一流的。指南,示例,問題和API都記錄得非常好,涵蓋了我們在開發過程中發現的所有疑問。我們害怕找到我們會遇到的許多問題的中文文檔,但事實并非如此,一切都以英文提供。
問答
經過一個多星期的考慮后,Vue.js表現非常好,但令我驚訝的是,周圍的問題都迎刃而解,因為之前沒有人使用過Vue.js,我得到的唯一評論是“ 看起來很酷,但我還沒有”用它“。React得到了最多的提及,Angular 2排在第二位。
我開始尋找具有Vue.js經驗的本地人才,我確實找到了一些非常好的人,所以我開始認為我并不孤單,我的社交技術圈可能太小而且我不應該對事實上,我不認識任何人與Vue.js合作進行制作。
移動端
在我們考慮Vue.js vs React的時候,我們也在考慮重寫我們的移動應用程序,React Native看起來是一個非常好的選擇。這對React來說是一個很大的優勢,因為Vue.js沒有任何類似于React Native試圖做的長遠穩定的開發,所以在網絡和應用程序客戶端之間重用代碼的可能性是一個巨大的優勢,但我決定我不會考慮。畢竟,根據我的經驗,使用Node.js,我在瀏覽器和服務器之間重用了非常少量的代碼。
許可
在我寫這篇文章時,有很多討論,因為Facebook將React許可證更改為BSD +專利。根據Facebook,這個許可證旨在保護他們免受專利巨魔的侵害。這在我們的決策過程中并不是最原始的,但我很高興我們沒有采用React的方式,因為任何與許可相關的噪音都不是你想聽的噪音。
最終,Facebook落后于React可能會成為項目的責任而不是實力,這就是為什么擁有獨立基金會或組織負責成功的開源軟件項目通常會更好。Facebook應該做正確的事情,以IBM為例,當IBM收購Strongloop時,他們將Express.js捐贈給Node.js這樣一個重要軟件所屬的基金會。社區的壓力和IBM的意愿確保了軟件的連續性。Twitter是另一個很好的例子,他們在非常寬松的MIT許可下發布了Bootstrap,沒有人在談論Bootstrap的License問題。
最后的話
在我做出決定之前研究的許多網頁中,有一個圖表引起了我的注意,開發人員對Sacha Greif @sachagreif每年進行的Javascript調查狀態的滿意度。我承認,正如作者所做的那樣,這不是科學調查,但確實提供了大量信息,后來當我們有更清晰的圖片時,我們的決策點證實了這一點,特別是關于Vue.js,因為我們對它一無所知我們研究的開始。您可以通過以下鏈接閱讀Javascript狀態。
總體而言,Vue.js是我們評估的贏家,它在Stack Overflow上有很多問題,最簡單的三個選項的官方文檔,最小的代碼庫,與Bootstrap很好地集成,并且學習它是有強大的項目支持的Laravel和像阿里巴巴這樣的大公司是一個很大的優勢。沒有像React這樣大的社區并不是影響我去用它的一個真正的因素,因為它本身足夠大。
選擇Vue.js是正確的選擇,我花了一段時間來說服我的首席技術官,我非常感激他總是問正確和棘手的問題并100%肯定我的所做出的決定。如果我弄錯了,我會后悔的。
最后整個決策過程真的很有幫助,但是我能夠快速學習的事實產生了巨大的變化,如果你喜歡就稱之為直覺,但是學習一些東西真的快的時候讓我對更復雜的問題有了很大的信心。我知道在實際開發過程中我會面對。
我不是說React是一個糟糕的選擇,我對社區如此之大感到驚訝,并且有充分的理由,雖然jQuery也有很多人使用,并沒有使它成為我們想要的項目的良好框架/庫去做。
Vue.js正在獲得更多開發者的支持,我們在開發過程中看到了這一點,讓我們更加相信,我們的選擇是對的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/52616.html
摘要:在,我們剛剛使用發布了我們的客戶端的新版本。得到了最多的提及,排在第二位。根據,這個許可證旨在保護他們免受專利巨魔的侵害。正在獲得更多開發者的支持,我們在開發過程中看到了這一點,讓我們更加相信,我們的選擇是對的。 showImg(https://segmentfault.com/img/bVbdxdq?w=1960&h=960);在Rever(www.reverscore.com),我...
摘要:工程實踐立足實踐,提示實際水平內聯函數與性能很多關于性能優化的文章都會談及內聯函數,其也是常見的被詬病為拖慢性能表現的元兇之一不過本文卻是打破砂鍋問到底,論證了內聯函數并不一定就會拖慢性能,過度的性能優化反而會有損于應用性能。 showImg(https://segmentfault.com/img/remote/1460000011481413?w=1240&h=825); 前端每周...
摘要:它們是高度重視且廣泛使用的框架,用于界面設計。應用程序開發引起了全球開發人員的極大關注,以構建令人驚嘆的應用程序。但是,具有適應性強的體系結構,使其成為廣泛使用的框架之一,具有最新的庫和包。專業和出色的社區支持,以解決任何問題。 JavaScript是世界上最流行的語言之一,React和Vue是JS最流行的兩個框架。但哪一款最適合你? JavaScript越來越受歡迎,許多科技巨頭正在...
摘要:它們是高度重視且廣泛使用的框架,用于界面設計。應用程序開發引起了全球開發人員的極大關注,以構建令人驚嘆的應用程序。但是,具有適應性強的體系結構,使其成為廣泛使用的框架之一,具有最新的庫和包。專業和出色的社區支持,以解決任何問題。 JavaScript是世界上最流行的語言之一,React和Vue是JS最流行的兩個框架。但哪一款最適合你? JavaScript越來越受歡迎,許多科技巨頭正在...
閱讀 3199·2021-11-10 11:36
閱讀 3145·2021-11-02 14:39
閱讀 1726·2021-09-26 10:11
閱讀 4929·2021-09-22 15:57
閱讀 1685·2021-09-09 11:36
閱讀 2053·2019-08-30 12:56
閱讀 3487·2019-08-30 11:17
閱讀 1702·2019-08-29 17:17