作者mrbigmouth (大嘴先生)
看板Ajax
標題Re: [問題] function接收變數
時間Thu Nov 13 16:52:50 2014
→ 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://webptt.com/m.aspx?n=bbs/Ajax/M.1415868773.A.1E4.html
※ 編輯: mrbigmouth (59.115.198.241), 11/13/2014 16:53:16
1F:→ carylorrk: 這的確是 DOM-based 的原罪,畢竟整套 Compiler 和核心 11/13 17:46
2F:→ carylorrk: 概念就是以 DOM 為中心來思考的。 11/13 17:46
3F:→ carylorrk: 不若 underscore 或 handlebar 這類更單純的 template 11/13 17:53
4F:→ carylorrk: engine... 太多 magic 的東西包含在裡面了。 11/13 17:54
5F:→ superpai: 你應該用真實支援data binding的template語法來比 11/15 09:46
6F:→ superpai: 才公平 11/15 09:46
7F:→ superpai: 不然我也可以拿純html比php然後說php真是不清晰 11/15 09:46
8F:→ mrbigmouth: 之前的推文討論中我也說過了 我反對一切在html上動手 11/15 10:57
9F:→ mrbigmouth: 腳做data binding的framework 11/15 10:57
10F:→ mrbigmouth: 不過其他語言比angular.js好一點的地方在於你有機會不 11/15 10:58
11F:→ mrbigmouth: 用在html上動手腳而用程式的方式去做 angular則是完 11/15 10:59
12F:→ mrbigmouth: 全建立在directive的體制上 11/15 10:59
13F:→ mrbigmouth: *其他framework 不是其他語言 XD 11/15 10:59
14F:推 carylorrk: two-way data binding/MVVM 太方便了,離不開啊~(扭 11/15 15:17
15F:→ mrbigmouth: 要兼顧方便性跟可維護性的話 我滿看好meteor的 11/15 17:24
16F:→ mrbigmouth: reactive機制 基本上可以從它的framework上剝離出來 11/15 17:24
17F:→ mrbigmouth: 獨立使用 有興趣的人可以去看看 11/15 17:24
18F:→ mrbigmouth: 只是我猜效能上會比two-way data binding可慢(沒測) 11/15 17:25
19F:→ mrbigmouth: 它內部的track方式可以說是只有javascript這種single 11/15 17:26
20F:→ mrbigmouth: thead的語言才弄得出來的東西 11/15 17:26
21F:推 turtleknight: 維護性是什麼意思?寫end-to-end test不夠嗎? 11/23 06:05