论坛首页 Web前端技术论坛

YUI的一些不足

浏览 5756 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-05  
称赞别人总是一件容易的事情,但是如果去批评别人,就要拿出十足的勇气和底气了,因为至今都没有把YUI的所有源代码都看一遍,所以不敢说那些是YUI的缺点,只能说是不足吧。通常别人在指正别人时,都会先夸奖别人一番,就是那些所谓的溢美之词,YUI的优点很多,是个很优秀的AJAX框架,在这里我就不客套了,直入主题。

第一,命名规则不统一。这一点主要体现在一些Widget的Configuration Attribute和一些CSS样式名上。举一个简单的例子,在YAHOO.widget.Panel的配置属性中,close表示一个Panel是否可以被关闭,是否可以有关闭按钮,draggable代表这个Panel是否能被拖动,同样是Boolean的属性值,但是一个用了动词一个用了形容词,我不知道老外是否也把close和draggable的词性看的一致,反正在我看来,觉得不是很好。还有就是有些属性值使用了“骆驼”的命名方式,即非第一个单词的首字母大写,如Panel中的dragOnly属性,但是另一些属性却没有,如fixtoviewport、fixedcenter。CSS样式中也存在着同样的问题,你可以看到yui-panel和yuimenu这两种不同的命名方式。
带来的危害:程序员总是希望有着统一的命名方式,不想在记住属性名称记住相应的命名规则。

第二,继承体系不唯一。这一点主要体现在所有的Widget没有实现单根继承上。像TabView和TreeView就没有一个共同的祖先,TabView继承YAHOO.util.Element,而TreeView没有父类,只是用一些像EventProvider来丰富了自己。而Container中的一些组件又继承自YAHOO.widget.Overlay。这其中的混乱还体现在一些类只是用另一些类来“丰富”自己,通过YAHOO.lang.augment方法,而一些类却是继承了别的类,通过YAHOO.lang.extend方法。
带来的危害:不同的继承体系使得YUI中不同的组件构造的过程变得不一样,有些是通过YAHOO.util.Config的方式,有些是通过YAHOO.util.AttributeProvider的方式,这样去扩展YUI的组件变得相当的不方便,你需要去了解许多种不同的组件配置和初始化的方式。

当然,如果你只是把YUI集成到自己的应用当中,第二点对于你来说也许没有多大关系,但是你如果潜心想去扩展YUI,我想第二点是一个很另人头痛的事情。这里不得不夸一夸EXT,单根继承,Component模式,使得EXT中的widget的设计十分成功。真的很希望YUI不要再把不同的widget看成不一样的组件来对待,应该把这些子项目看成一个统一的子项目,重新去设计和实现,毕竟对于一个Ajax框架,UI部分的优劣很容易影响一个人对他的选择。

不过,我还是很喜欢YUI,我会做出自己的努力~!为他尽一点自己的力量。
   发表时间:2008-01-05  
刚看了YUI的代码,对于Container下的属性的配置,是不区别大小写的,所以可以把fixedcenter写成fixedCenter
0 请登录后投票
   发表时间:2008-07-30  
YUI的tree和DataTable中的id都必须使数字?

没有看YUI的代码,只是在做的时候发现用字符来做id就不能显示,不知道这个问题是不是真正的问题

例如下面这个tree的数据中,nodeid就必须为数字,换成aaa就无法显示
[{"level":"1","parentId":"root","nodeId":"1216882251392","nodeName":"aaa"},
{"level":"2","parentId":"1216882251392","nodeId":"1216882251330","nodeName":"bbb"}]
0 请登录后投票
   发表时间:2008-09-05  
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?
0 请登录后投票
   发表时间:2008-09-05  
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?
0 请登录后投票
   发表时间:2008-09-16  
nogocn 写道
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?

YUI有一个动态加载机制,我不知道你说的慢下来是指程序运行时慢,还是加载慢?
0 请登录后投票
   发表时间:2008-09-17  
yui3以前的版本是有那样的情况。命名空间过长。写起来比较费事。
不知道可接触过yui3, 像jquery学习了不少
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics