為什麼 JavaScript 世界裡有這麼多 libraries 可以用, 我偏偏只挑 Angular 來開課?
Ming> 我曾經幾乎可以天天找到新的 Javascript libraries 來試用, 看起來都很厲害, 像 backbone.js, Ember.js, knockout.js, ginger.js (我的 javascript project 還沒開案) 但最後我選擇了 AngularJS 來搭配其他 libraries 使用.
我用中文也提供使用 AngularJS 的十大理由, 如下
1. AngularJS 使用的人很多, 可以說是目前最夯的 web front-end library. 就是因為多人用, 容易找人幫忙, 容易用 google 到答案, 容易有相關工具與模組可以用, 例如 angular-bootstrap, angular-ui
2. AngularJS 看似 學習曲線陡峭如同單攻奇萊主峰 (註一). 但其實搞懂了, 它比別套 Javascript library 更容易"使用", 撰寫及維護你的應用軟體. 比如它的 directives 就是一個超好用的東西.
3. AngularJS modules 使其擴充性強且非常模組化, 你除了可以使用內建的功能外, 大部分開發者其實一下就會跳去用 angular-bootstarp, 也就是利用 directives 的方法使用 Twitter 發明的 bootstrap, 很容易上手喔.
4. Angular 101 有提到, AngularJS 提供你 MVVM 的程式設計架構, 它讓你可以將程式分成MVC 元件來撰寫, 提高你程式以後的在使用 (re-usable) 率. 而且它的 MVC 寫非常直覺, 不會像其他語言寫的很牽強.
5. AngularJS VM (ViewModel) 或說它的 template (樣版) 用 HTML 無需學其它語言, 尤其是 HTML-5 也是未來的趨勢. 也很容易在 playgrounds 測試.
6. AngularJS 的 M (Model) 資料格式使用標準的 JavaScript 資料, 只要後端資料來源是 JSON 格式, 就很容易用 Angular 前端 V (Visual) 畫出來. 可以參考 angular-grid 輕易地用表格 (table) 方式顯示 JSON 或 array (陣列) 的資料.
7. 再次強調 directives , AngularJS 利用 directives 將功能非常容易的鑲入 HTML, 你可以用 AngularJS 客製化你自己或使用別人的 HTML 元素 (element), 也就是自創 HTML 的 tag.
它連 <a/> 這個最常用的 HTML 元素也被它客製化掉了. 除了使用 Angular 內建的所有 directives, 還有開源 (open-source) 可分享使用的 directives, 你的程式幾乎已經寫完一半了.
8. Angular 101 提到的 data-binding 讓你的 MVC 元件, 更好寫. 以前我們要自己寫 AJAX (哪才叫做”學習曲線陡峭.“, 後來 jQuery $.ajax 讓你覺得好日子更美好一些, Angular 幾乎讓你無法感覺它的存在.
9. 寫程式的人除了 MVC 以外, 另一個一定要知道的東西就是 DI (dependency injection). AngularJS 不止提供 DI 程式模式, 整個系統也多處使用到 DI, 例如模組 (module) 裡的 run 和 config, controllers 裡的 $scope 和 $route. 以後 DI 會有專題文章討論. 讓大家更了解 DI 的好處.
10. 測試: 寫程式不能不先考慮它有沒有一個好的測試模式, AngularJS 因為善用 DI 模式, 所以很容易撰寫 Unit Test (單元測試), 例如測試程式可以用 mock (假的) HTTP 用 DI 抽換真正的 HTTP 位置來提供測試結果. 當然這也會有專題報導.
希望在開始學 Angular 之前, 你能對它好處, 通盤了解.
註一. http://blog.darkthread.net/post-2014-06-07-go-to-angularjs.aspx
參考資料:
1. http://www.sitepoint.com/10-reasons-use-angularjs/ (為什麼你要選用 Angular 的10大理由) 英文
請問一下,在AngularJS中,$scope就代表Model嗎?
回覆刪除