作者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/cn.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