论坛首页 AJAX版 JavaScript

莫要对一个框架轻下结论

浏览 2491 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-07-16 关键字: YUI
今天看到一篇洋人的博客: A few days with YUI

文中抱怨了一番在最近项目中使用YUI后的失望情绪。并举了一个例子:

MooTools

$('star-activator').onclick = function(){
        $$('.star-rating').each(function(el){
            $(el).addClass('active');
        });
    }

YUI

var activator = YAHOO.util.Dom.get('star-activator').onclick = function(){
  var raters = YAHOO.util.Dom.getElementsByClassName('star-rating');
  for (var i=0; i<raters.length; i++){
    YAHOO.util.Dom.addClass(raters[i], 'active');
    }
}


没错,这么比起来,YUI确实冗余许多,但我想其实作者并没有深入去了解YUI。我们其实可以这么做:

var $D = YAHOO.util.Dom;
$D.get('star-activator').onclick = function(){
    var raters = $D.getElementsByClassName('star-rating');
    $D.addClass(raters, 'active');
};


这再看起来,我觉得YUI的代码可读性并不比 prototype或者MooTools 差。YAHOO.util.Dom工具包中方法是直接可以设置数组参数的。这得益于其内部实现的batch方法。我们还可以通过batch方法实现很多自己的扩展。

我一直认为各种框架都各有所长,在深入了解它们之前,不能先入为主的否定其他的框架。

YUI的风格和其他框架是有区别的,特别适合于从传统面向对象开发语言过渡到前端的开发者使用。因为语法与调用形式甚至文档都与Java很接近。

YUI也许看上去没有prototype/jQuery 这些框架那样灵活。但感觉更为严谨。相比prototype, 其发展到现在,我几乎已经无法感觉自己在编写javascript了,我想这也有些过了。
   
时间:2007-07-16
怎样才是感觉自己在写Javascript呢?
类似Jquery那样灵活的写活,一定程度上模仿Ruby之类的动态语言。Javascript语言本身就非常灵活,以致你可以实现用很多种风格来书写代码。
我倒觉得像:
$("div").each(function(){
alert(this.id);
});
这样的写法是相当淋漓尽致D。并没啥过不过的概念吧。
一已之见。。 :)
   
0 请登录后投票
时间:2007-07-18
addClass可以接受数组是蛮奇怪的,开发者通常想不到。
   
0 请登录后投票
时间:2007-07-18
我觉得yui用起来工具类太多,类似于java中的静态方法太多,那跟写过程式程序有什么区别?还有prototype这个框架,本人觉得病没有对javascript本身做太多的侵入,写起来完全可以按照javascript本身的语意写。这点跟yui很像呀(要说好的话,没有yui那么多的工具方法)。反而那些jQuery和mootools貌似侵入太大了,写起来不像写javascript了。
   
0 请登录后投票
时间:2007-07-19
使用好Prototype,确实需要学习一些Ruby的知识。JavaScript和Ruby很相似,Rails开发者希望通过代码自动生成的办法来避免他们必须学习两套语言语法的成本。Prototype当然可以单独使用,不过主要还是为Rails开发者服务的。
   
0 请登录后投票
时间:2007-07-19
prototype需要什么ruby知识?我觉得是ruby和javascript很象,而不是反过来。javascript掌握了,prototype库用起来很方便呀。我觉得无外乎是对buildin 对象做了一下扩展,让人方便使用。写代码比直接用javascript的对象机制写没有多少区别。
   
0 请登录后投票
时间:2007-07-20
要是懂ruby的语法,学习Prototype倒是比较轻松,不过我之前也不懂ruby,通过文档也能熟悉的,倒是rails集成了Prototype,非常方便。
   
0 请登录后投票
时间:2007-07-21
无所谓谁像谁吧,同属于动态语言,可能某些语法糖衣多一下,某些少一些。

关键我觉得还是动态语言的给我们带来的新思想吧。

其实我觉得不能简单的说是新思想,感觉这种思想其实已经存在的好多年了,只是一直被我们(如果你没有忽视过,那这个我们就不包括你)忽视了而已。

这个可能和大多数人用的是Windows,学的是C,C++,Java有关系吧。他们其实在某种程度上限制了我们的大脑。

动态语言的普及,给我补了不少课。
   
0 请登录后投票
时间:2007-07-21
一般来说开发常用的语言逻辑也没几种,还是喜欢简单的,大不了记下来,用熟了也就不费事了。
你用100种方式来做一件事也得我有这个精力去看你这100种方法啊。
   
0 请登录后投票
时间:2008-05-10
YUI感觉是力求将完整的OO概念带到客户端,以实现面向对象的客户端编程,出现了“类”这么的一个概念,而不是基于对象的这么一种传统方式。
个人感觉YUI OO已经比较成熟了 甚至重载的都可以较方便地实现了
   
0 请登录后投票
论坛首页 AJAX版 JavaScript

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)