中国第一Ajax站长门户:www.okajax.com   虚拟主机 域名注册 云主机

yahoo YUI的一些不足 - okajax.com - Ajax中国

我要投稿 会员登陆 RSS订阅 本站推荐:
您的位置主页 > Ajax技术 > Ajax框架学习 > 其他框架 > yahoo YUI的一些不足

yahoo YUI的一些不足

2008-09-08    文章来源:互联网    浏览次数:

称赞别人总是一件容易的事情,但是如果去批评别人,就要拿出十足的勇气和底气了,因为至今都没有把YUI的所有源代码都看一遍,所以不敢说那些是YUI的缺点,只能说是不足吧。通常别人在指正别人时,都会先夸奖别人一番,就是那些所谓的溢美之词,YUI的优点很多,是个很优秀的AJAX框架,在这里我就不客套了,直入主题。

第一,命名规则不统一。这一点主要体现在一些Widget的ConfigurationAttribute和一些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,我会做出自己的努力~!为他尽一点自己的力量。

文章评论(查看全部)

看不清楚?单击换一张。
loading.. 评论加载中....
关于我们 - 广告服务 - 版权隐私 - 免责声明 - RSS地图 - 网站地图 - 使用帮助 - 返回顶部