EmberJS 為什么我偏愛 Ember.js 勝過 Angular 和 React.js


 

文章寫的很老到,非常值得一看!評論也很精彩,值得一看

為什么我偏愛 Ember.js 勝過 Angular 和 React.js

前幾天看到了這篇文章:Why I prefer Ember.js over Angular & React.js,覺得對於國內期望了解 Ember.js 的開發者來說是一個不錯的介紹。於是和該文的作者 Paul Shan 聯系取得翻譯的授權,翻譯了過來。譯文如下:

從我開始寫 JavaScript 已經有5年了。無論是開發項目,指導別人,還是發布文章,JavaScript 都給了我極大的滿足感。感謝 JavaScript!

在過去5年里我使用過很多 JavaScript 框架,不管做后端還是前端。但 Ember 從2015年中期就從我的開發世界中消失了。幸運的是1個月前機緣湊巧我又參加了一個用 Ember 做的前端項目。起初我並不太在意這點,只把它當作不過又一個日常開發而已。但隨着項目的深入我開始思考自己關於這三個前端框架的體驗,並在今天把它記錄下來。

聲明

  • 該文並非是要抨擊 Angular 或 React。
  • 該文並非要很深入探討技術層面的部分,而是作為一個開發人員對其真實使用體驗的吐露。
  • 標題中我使用了“偏愛”而非“推薦”的字眼,因為“推薦”往往要和具體項目具體場景相關,而“偏愛”則是一種更普適性的描述。

Ember 令人滿意之所在

原生感受

說實話,最近幾年來我對 JavaScript 越來越不滿。我不喜歡有人試圖用工程的模式來對待 JavaScript。我喜愛 JavaScript 就僅僅是 JavaScript 而已。這也是我為什么不喜歡 TypeScript,以及 Angular 2。我看不到任何用處來多學習另一門語言,只為了試圖引入一些丑陋的類(我知道是可選的)和語法。React 至少在這一點上做的比 Angular 2 好一些,但你依舊要面對 jsx 的問題。

相反,Ember 使用了純 JavaScript。你只用寫 JavaScript。Ember 提供了很多 api,卻沒有額外的語法。這讓我作為 JavaScript 開發者而言感覺很棒。

約定大於配置

相信我,盡可能地減少配置相關代碼對你的項目將有巨大的好處。首先,代碼會變得少而清爽。其次,約定將是通用的,任何新加入的開發者都能了解發生了什么。對於那些之前從沒有使用過 Ember 的人來說,只要你遵循了約定來命名文件和變量,Ember 就能自己處理好剩下的事情。

所見過的最好文檔

Ember guides 和 Ember API 的文檔可能是我開發生涯中見過的最好技術文檔。即使是一個初學者都能很容易理解並上手。Ember 的官方論壇對於解決疑問也很有幫助。

最好的構建體驗

Ember-CLI 是 Ember 的一大殺器。即使 Angular 都試圖借鑒 Ember 的這一工具來開發自己的 CLI。使用 ember-cli 你可以快速構建一個預定義好目錄文件架構的項目,而這樣的架構是經過社區的討論和實踐所驗證過的。當項目開始構建時,無論團隊是否對此有經驗,都完全不用擔心有沒有遵循最佳實踐的問題。對於 React 而言這里就可能存在風險,因為它只是一個庫並非是一個框架

強制性的最佳實踐

即使你的團隊中有很棒的開發者,有時候迫於上線的壓力他們也會寫出壞的代碼。而 Ember 會至少在某些層面上強制性地讓你采取最佳實踐的方式。舉個例子,你不應該把業務邏輯寫到模版中。Ember 的模版里只可以使用迭代 iteration 和帶布爾參數的 helper 幫助方法,這樣你就根本別考慮在模版里寫業務邏輯的事兒了。

開發效率的提升

我知道,在三個框架里 Ember 可能是學習曲線最陡也最難學的那一個。但是一旦你掌握了它,你就能開發一個項目超快,遠勝過 Angular 或 React。“約定大於配置”和 ember-cli 就是最主要的兩個原因。

團隊工作

如果你公司的所有團隊(甚至即使有人不在公司辦公)是在開發多個 Ember 項目,使用 ember-cli 構建工具,那么他們每個人的項目目錄文件架構會非常相似,而且可以幾乎不花費什么時間成本就進行項目的切換,並立刻投入開發和提交代碼。這實際變相提高了公司實際上的開發效率。

不屬於公司只屬於社區

Angular 屬於 Google,React 屬於 Facebook。而 Ember 來自於社區,也只為了社區。Ember 核心開發團隊的開發者們都來自於各自公司實際 Ember 項目的成員,這恰好是 Ember 的最大不同之處:他們不僅是框架的開發者,更是框架的使用者。這讓他們能始終貼近現實,緊接地氣。

友好的版本發布

我幸運地在 Angular 2 發布時已經離開了之前的 Angular 項目,但我的朋友要為項目升級到 Angular 2 頭疼和抓狂了。與此相反,Ember 2 發布時沒有任何變化。是的,你沒聽錯。它沒有任何變化。Ember 1.13.0 和 2.0 在使用上完全相同,因為 Ember 是采取漸進式的策略來對 1.x 開放新功能,以便讓使用 Ember 的實際項目能進行完全無痛地升級。這正是 Ember 核心團隊成員“不僅是框架的開發者,更是框架的使用者”的最好體現。

Ember 沒有缺點了嗎?

任何事物都有兩面性,Ember 也不例外。Ember 也有自己的缺點,諸如陡峭的學習曲線,稍慢的頁面渲染,框架體積較大等。已經有很多的技術文章對這些框架進行過比較了。但本文更多的是在開發實踐體驗上我個人的一些感受。我相信這些框架中不管選用哪一個,就技術而言都能幫你完成項目。但還有一些除此之外的因素影響到你項目的實施和進展。在考慮了各種實際情況、業務、場景之后,你就可以做出最佳的決策來啟動項目了。

相關文章

  1. Is React.js tougher and confusing than Ember or Angular?
  2. A complete guide to Ember – Ember.js Tutorial
  3. What’s new in Angular 2.0? Why it’s rewritten – addressing few confusions
  4. Plus minus kind of calculation and comparison in Ember.js template, handlebars?
  5. MVC vs Flux – which one is better?
  6. Scaffolding and understanding an ember application – Ember.js Tutorial part 2

 

 

評論:

 

 

 

原文:https://ruby-china.org/topics/32634

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM