<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>陕西鹏讯科技 &#187; ui</title>
	<atom:link href="http://pensee.net.cn/tag/ui/feed" rel="self" type="application/rss+xml" />
	<link>http://pensee.net.cn</link>
	<description>陕西鹏讯科技定位于Internet web2.0技术和服务提供商，致力于为客户提供Internet策划、建设、运维的整体解决方案。作为无忧服务理念的倡导者和实践者，公司自2005年成立以来，在政府、广电、电力、能源、大型企业等行业积累了大量的客户，与客户建立了长期合作的关系，赢得了广泛的好评。</description>
	<lastBuildDate>Sat, 21 Jan 2012 13:54:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>UI交互设计师的基本素质</title>
		<link>http://pensee.net.cn/ui%e4%ba%a4%e4%ba%92%e8%ae%be%e8%ae%a1%e5%b8%88%e7%9a%84%e5%9f%ba%e6%9c%ac%e7%b4%a0%e8%b4%a8</link>
		<comments>http://pensee.net.cn/ui%e4%ba%a4%e4%ba%92%e8%ae%be%e8%ae%a1%e5%b8%88%e7%9a%84%e5%9f%ba%e6%9c%ac%e7%b4%a0%e8%b4%a8#comments</comments>
		<pubDate>Tue, 16 Mar 2010 07:19:50 +0000</pubDate>
		<dc:creator>guoshuang</dc:creator>
				<category><![CDATA[技术专题]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://pensee.net.cn/?p=1054</guid>
		<description><![CDATA[完整原文在 http://china.aliued.com/?p=2328 1）听：做一个交互设计师，最重要的一点就是要懂得倾听（这里蕴藏了一个隐晦的性格属性：谦虚！）。通常情况下，我们不是用户，所以很难100%代表用户，更左右不了老板，所以我们首先要有听的本事，把来自用户的、老板的、PD的、视觉的、前端的、开发的、测试的、市场的、业界的等各方面的声音都听过来，听进去。 2）看：99%的情况下，交互不是一蹴而就的创造工作，它是站在前人肩膀上不断迭代更新的行为过程。我这里指的“看”是要求设计师能博览、能泛猎，看到好的，见过差的，什么都略懂，交互才能变得很美…… 3）想：交互是思考的输出产物和表现形式。当设计师将之前听到的和看到的内容在头脑中加以整理、分析，经过发散的创造性碰撞和严谨的逻辑论证后，逐渐得到了相对靠谱的交互产物。这个思索分析的过程贯穿于交互设计工作流程的每个环节。 4）说：一个能说会道的人不一定是一个优秀的交互设计师，但一个优秀的交互设计师必然是一个善于准确表达自己想法和观点的人。在这一点上，我坚持交互是一门分享的学科，需要的是开放的性格和良好的沟通技巧。 5） 磨：耐心、技巧、热情的综合表现。在一个项目的进程中，不可避免的会面临很多的挑战，优秀的交互设计师善于发挥“磨”的精神，他们怀揣对交互专业的无比热情，以无所不用其极的技巧，耐心的缠死一个又一个质疑方，最终让大家认同并帮助推动设计的实现。通常来说，一个优秀的交互设计师会是一个优秀的Idea推销员。 6） 做：交互设计师专业度的核心表现。俗语说得好，是骡子是马，牵出来遛遛。对于交互设计师来说，之前的环节做得再好、再完美，也只是停留在设计师自己的脑子里，游荡于听众们的耳膜间。如果理论落实不到实际，那所有的想法都只是空中楼阁，你之前所有的努力都只是在佐证你的空泛和不切实际。所以我们不仅要能“做”，更要“做”得漂亮，“做”得完美！我一直都是这样认为：“做”决定了一个交互设计师是不是靠谱，决定了一个交互设计师的高度，是一个交互设计师最根本的专业素质。 7）验：用户体验设计，最终是要落实到用户的身上的。客观中立的验证、分析、评估能力是一个优秀交互设计师的重要素质。无论个人还是团队，设计的成果都需要通过精准的测试才能算得上合乎标准，此时，一颗平常心和一双敏锐的眼睛是设计师最需要的。 8）写：分析、归纳和总结能力的综合表现。一个项目，无论成功还是失败，总是有很多地方值得设计师本人或后来人借鉴。交互设计之路不是一座苛求零失误的独木桥，但绝对是一条要求零“重复”失误的单行线。评价一个设计师的专业度，很重要的一环就是看他能不能多犯前人从来没有犯过的错误，并能有效总结给后来人。于是，他就成了大家，路就这样被趟了出来…… 9）讲：演讲能力。这里所指的是在项目后期进行的交流分享。一个专业的交互设计师会站在宏观的高度上，以平和的心态同他人沟通，验证自己先前设计的合理性、全面性和科学性，更好的提高自己的专业能力，为今后的交互设计做好准备。]]></description>
			<content:encoded><![CDATA[<p>完整原文在 http://china.aliued.com/?p=2328</p>
<p><img src="http://pensee.net.cn/wp-content/uploads/2010/03/front-pro.jpg" alt="" title="front-pro" width="680" height="240" class="alignnone size-full wp-image-1055" /></p>
<p>1）听：做一个交互设计师，最重要的一点就是要懂得倾听（这里蕴藏了一个隐晦的性格属性：谦虚！）。通常情况下，我们不是用户，所以很难100%代表用户，更左右不了老板，所以我们首先要有听的本事，把来自用户的、老板的、PD的、视觉的、前端的、开发的、测试的、市场的、业界的等各方面的声音都听过来，听进去。</p>
<p>2）看：99%的情况下，交互不是一蹴而就的创造工作，它是站在前人肩膀上不断迭代更新的行为过程。我这里指的“看”是要求设计师能博览、能泛猎，看到好的，见过差的，什么都略懂，交互才能变得很美……</p>
<p>3）想：交互是思考的输出产物和表现形式。当设计师将之前听到的和看到的内容在头脑中加以整理、分析，经过发散的创造性碰撞和严谨的逻辑论证后，逐渐得到了相对靠谱的交互产物。这个思索分析的过程贯穿于交互设计工作流程的每个环节。</p>
<p>4）说：一个能说会道的人不一定是一个优秀的交互设计师，但一个优秀的交互设计师必然是一个善于准确表达自己想法和观点的人。在这一点上，我坚持交互是一门分享的学科，需要的是开放的性格和良好的沟通技巧。<br />
5） 磨：耐心、技巧、热情的综合表现。在一个项目的进程中，不可避免的会面临很多的挑战，优秀的交互设计师善于发挥“磨”的精神，他们怀揣对交互专业的无比热情，以无所不用其极的技巧，耐心的缠死一个又一个质疑方，最终让大家认同并帮助推动设计的实现。通常来说，一个优秀的交互设计师会是一个优秀的Idea推销员。</p>
<p>6） 做：交互设计师专业度的核心表现。俗语说得好，是骡子是马，牵出来遛遛。对于交互设计师来说，之前的环节做得再好、再完美，也只是停留在设计师自己的脑子里，游荡于听众们的耳膜间。如果理论落实不到实际，那所有的想法都只是空中楼阁，你之前所有的努力都只是在佐证你的空泛和不切实际。所以我们不仅要能“做”，更要“做”得漂亮，“做”得完美！我一直都是这样认为：“做”决定了一个交互设计师是不是靠谱，决定了一个交互设计师的高度，是一个交互设计师最根本的专业素质。</p>
<p>7）验：用户体验设计，最终是要落实到用户的身上的。客观中立的验证、分析、评估能力是一个优秀交互设计师的重要素质。无论个人还是团队，设计的成果都需要通过精准的测试才能算得上合乎标准，此时，一颗平常心和一双敏锐的眼睛是设计师最需要的。</p>
<p>8）写：分析、归纳和总结能力的综合表现。一个项目，无论成功还是失败，总是有很多地方值得设计师本人或后来人借鉴。交互设计之路不是一座苛求零失误的独木桥，但绝对是一条要求零“重复”失误的单行线。评价一个设计师的专业度，很重要的一环就是看他能不能多犯前人从来没有犯过的错误，并能有效总结给后来人。于是，他就成了大家，路就这样被趟了出来……</p>
<p>9）讲：演讲能力。这里所指的是在项目后期进行的交流分享。一个专业的交互设计师会站在宏观的高度上，以平和的心态同他人沟通，验证自己先前设计的合理性、全面性和科学性，更好的提高自己的专业能力，为今后的交互设计做好准备。</p>
]]></content:encoded>
			<wfw:commentRss>http://pensee.net.cn/ui%e4%ba%a4%e4%ba%92%e8%ae%be%e8%ae%a1%e5%b8%88%e7%9a%84%e5%9f%ba%e6%9c%ac%e7%b4%a0%e8%b4%a8/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YUI3设计中的激进和妥协（转自 taobao ued）</title>
		<link>http://pensee.net.cn/yui3%e8%ae%be%e8%ae%a1%e4%b8%ad%e7%9a%84%e6%bf%80%e8%bf%9b%e5%92%8c%e5%a6%a5%e5%8d%8f%ef%bc%88%e8%bd%ac%e8%87%aa-taobao-ued%ef%bc%89</link>
		<comments>http://pensee.net.cn/yui3%e8%ae%be%e8%ae%a1%e4%b8%ad%e7%9a%84%e6%bf%80%e8%bf%9b%e5%92%8c%e5%a6%a5%e5%8d%8f%ef%bc%88%e8%bd%ac%e8%87%aa-taobao-ued%ef%bc%89#comments</comments>
		<pubDate>Tue, 16 Mar 2010 05:09:49 +0000</pubDate>
		<dc:creator>guoshuang</dc:creator>
				<category><![CDATA[技术专题]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://pensee.net.cn/?p=1052</guid>
		<description><![CDATA[相信每个前端工程师都有自己喜爱的javascript框架，说情感也好，道信仰也罢，javascript框架带给人的不仅仅是便捷的开发，更有一种纯粹的逻辑美感，不管是jquery曼妙的简洁，还是yui魔术般的沙箱，都使我们产生无穷的想象。然而，js框架却又必然无法做到面面俱到的完美无瑕，比如jquery在OO方面做出的让步，以及yui在性能上做的牺牲，无不给人传达一种缺憾美、一种理想的现实主义。今天，我们来看看yui3在框架设计中的这些牺牲和让步，以便让我们更加深刻的理解yui3的全貌，并将其优势发挥至最佳。 1，种子的一步到位 or 颗粒化 所谓种子一步到位是指只要在页面引入一个种子文件的script标签，比如prototype和jquery，只要引入一个prototype.js或jquery.js就可以了，他们将各自对dom操作和event的封装等等都囊括进一个文件中，并尽力将其做到最小，这样做的好处是显而易见的，使用框架非常简单。然而yui将这些功能做了级别划分和颗粒化设计，从概念上抽象出来“核心”、“工具”和“组件”，每个小功能放在一个文件当中，需要的时候则要自行去引用，yui文档中给出的大量demo都采用这种方法，这种设计显然不像jquery那样对初学者友好，而且使用起来不够傻瓜，为了实现一个小功能，甚至要引入三四个js文件。yui这样做的原因有两个，一是yui实在太大，把所有功能都搞进一个文件中确实有点不靠谱，二是为其动态加载的框架设计做铺垫。 2，手动引入 or 动态加载 往页面中写js的传统方法是，直接将js文件作为script标签路径写在页面中，使用yui也可以这样引入页面，但yui更推荐使用loader进行动态加载。动态加载脚本的渊源很复杂，目前来看主要原因有三，其一，页面中手写js标签无论如何都会占用一个http请求，即使这个请求是一个304，动态加载的文件缓存后则不必发起真实的http请求，其二，动态加载可以实现按需加载，而且可以根据js文件之间的依赖进行去重和排序，手写标签加载js文件则必须让开发者去额外关注一下文件的排序、重复等等，其三，动态加载有利于页面代码的语义化，这使得开发者只关心“需要什么”，而不用去在意“如何得到”。当项目变得越发臃肿，维护成本越来越高的时候，这中小技巧会有不小的好处的。 3，逻辑启动的单一入口 or 沙箱 我们在页面中启动一个js逻辑通常是放在一个类似onDomReady的方法中，如果页面中存在多个逻辑的时候怎么办呢？比如，a实现了逻辑A，页面代码是这样的 &#60;script src=&#8221;logicA.js&#8221; /&#62; &#60;script&#62; $.onDomReady(function(){ ___LogicA.start(); }); &#60;/script&#62; 这段代码通常写在页面的尾部，这段逻辑所伴随的html代码是埋藏在页面的某处，这时b要在页面中增加逻辑B，b的做法是首先找到尾部的这段代码，然后更改成如下模样： &#60;script src=&#8221;logicA.js&#8221; /&#62; &#60;script src=&#8221;logicB.js&#8221; /&#62; &#60;script&#62; $.onDomReady(function(){ ___LogicA.start(); ___LogicB.start(); }); &#60;/script&#62; 同样，B逻辑所伴随的html代码也是埋藏在页面的某处，这样看来，js逻辑和其伴随的html代码如此分离，以至于到了删减功能的时候，往往删掉html却忘了删js，或者删掉js忘了删除html，在重用代码的时候也会是个麻烦。同样，在调试的时候，工程师也要打开两个窗口分别关注js和html，即使这两段代码在同一个文件当中。如此则不如把代码写成这样： &#60;!&#8211;A逻辑的html代码段&#8211;&#62; &#60;script src=&#8221;logicA.js&#8221; /&#62; &#60;script&#62; $.onDomReady(function(){ ___LogicA.start(); }); &#60;/script&#62; &#8230; &#60;!&#8211;B逻辑的html代码段&#8211;&#62; &#60;script src=&#8221;logicB.js&#8221; /&#62; &#60;script&#62; $.onDomReady(function(){ ___LogicB.start(); }); &#60;/script&#62; 这种coding写法正是yui所提倡的，也就是所谓的沙箱，每个逻辑包含在一个沙箱中，各司其则互不干扰。当第三者浏览代码的时候也立即明白这就是一个独立的功能块，包含典型的html结构和启动逻辑的js，要重用，整块拷走即可。 [...]]]></description>
			<content:encoded><![CDATA[<p>相信每个前端工程师都有自己喜爱的javascript框架，说情感也好，道信仰也罢，javascript框架带给人的不仅仅是便捷的开发，更有一种纯粹的逻辑美感，不管是jquery曼妙的简洁，还是yui魔术般的沙箱，都使我们产生无穷的想象。然而，js框架却又必然无法做到面面俱到的完美无瑕，比如jquery在OO方面做出的让步，以及yui在性能上做的牺牲，无不给人传达一种缺憾美、一种理想的现实主义。今天，我们来看看yui3在框架设计中的这些牺牲和让步，以便让我们更加深刻的理解yui3的全貌，并将其优势发挥至最佳。</p>
<p><strong>1，种子的一步到位 or 颗粒化</strong><br /> <br />
所谓种子一步到位是指只要在页面引入一个种子文件的script标签，比如prototype和jquery，只要引入一个prototype.js或jquery.js就可以了，他们将各自对dom操作和event的封装等等都囊括进一个文件中，并尽力将其做到最小，这样做的好处是显而易见的，使用框架非常简单。然而yui将这些功能做了级别划分和颗粒化设计，从概念上抽象出来“核心”、“工具”和“组件”，每个小功能放在一个文件当中，需要的时候则要自行去引用，yui文档中给出的大量demo都采用这种方法，这种设计显然不像jquery那样对初学者友好，而且使用起来不够傻瓜，为了实现一个小功能，甚至要引入三四个js文件。yui这样做的原因有两个，一是yui实在太大，把所有功能都搞进一个文件中确实有点不靠谱，二是为其动态加载的框架设计做铺垫。</p>
<p><strong>2，手动引入 or 动态加载</strong><br /> <br />
往页面中写js的传统方法是，直接将js文件作为script标签路径写在页面中，使用yui也可以这样引入页面，但yui更推荐使用loader进行动态加载。动态加载脚本的渊源很复杂，目前来看主要原因有三，其一，页面中手写js标签无论如何都会占用一个http请求，即使这个请求是一个304，动态加载的文件缓存后则不必发起真实的http请求，其二，动态加载可以实现按需加载，而且可以根据js文件之间的依赖进行去重和排序，手写标签加载js文件则必须让开发者去额外关注一下文件的排序、重复等等，其三，动态加载有利于页面代码的语义化，这使得开发者只关心“需要什么”，而不用去在意“如何得到”。当项目变得越发臃肿，维护成本越来越高的时候，这中小技巧会有不小的好处的。</p>
<p><span id="more-1366"></span></p>
<p><strong>3，逻辑启动的单一入口 or 沙箱</strong><br /> <br />
我们在页面中启动一个js逻辑通常是放在一个类似onDomReady的方法中，如果页面中存在多个逻辑的时候怎么办呢？比如，a实现了逻辑A，页面代码是这样的</p>
<blockquote><p>&lt;script src=&#8221;logicA.js&#8221; /&gt;<br /> <br />
&lt;script&gt;<br /> <br />
$.onDomReady(function(){<br /> <br />
<span style="color: #ffffff">___</span>LogicA.start();<br /> <br />
});<br /> <br />
&lt;/script&gt;</p>
</blockquote>
<p>这段代码通常写在页面的尾部，这段逻辑所伴随的html代码是埋藏在页面的某处，这时b要在页面中增加逻辑B，b的做法是首先找到尾部的这段代码，然后更改成如下模样：</p>
<blockquote><p>&lt;script src=&#8221;logicA.js&#8221; /&gt;<br /> <br />
&lt;script src=&#8221;logicB.js&#8221; /&gt;<br /> <br />
&lt;script&gt;<br /> <br />
$.onDomReady(function(){<br /> <br />
<span style="color: #ffffff">___</span>LogicA.start();<br /> <br />
<span style="color: #ffffff">___</span>LogicB.start();<br /> <br />
});<br /> <br />
&lt;/script&gt;</p>
</blockquote>
<p>同样，B逻辑所伴随的html代码也是埋藏在页面的某处，这样看来，js逻辑和其伴随的html代码如此分离，以至于到了删减功能的时候，往往删掉html却忘了删js，或者删掉js忘了删除html，在重用代码的时候也会是个麻烦。同样，在调试的时候，工程师也要打开两个窗口分别关注js和html，即使这两段代码在同一个文件当中。如此则不如把代码写成这样：</p>
<blockquote><p><!--A逻辑的html代码段-->&lt;!&#8211;A逻辑的html代码段&#8211;&gt;<br /> <br />
&lt;script src=&#8221;logicA.js&#8221; /&gt;<br /> <br />
&lt;script&gt;<br /> <br />
$.onDomReady(function(){<br /> <br />
<span style="color: #ffffff">___</span>LogicA.start();<br /> <br />
});<br /> <br />
&lt;/script&gt;</p>
<p>&#8230;</p>
<p>&lt;!&#8211;B逻辑的html代码段&#8211;&gt;<br /> <br />
&lt;script src=&#8221;logicB.js&#8221; /&gt;<br /> <br />
&lt;script&gt;<br /> <br />
$.onDomReady(function(){<br /> <br />
<span style="color: #ffffff">___</span>LogicB.start();<br /> <br />
});<br /> <br />
&lt;/script&gt;</p>
</blockquote>
<p>这种coding写法正是yui所提倡的，也就是所谓的沙箱，每个逻辑包含在一个沙箱中，各司其则互不干扰。当第三者浏览代码的时候也立即明白这就是一个独立的功能块，包含典型的html结构和启动逻辑的js，要重用，整块拷走即可。</p>
<p><strong>4，代码污染 or 沙箱</strong><br /> <br />
刚才提到的沙箱可以解决一部分代码污染的问题，新人阅读代码不用再看着乱码般的源码，“瞻前顾后”小心翼翼的寻找html和js的对应关系。但这种写法也存在隐患，现在的前端开发越来越复杂也更多的使用分层，比如底层使用yui，中间层是自定义的工具库，或者再加一个项目的widget组件库，写页面逻辑则是基于这些库进行开发。这样的话，每段逻辑可能写成这个样子：</p>
<blockquote><p><!--A逻辑的html代码段-->&lt;!&#8211;A逻辑的html代码段&#8211;&gt;<br /> <br />
&lt;script src=&#8221;widget.js&#8221; /&gt;&lt;!&#8211;项目的widget库&#8211;&gt;<br /> <br />
&lt;script src=&#8221;logicA.js&#8221; /&gt;<br /> <br />
&lt;script&gt;<br /> <br />
$.onDomReady(function(){<br /> <br />
<span style="color: #ffffff">___</span>LogicA.start();<br /> <br />
});<br /> <br />
&lt;/script&gt;</p>
</blockquote>
<p>尽管我们可以约定，将项目用到的所有的组件都统一加载进页面中，但当组件越来越多的时候，就出现了上文所说的一步到位和颗粒化之间的矛盾，当每个控件单独占用一个js文件和与之相伴随的css皮肤，一个相对复杂的逻辑就变成了上文所说的手动引入js文件，并随之引入一些显而易见的弊端：</p>
<blockquote><p><!--复杂的A逻辑的html代码段，使用了日历，弹层，幻灯-->&lt;!&#8211;复杂的A逻辑的html代码段，使用了日历，弹层，幻灯&#8211;&gt;<br /> <br />
&lt;script src=&#8221;calendar.js&#8221; /&gt;&lt;!&#8211;日历&#8211;&gt;<br /> <br />
&lt;script src=&#8221;box.js&#8221; /&gt;&lt;!&#8211;弹层&#8211;&gt;<br /> <br />
&lt;script src=&#8221;tabview.js&#8221; /&gt;&lt;!&#8211;幻灯原型&#8211;&gt;<br /> <br />
&lt;script src=&#8221;slider.js&#8221; /&gt;&lt;!&#8211;幻灯&#8211;&gt;<br /> <br />
&lt;script src=&#8221;logicA.js&#8221; /&gt;<br /> <br />
&lt;script&gt;<br /> <br />
$.onDomReady(function(){<br /> <br />
<span style="color: #ffffff">___</span>LogicA.start();<br /> <br />
});<br /> <br />
&lt;/script&gt;</p>
</blockquote>
<p>首先，手写大量的js文件会各自占用单独的http请求，在者，这个场景中，slider.js继承自tabview.js，因此要着重关注他们的顺序，第三，如果别人在页面的其他地方也使用了日历或者幻灯，还要再加两个相同的js标签？其实，说到这里，我们已经可以隐约看到大项目团队开发的影子了，在一个迭代及其频繁的项目中，开发者需要在短的时间内完成一个复杂页面的某个功能的开发，而且不能影响到页面的其他功能，毕竟，每添加一个功能，QA mm们都要将与之牵连的所有功能都要回归，可辛苦了我们的QA mm们。在这种情况下，一个功能的开发可能和同一个页面其他功能的开发相互并行。互相不属于同一个项目组，也不知晓对方的实现。这种模式则是我们经常遇到的多人开发，冲突也大都由此产生，每个功能单独看来是正确的，合并到一起会产生冲突和bug，这时调试bug则需要两个工程师同时进行，很麻烦。甚者，当组件升级了，比如，tabview.js再继承自tab.js，则又要去联系各个工程师，将每个引用tabview.js的地方之前再加上一个tab.js，很麻烦。我们说，这种多人协作模式所带来的冲突也是代码污染的一种，因为每个人只能掌控类似tms区块那么巴掌大的地方，所组成的最终页面是什么样，都不知道。更何况，这种生猛的引用js，也会阻塞页面加载，占用http请求，影响性能。</p>
<p>鉴于此，yui将js的动态引入机制也并入其沙箱设计之中，我要引用的只是一个名字，比如slider.js，他依赖tabview.js，tabview.js依赖tab.js，这样我只需引用一个名叫&#8221;slider&#8221;的东西即可，不用操心他依赖什么，更不用管如何引入到页面中，yui都帮我们搞定：</p>
<blockquote><p>&lt;script&gt;<br /> <br />
TB.addmoudle({<br /> <br />
<span style="color: #ffffff">___</span>logicA:{<br /> <br />
<span style="color: #ffffff">______</span>fullpath:&#8217;logica.js&#8217;,<br /> <br />
<span style="color: #ffffff">______</span>requires:['slider']<br /> <br />
<span style="color: #ffffff">___</span>}<br /> <br />
}).use(&#8216;logicA&#8217;,function(Y){<br /> <br />
<span style="color: #ffffff">___</span>LogicA.start();<br /> <br />
});<br /> <br />
&lt;/script&gt;</p>
</blockquote>
<p>当我们看最终组成的页面的时候，看到的只是埋藏在页面各个角落的这些简短的结构一致的js代码段。很易理解，这点代码也不用像长的代码块压成一行。（更多细节可参照 <a href="http://www.uedmagazine.com/ued/comments.php?y=09&amp;m=09&amp;entry=entry090905-051322">前端弱架构导致的代码污染</a> ）</p>
<p><strong>5，颗粒化 or http请求数</strong><br /> <br />
这的确是一对矛盾，颗粒化带来了项目开发、管理、和代码重用的高效率，却又引入了更多的http请求数，好在yui提供了combo，可以将所有的http请求合并成一个。只需在YUI引入的时候配置下combo属性即可，高颗粒化的请求数瞬间降低一倍以上。在之前做雅虎关系的时候，在yui2和yui3pre并存的情况下，可以将请求降低到4个，yui2和3各一个种子，各自一个combo。当然这是在hack掉yui的loader的前提下。yui默认不会合并非yui文件（更多细节可以阅读<a href="http://www.uedmagazine.com/ued/comments.php?y=09&amp;m=06&amp;entry=entry090612-094816">基于yui的团队开发</a>）。即使这样，我们仍然可以控制我们的http请求数，在不hack yui的情况下，可以解决部分性能问题。</p>
<p><strong>6，懒惰加载 or 即时加载即时执行</strong><br /> <br />
上文提到，逻辑依赖沙箱，沙箱依赖的js文件则是延时加载的，这样就导致一个问题，当页面比较庞大的时候，会等待页面js加载完毕才会渲染动作，这样的用户体验不佳，而即时加载即使运行则可以渲染出模块后随即渲染动作，当网速一定的时候，两者看似是一对不可调和的矛盾，yui 动态加载的机制比较折中的处理了这个问题，A逻辑需要a.js，B逻辑需要b.js，A逻辑则只会在a.js加载完成后执行，而不管b.js是否加载完成，而当A需要a.js和b.js的时候，A则需要等待a.js和b.js都加载完成才会执行，B逻辑只需判断当前是否已经加载b.js，如果b.js已经在其他模块中引入进来，B则可以立即执行。但确定的是，所有的js的引入一定是在domReady后执行的，也就是说，不管怎样，动作的渲染一定是在页面html结构出来后才开始执行的，用户体验上还是会有损失。</p>
<p><strong>7，面向接口的设计 or 面向dom的设计</strong><br /> <br />
我们知道jquery的插件习惯将所有的动作都加载到一个$(&#8216;#id&#8217;)上，使用的时候只要执行类似$(&#8216;#id&#8217;).init()即可。这看起来简洁明快，开发者的逻辑的思路也始终没有离开“节点”，很方便理解，而对yui3 的node扩展就不那么方便，从yui3的pre版到正式版，对node扩展的方法在不断的修改（更多细节看这里：<a href="http://www.uedmagazine.com/ued/comments.php?y=09&amp;m=09&amp;entry=entry090919-054842">扩展yui3 node的定时器</a>），这也可以看出yui设计者在对node扩展性设计时的纠结和苦恼：要不要允许开发者去扩展node节点呢？大概是因为设计者们对prototype先天的弊端心有余悸。目前看来，设计者还没有完全走出纠结，尽管对node扩展相比yui3第一个预览版方便了很多，开发者仍然不能像写jquery插件那样优雅自如的对node进行扩展。相反，zakas却将更多的精力放在了widget接口的设计上，在这一点上，相比jquery，yui3则具有无可限量的优越性，因为在yui3中，组件不仅仅是组件，而是一个有血有肉的生命体，他可以出生，可以成长，可以被改造，可以死亡，组件在这些复杂的运行时环境中自我锤炼，因此，一个复杂页面在yui3的技术体系中，变成了一个由无数组件链接而成的生态系统，这种生物链所带来的设计创新和新视野是其他js框架无论如何也无法超越的。关于yui3的组件开发更多细节可以参照：<a href="http://ued.taobao.com/blog/2009/12/16/yui/">基于yui3的组件开发1</a> 和 <a href="http://hikejun.com/blog/?p=503">克军在D2上的分享《从yui2到yui3看前端的演变》</a></p>
<p><strong>8，苗条的身材 or 庞大的身躯</strong><br /> <br />
说到这里，大概会有很多人拍砖。其实jquery和yui同属两类不同的js框架，一个苗条纤细，一个身重如山，两者之间其实没有什么水深火热，只是使用范围不同罢了，类似jquery的轻框架的使用范围是博客级别的小网站，尤其适合单人开发，代码写一次不再修改，而且很适合初学者学习使用，给初学者带来自信。yui则使用与企业级的项目中的团队开发，项目维护周期远远超过开发周期，因此yui性能一定比不过jquery，jquery的续航能力也一定不如yui，没有最优秀，只有最适合。当然这自然也挡不住我个人对迷人的jquery的喜爱，只要我们能从各个js框架学到东西，能提高自己做前端架构的能力，就ok。</p>
<p>说了这么多，其实只有一个观点，人无完人，框架无完框架，缺憾之处必有权衡。以上YY，欢迎拍砖！</p>
]]></content:encoded>
			<wfw:commentRss>http://pensee.net.cn/yui3%e8%ae%be%e8%ae%a1%e4%b8%ad%e7%9a%84%e6%bf%80%e8%bf%9b%e5%92%8c%e5%a6%a5%e5%8d%8f%ef%bc%88%e8%bd%ac%e8%87%aa-taobao-ued%ef%bc%89/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ui 组件下载</title>
		<link>http://pensee.net.cn/ui-%e7%bb%84%e4%bb%b6%e4%b8%8b%e8%bd%bd</link>
		<comments>http://pensee.net.cn/ui-%e7%bb%84%e4%bb%b6%e4%b8%8b%e8%bd%bd#comments</comments>
		<pubDate>Mon, 08 Feb 2010 00:54:15 +0000</pubDate>
		<dc:creator>guoshuang</dc:creator>
				<category><![CDATA[技术专题]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://pensee.net.cn/?p=751</guid>
		<description><![CDATA[form UI 组件欣赏 Web-Form-Elements-Vol Web UI 设计模版 来自 WEB UI Treasure Chest V1.0 WEB_UI_Treasure_Chest_v_1_0 psd 下载地址 iPhone 手机UI设计模版 来自 iphone gui psd iphone gui psd(9M)下载地址 导航向导设计欣赏 常用图标]]></description>
			<content:encoded><![CDATA[<p>form UI 组件欣赏</p>
<p><a href="http://pensee.net.cn/wp-content/themes/pengxun/ui-components/Web_Form_Elements_Vol_2_by_sniperyu.jpg"><img src="http://pensee.net.cn/wp-content/themes/pengxun/ui-components/Web_Form_Elements_Vol_2_by_sniperyu-s.jpg" alt="" /></a></p>
<p><a href="http://sniperyu.deviantart.com/art/Web-Form-Elements-Vol-2-146544080">Web-Form-Elements-Vol</a></p>
<p>Web UI 设计模版</p>
<p><a href="http://pensee.net.cn/wp-content/themes/pengxun/ui-components/WEB_UI_Treasure_Chest_v_1_0_by_LazyCrazy.jpg"><img src="http://pensee.net.cn/wp-content/themes/pengxun/ui-components/WEB_UI_Treasure_Chest_v_1_0_by_LazyCrazy-s.jpg" alt="" /></a></p>
<p>来自 <a href="http://lazycrazy.deviantart.com/art/WEB-UI-Treasure-Chest-v-1-0-139165343">WEB UI Treasure Chest V1.0</a></p>
<p><a href="http://www.deviantart.com/download/139165343/WEB_UI_Treasure_Chest_v_1_0_by_LazyCrazy.zip">WEB_UI_Treasure_Chest_v_1_0 psd 下载地址</a></p>
<p>iPhone 手机UI设计模版</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/ui-components/iphonegui_3_0-s.jpg" alt="" /></p>
<p>来自 <a href="http://www.teehanlax.com/blog/2009/06/18/iphone-gui-psd-30/">iphone gui psd</a></p>
<p><a href="http://teehanlax.com/downloads/iPhone_GUI.psd.zip">iphone gui psd(9M)下载地址</a></p>
<p>导航向导设计欣赏</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/ui-components/tabbed_breadcrumb.jpg" alt="" /></p>
<p>常用图标</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/ui-components/Konigi-Wireframe-Icons-EPS_0.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://pensee.net.cn/ui-%e7%bb%84%e4%bb%b6%e4%b8%8b%e8%bd%bd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UI界面设计的写实主义</title>
		<link>http://pensee.net.cn/ui%e7%95%8c%e9%9d%a2%e8%ae%be%e8%ae%a1%e7%9a%84%e5%86%99%e5%ae%9e%e4%b8%bb%e4%b9%89</link>
		<comments>http://pensee.net.cn/ui%e7%95%8c%e9%9d%a2%e8%ae%be%e8%ae%a1%e7%9a%84%e5%86%99%e5%ae%9e%e4%b8%bb%e4%b9%89#comments</comments>
		<pubDate>Fri, 22 Jan 2010 01:17:13 +0000</pubDate>
		<dc:creator>guoshuang</dc:creator>
				<category><![CDATA[技术专题]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://pensee.net.cn/?p=683</guid>
		<description><![CDATA[英文原文在 Realism in UI Design，大致内容如下： 从一张“具体”的脸提升为“概念”性的脸，这就是 GUI 设计的目的和精华所在。 比较一下这两个“回到首页”的设计。右面的细节（写实）太多了，用户不知所谓何意。 再看看这张，有点过了，最右边的圈已经不会让人再联想到“脸”了 回过头来，再看看 home 的设计。 不断简化，概括，提升&#8230; 最右边的实际上已经不太象房子了，而更象一个向上的箭头？ cognition 认知 confusion 混淆。中文怎么说来着 — 抽象和写实 要恰到好处。 感觉一下 按钮 和 开关 的设计。 中间基本刚刚好，右边的细节丢掉太多了。]]></description>
			<content:encoded><![CDATA[<p>英文原文在 <a href="http://ignorethecode.net/blog/2010/01/21/realism_in_ui_design/">Realism in UI Design</a>，大致内容如下：</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/faces_1.png" alt="face"/><br />
从一张“具体”的脸提升为“概念”性的脸，这就是 GUI 设计的目的和精华所在。</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/photo_pictures.png" alt="home"/><br />
<img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/home.png" alt="home"/><br />
比较一下这两个“回到首页”的设计。右面的细节（写实）太多了，用户不知所谓何意。</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/faces_2.png" alt="face"/><br />
再看看这张，有点过了，最右边的圈已经不会让人再联想到“脸”了</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/home_buttons.png" alt="home buttons"/><br />
回过头来，再看看 home 的设计。</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/home_button_2.png" alt="home buttons"/><br />
不断简化，概括，提升&#8230;<br />
最右边的实际上已经不太象房子了，而更象一个向上的箭头？</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/confusion_cognition.png" alt="confusion cognition"/></p>
<p>cognition 认知  confusion 混淆。中文怎么说来着 — 抽象和写实 要恰到好处。</p>
<p><img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/buttons.png" alt="buttons"/><br />
<img src="http://pensee.net.cn/wp-content/themes/pengxun/webdesign-tutorials/ui-realism/toggles.png" alt="toggles"/><br />
感觉一下 按钮 和 开关 的设计。<br />
中间基本刚刚好，右边的细节丢掉太多了。</p>
]]></content:encoded>
			<wfw:commentRss>http://pensee.net.cn/ui%e7%95%8c%e9%9d%a2%e8%ae%be%e8%ae%a1%e7%9a%84%e5%86%99%e5%ae%9e%e4%b8%bb%e4%b9%89/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>银行软件</title>
		<link>http://pensee.net.cn/%e9%93%b6%e8%a1%8c%e8%bd%af%e4%bb%b6</link>
		<comments>http://pensee.net.cn/%e9%93%b6%e8%a1%8c%e8%bd%af%e4%bb%b6#comments</comments>
		<pubDate>Mon, 04 Jan 2010 09:50:10 +0000</pubDate>
		<dc:creator>guoshuang</dc:creator>
				<category><![CDATA[网页设计]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://pensee.net.cn/%e9%93%b6%e8%a1%8c%e8%bd%af%e4%bb%b6</guid>
		<description><![CDATA[设计说明：某银行软件 时间：2008年07月]]></description>
			<content:encoded><![CDATA[<div class="webLayoutShow">
<img src="/wp-content/themes/pengxun/designs/fengxian01.jpg" alt="银行软件" /><img src="/wp-content/themes/pengxun/designs/fengxian02.jpg" alt="银行软件" /><img src="/wp-content/themes/pengxun/designs/fengxian03.jpg" alt="银行软件" /><img src="/wp-content/themes/pengxun/designs/fengxian04.jpg" alt="银行软件" /><img src="/wp-content/themes/pengxun/designs/fengxian05.jpg" alt="银行软件" /><img src="/wp-content/themes/pengxun/designs/fengxian06.jpg" alt="银行软件" />
</div>
<ul>
<li>设计说明：某银行软件</li>
<li>时间：2008年07月</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pensee.net.cn/%e9%93%b6%e8%a1%8c%e8%bd%af%e4%bb%b6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>焦家金矿生产经营管理系统</title>
		<link>http://pensee.net.cn/%e7%84%a6%e5%ae%b6%e9%87%91%e7%9f%bf%e7%94%9f%e4%ba%a7%e7%bb%8f%e8%90%a5%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f</link>
		<comments>http://pensee.net.cn/%e7%84%a6%e5%ae%b6%e9%87%91%e7%9f%bf%e7%94%9f%e4%ba%a7%e7%bb%8f%e8%90%a5%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f#comments</comments>
		<pubDate>Mon, 04 Jan 2010 09:27:02 +0000</pubDate>
		<dc:creator>guoshuang</dc:creator>
				<category><![CDATA[网页设计]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://pensee.net.cn/?p=506</guid>
		<description><![CDATA[设计说明：焦家金矿生产经营管理系统 时间：2009年05月]]></description>
			<content:encoded><![CDATA[<div class="webLayoutShow">
<img src="/wp-content/themes/pengxun/designs/jiaojia01.jpg" alt="焦家金矿生产经营管理系统" /><img src="/wp-content/themes/pengxun/designs/jiaojia02.jpg" alt="焦家金矿生产经营管理系统" /><img src="/wp-content/themes/pengxun/designs/jiaojia03.jpg" alt="焦家金矿生产经营管理系统" /><img src="/wp-content/themes/pengxun/designs/jiaojia04.jpg" alt="焦家金矿生产经营管理系统" /><img src="/wp-content/themes/pengxun/designs/jiaojia05.jpg" alt="焦家金矿生产经营管理系统" />
</div>
<ul>
<li>设计说明：焦家金矿生产经营管理系统</li>
<li>时间：2009年05月</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pensee.net.cn/%e7%84%a6%e5%ae%b6%e9%87%91%e7%9f%bf%e7%94%9f%e4%ba%a7%e7%bb%8f%e8%90%a5%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

