<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://bbiao.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fbbiao.spaces.live.com%2fcategory%2fAJAX%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>妖气重重: AJAX</title><description /><link>http://bbiao.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catAJAX</link><language>en-US</language><pubDate>Sat, 11 Oct 2008 08:29:30 GMT</pubDate><lastBuildDate>Sat, 11 Oct 2008 08:29:30 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://bbiao.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-4467243959638624240</live:id><live:alias>bbiao</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>YUI的一点不足</title><link>http://bbiao.spaces.live.com/Blog/cns!C201294984BAF810!940.entry</link><description>&lt;div&gt;
&lt;div&gt;称赞别人总是一件容易的事情，但是如果去批评别人，就要拿出十足的勇气和底气了，因为至今都没有把YUI的所有源代码都看一遍，所以不敢说那些是YUI的缺点，只能说是不足吧。通常别人在指正别人时，都会先夸奖别人一番，就是那些所谓的溢美之词，YUI的优点很多，是个很优秀的AJAX框架，在这里我就不客套了，直入主题。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font color="#ff0000"&gt;第一，命名规则不统一。&lt;/font&gt;这一点主要体现在一些Widget的Configuration Attribute和一些CSS样式名上。举一个简单的例子，在YAHOO.widget.Panel的配置属性中，close表示一个Panel是否可以被关闭，是否可以有关闭按钮，draggable代表这个Panel是否能被拖动，同样是Boolean的属性值，但是一个用了动词一个用了形容词，我不知道老外是否也把close和draggable的词性看的一致，反正在我看来，觉得不是很好。还有就是有些属性值使用了“骆驼”的命名方式，即非第一个单词的首字母大写，如Panel中的dragOnly属性，但是另一些属性却没有，如fixtoviewport、fixedcenter。CSS样式中也存在着同样的问题，你可以看到yui-panel和yuimenu这两种不同的命名方式。&lt;/div&gt;
&lt;div&gt;&lt;font color="#f79646"&gt;带来的危害：程序员总是希望有着统一的命名方式，不想在记住属性名称记住相应的命名规则。&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#002060"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font color="#000000"&gt;&lt;font color="#ff0000"&gt;第二，继承体系不唯一。&lt;/font&gt;这一点主要体现在所有的Widget没有实现单根继承上。像TabView和TreeView就没有一个共同的祖先，TabView继承YAHOO.util.Element，而TreeView没有父类，只是用一些像EventProvider来丰富了自己。而Container中的一些组件又继承自YAHOO.widget.Overlay。这其中的混乱还体现在一些类只是用另一些类来“丰富”自己，通过YAHOO.lang.augment方法，而一些类却是继承了别的类，通过YAHOO.lang.extend方法。&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#f79646"&gt;带来的危害：不同的继承体系使得YUI中不同的组件构造的过程变得不一样，有些是通过YAHOO.util.Config的方式，有些是通过YAHOO.util.AttributeProvider的方式，这样去扩展YUI的组件变得相当的不方便，你需要去了解许多种不同的组件配置和初始化的方式。&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#000000"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font color="#000000"&gt;当然，如果你只是把YUI集成到自己的应用当中，第二点对于你来说也许没有多大关系，但是你如果潜心想去扩展YUI，我想第二点是一个很另人头痛的事情。这里不得不夸一夸EXT，单根继承，Component模式，使得EXT中的widget的设计十分成功。真的很希望YUI不要再把不同的widget看成不一样的组件来对待，应该把这些子项目看成一个统一的子项目，重新去设计和实现，毕竟对于一个Ajax框架，UI部分的优劣很容易影响一个人对他的选择。&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-4467243959638624240&amp;page=RSS%3a+YUI%e7%9a%84%e4%b8%80%e7%82%b9%e4%b8%8d%e8%b6%b3&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bbiao.spaces.live.com&amp;amp;GT1=bbiao"&gt;</description><comments>http://bbiao.spaces.live.com/Blog/cns!C201294984BAF810!940.entry#comment</comments><guid isPermaLink="true">http://bbiao.spaces.live.com/Blog/cns!C201294984BAF810!940.entry</guid><pubDate>Sat, 05 Jan 2008 06:12:13 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bbiao.spaces.live.com/blog/cns!C201294984BAF810!940/comments/feed.rss</wfw:commentRss><wfw:comment>http://bbiao.spaces.live.com/Blog/cns!C201294984BAF810!940.entry#comment</wfw:comment><dcterms:modified>2008-01-05T06:12:13Z</dcterms:modified></item></channel></rss>