[討論] angular的缺點

看板Ajax作者 (大嘴先生)時間9年前 (2014/11/13 16:52), 9年前編輯推噓2(2019)
留言21則, 4人參與, 最新討論串1/2 (看更多)
→ carylorrk: 讓我想到前陣子有個蠻反對 angular 的,其實也是差不多 11/13 15:24 → carylorrk: 理由。不過我認為 angular 在設計上比 PHP 一開始嚴謹 11/13 15:24 → carylorrk: 就是了XD 尤其是看過約翰爸爸的 coding style 覺得寫起 11/13 15:26 → carylorrk: 蠻舒服的(? 11/13 15:26 不知道是不是說我 不過我記得前幾天我是有躲在推文裡說過一些話 那時說不太清楚 趁現在有空說清楚一點 我反對angular的地方只有他的template engine 我認為angular的directive為了與原有html標準整合犧牲了太多東西 整體尤其是邏輯與流程控制的部份脫離了"language"的範圍 但html是一個很好的"資料表達"語言,而不是一個好的"程式"語言 看看下面幾個例子就很清楚了 angular的directive: <header ng-repeat-start="item in items"> Header {{ item }} </header> <div class="body"> Body {{ item }} </div> <footer ng-repeat-end> Footer {{ item }} </footer> 一般template engine的語法: <% for (item in items) { %> <header> Header <%- item %> </header> <div class="body"> Body <%- item %> </div> <footer> Footer <%- item %> </footer> <% } %> angular的directive: <div ng-show="someBooleanVariable"></div> 一般template engine的語法: <% if (someBooleanVariable) { %> <div></div> <% } %> 乍看下angular比較省事 但當你把一堆重要的邏輯判斷甚至是事件藏進一堆順序不重要也不夠明顯的attr裡時 至少對我而言,日後維護起來是非常辛苦的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.198.241 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1415868773.A.1E4.html ※ 編輯: mrbigmouth (59.115.198.241), 11/13/2014 16:53:16

11/13 17:46, , 1F
這的確是 DOM-based 的原罪,畢竟整套 Compiler 和核心
11/13 17:46, 1F

11/13 17:46, , 2F
概念就是以 DOM 為中心來思考的。
11/13 17:46, 2F

11/13 17:53, , 3F
不若 underscore 或 handlebar 這類更單純的 template
11/13 17:53, 3F

11/13 17:54, , 4F
engine... 太多 magic 的東西包含在裡面了。
11/13 17:54, 4F

11/15 09:46, , 5F
你應該用真實支援data binding的template語法來比
11/15 09:46, 5F

11/15 09:46, , 6F
才公平
11/15 09:46, 6F

11/15 09:46, , 7F
不然我也可以拿純html比php然後說php真是不清晰
11/15 09:46, 7F

11/15 10:57, , 8F
之前的推文討論中我也說過了 我反對一切在html上動手
11/15 10:57, 8F

11/15 10:57, , 9F
腳做data binding的framework
11/15 10:57, 9F

11/15 10:58, , 10F
不過其他語言比angular.js好一點的地方在於你有機會不
11/15 10:58, 10F

11/15 10:59, , 11F
用在html上動手腳而用程式的方式去做 angular則是完
11/15 10:59, 11F

11/15 10:59, , 12F
全建立在directive的體制上
11/15 10:59, 12F

11/15 10:59, , 13F
*其他framework 不是其他語言 XD
11/15 10:59, 13F

11/15 15:17, , 14F
two-way data binding/MVVM 太方便了,離不開啊~(扭
11/15 15:17, 14F

11/15 17:24, , 15F
要兼顧方便性跟可維護性的話 我滿看好meteor的
11/15 17:24, 15F

11/15 17:24, , 16F
reactive機制 基本上可以從它的framework上剝離出來
11/15 17:24, 16F

11/15 17:24, , 17F
獨立使用 有興趣的人可以去看看
11/15 17:24, 17F

11/15 17:25, , 18F
只是我猜效能上會比two-way data binding可慢(沒測)
11/15 17:25, 18F

11/15 17:26, , 19F
它內部的track方式可以說是只有javascript這種single
11/15 17:26, 19F

11/15 17:26, , 20F
thead的語言才弄得出來的東西
11/15 17:26, 20F

11/23 06:05, , 21F
維護性是什麼意思?寫end-to-end test不夠嗎?
11/23 06:05, 21F
文章代碼(AID): #1KP75b7a (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1KP75b7a (Ajax)