<?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/"
	>

<channel>
	<title>老邓态度&#124;邓熔</title>
	<atom:link href="http://www.raydeng.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.raydeng.com</link>
	<description>互联网博客  关注互联网产品设计, 电子商务, 创业。</description>
	<pubDate>Mon, 08 Mar 2010 07:29:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>产品工作的“BUT”三角</title>
		<link>http://www.raydeng.com/%e4%ba%a7%e5%93%81%e5%b7%a5%e4%bd%9c%e7%9a%84%e2%80%9cbut%e2%80%9d%e4%b8%89%e8%a7%92.html</link>
		<comments>http://www.raydeng.com/%e4%ba%a7%e5%93%81%e5%b7%a5%e4%bd%9c%e7%9a%84%e2%80%9cbut%e2%80%9d%e4%b8%89%e8%a7%92.html#comments</comments>
		<pubDate>Mon, 08 Mar 2010 06:30:11 +0000</pubDate>
		<dc:creator>邓熔</dc:creator>
		
		<category><![CDATA[1. 互联网]]></category>

		<category><![CDATA[互联网]]></category>

		<category><![CDATA[产品]]></category>

		<guid isPermaLink="false">http://www.raydeng.com/?p=1884</guid>
		<description><![CDATA[昨晚又向一个有意于产品领域的朋友推荐了一下Larry keeley的产品三要素模型。

再次意识到，这个三角形，其实不太便于新人记忆。
我尝试着重新归纳了一个“BUT”三角模型如下。

B：Business，代表三要素中的商业可行性。
U：User Experience，代表三要素中的用户期望值。
T：Technique，代表三要素中的技术可能性。
我把Business放在了顶端，因为不管我们承认与否，用户体验和技术都是为了实现商业模式。
谨以此文献给产品工作新人，忘了Larry keeley吧，忘了可行性、可能性、期望值吧，记住“BUT”就好了。
]]></description>
			<content:encoded><![CDATA[<p>昨晚又向一个有意于产品领域的朋友推荐了一下Larry keeley的产品三要素模型。</p>
<p><img class="alignnone size-full wp-image-1885" title="larry-keeley" src="http://www.raydeng.com/wp-content/uploads/2010/03/larry-keeley.png" alt="larry-keeley" width="481" height="340" /></p>
<p>再次意识到，这个三角形，其实不太便于新人记忆。</p>
<p>我尝试着重新归纳了一个“BUT”三角模型如下。</p>
<p><img class="alignnone size-full wp-image-1887" title="product-but-triangle" src="http://www.raydeng.com/wp-content/uploads/2010/03/product-but-triangle.png" alt="product-but-triangle" width="416" height="250" /></p>
<p>B：Business，代表三要素中的商业可行性。</p>
<p>U：User Experience，代表三要素中的用户期望值。</p>
<p>T：Technique，代表三要素中的技术可能性。</p>
<p>我把Business放在了顶端，因为不管我们承认与否，用户体验和技术都是为了实现商业模式。</p>
<p>谨以此文献给产品工作新人，忘了Larry keeley吧，忘了可行性、可能性、期望值吧，记住“BUT”就好了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raydeng.com/%e4%ba%a7%e5%93%81%e5%b7%a5%e4%bd%9c%e7%9a%84%e2%80%9cbut%e2%80%9d%e4%b8%89%e8%a7%92.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>成语接龙纠错</title>
		<link>http://www.raydeng.com/%e6%88%90%e8%af%ad%e6%8e%a5%e9%be%99%e7%ba%a0%e9%94%99.html</link>
		<comments>http://www.raydeng.com/%e6%88%90%e8%af%ad%e6%8e%a5%e9%be%99%e7%ba%a0%e9%94%99.html#comments</comments>
		<pubDate>Sat, 06 Mar 2010 08:46:30 +0000</pubDate>
		<dc:creator>邓熔</dc:creator>
		
		<category><![CDATA[1. 互联网]]></category>

		<category><![CDATA[接龙]]></category>

		<guid isPermaLink="false">http://www.raydeng.com/?p=1879</guid>
		<description><![CDATA[最近学习PHP和Mysql，写了个成语接龙小游戏。
数据表是根据一个网上下载的成语大全txt文件转的，肯定有不少错误，有发现的，请在下面跟帖。
]]></description>
			<content:encoded><![CDATA[<p>最近学习PHP和Mysql，写了个<a href="http://www.raydeng.com/php/jielong.php" target="_blank">成语接龙小游戏</a>。</p>
<p>数据表是根据一个网上下载的成语大全txt文件转的，肯定有不少错误，有发现的，请在下面跟帖。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raydeng.com/%e6%88%90%e8%af%ad%e6%8e%a5%e9%be%99%e7%ba%a0%e9%94%99.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>迁言</title>
		<link>http://www.raydeng.com/%e8%bf%81%e8%a8%80.html</link>
		<comments>http://www.raydeng.com/%e8%bf%81%e8%a8%80.html#comments</comments>
		<pubDate>Thu, 25 Feb 2010 04:46:44 +0000</pubDate>
		<dc:creator>邓熔</dc:creator>
		
		<category><![CDATA[6.生活随笔]]></category>

		<guid isPermaLink="false">http://www.raydeng.com/?p=1877</guid>
		<description><![CDATA[最近，迁迁学了首新歌：
“我在马路边，捡到一个迁迁……”
还有一首诗：
“妈妈妈妈我爱你，就像老鼠上灯台，上灯台下不来，咕噜咕噜滚下来”
还有一些常识：
“男孩子用肚皮尿尿，女孩子用屁股尿尿”
]]></description>
			<content:encoded><![CDATA[<p>最近，迁迁学了首新歌：</p>
<p>“我在马路边，捡到一个迁迁……”</p>
<p>还有一首诗：</p>
<p>“妈妈妈妈我爱你，就像老鼠上灯台，上灯台下不来，咕噜咕噜滚下来”</p>
<p>还有一些常识：</p>
<p>“男孩子用肚皮尿尿，女孩子用屁股尿尿”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raydeng.com/%e8%bf%81%e8%a8%80.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>《阿凡达》的经典评语</title>
		<link>http://www.raydeng.com/%e3%80%8a%e9%98%bf%e5%87%a1%e8%be%be%e3%80%8b%e7%9a%84%e7%bb%8f%e5%85%b8%e8%af%84%e8%af%ad.html</link>
		<comments>http://www.raydeng.com/%e3%80%8a%e9%98%bf%e5%87%a1%e8%be%be%e3%80%8b%e7%9a%84%e7%bb%8f%e5%85%b8%e8%af%84%e8%af%ad.html#comments</comments>
		<pubDate>Thu, 25 Feb 2010 04:39:33 +0000</pubDate>
		<dc:creator>邓熔</dc:creator>
		
		<category><![CDATA[6.生活随笔]]></category>

		<guid isPermaLink="false">http://www.raydeng.com/?p=1875</guid>
		<description><![CDATA[一个好友看完《阿凡达》后，若有所思：
“果然是谁鸟大谁牛逼！”
]]></description>
			<content:encoded><![CDATA[<p>一个好友看完《阿凡达》后，若有所思：</p>
<p>“果然是谁鸟大谁牛逼！”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raydeng.com/%e3%80%8a%e9%98%bf%e5%87%a1%e8%be%be%e3%80%8b%e7%9a%84%e7%bb%8f%e5%85%b8%e8%af%84%e8%af%ad.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>《高性能网站建设指南》笔记</title>
		<link>http://www.raydeng.com/%e3%80%8a%e9%ab%98%e6%80%a7%e8%83%bd%e7%bd%91%e7%ab%99%e5%bb%ba%e8%ae%be%e6%8c%87%e5%8d%97%e3%80%8b%e7%ac%94%e8%ae%b0.html</link>
		<comments>http://www.raydeng.com/%e3%80%8a%e9%ab%98%e6%80%a7%e8%83%bd%e7%bd%91%e7%ab%99%e5%bb%ba%e8%ae%be%e6%8c%87%e5%8d%97%e3%80%8b%e7%ac%94%e8%ae%b0.html#comments</comments>
		<pubDate>Sat, 20 Feb 2010 04:59:54 +0000</pubDate>
		<dc:creator>邓熔</dc:creator>
		
		<category><![CDATA[1. 互联网]]></category>

		<category><![CDATA[前端]]></category>

		<category><![CDATA[性能优化]]></category>

		<guid isPermaLink="false">http://www.raydeng.com/?p=1861</guid>
		<description><![CDATA[
《高性能网站建设指南》，这是一本值得所有网站前端人员、网站开发人员、网站产品经理一读的好书。
《高》首先分析了网站的用户响应时间都花在哪里，然后在这个基础上归纳出提高性能的若干办法，最后以十大网站为例进行了实例解析。这本书，把我们之前关于网站性能的一些散碎知识，体系地串了起来，清楚地阐述了“其所以然”。篇幅不长，认真读的话，两三天也就能读完了。
前端优化的重要性：
前端优化通常只要较少的时间和资源，例如修改Web服务器配置文件、将脚本和样式表放在特定位置、合并图片、合并脚本等，这些修改只需要几个小时或几天；而后端优化通常很麻烦，例如重新设计应用程序架构和代码、查找和优化临界代码路径、添加或改动硬件、对数据库进行分布化等，这些需要花费数周或数月。
只有10%～20%的最终用户响应时间花在了从服务器端获取HTML文档上（后端优化有助于缩短这部分的时间），其余的80%～90%时间花在了下载页面中的所有组件上（前端优化有助于缩短这部分的时间），根据二八原则，我们应该更关注前端优化。[邓熔注：这数据不是猜测的，著者列举了十大网站的具体数据。]
前端优化的举措：
著者列举了14个举措（就是业界著名的网站性能14条），归纳方式有点散乱。我按我认为容易理解的方式，重新归纳如下：

减少http请求次数（http请求次数对性能的影响很大）：

在图片方面，有三个具体方案：图片地图、CSS Sprites、内联图片三种，最值得关注的是CSS Sprites。
脚本和样式表也要合并，虽然合并有悖于模块化开发的原则，但非常有利于性能。
缓存可以使一些http请求转为调用客户端的已有资源。所以，必须关注Expires头的设置。另外，HTTP1.1引入了“Cache-Control”头，可以用“max-age”来设置缓存的时间长度。
移除ETag或者对ETag进行专门配置，以免影响缓存调取。因为默认配置的ETag，和原始服务器的属性相关，当多台服务器时，会导致缓存调取失败。（N台服务器，缓存调取成功的概率是1/N）
对于用户的着陆页（Landing Page），脚本和样式表究竟应该内联（写到html里）还是应该外置？内联有利于减少http请求数，外置有利于缓存。对这个问题的探讨，产生了所谓“加载后下载（Post-Onload Download）”的方案：内联，但在页面加载完成后通过onload事件，动态下载外部脚本和样式表。[邓熔注：除“加载后下载”之外，还有一个“动态内联”的方案，但涉及到Cookie，把问题弄复杂了。“加载后下载”也可用于预先下载用户下一页需要的元素。]


充分利用并行下载：

使用两个主机名。HTTP1.1建议浏览器从每个主机名并行下载两个元素，使用多个主机名能进行更多的并行下载，但由于带宽和CPU速度，过多的并行下载也会降低性能。Yahoo！的研究表明，使用两个主机名性能最优。
将脚本放在底部，以避免对并行下载的影响。因为下载脚本时，并行下载是禁止的。


减小元素的大小：

精简脚本。用JSMin精简外置脚本，这能移除所有的注释以及不必要的空白字符，使脚本减小20%。（内联的脚本也应该尽量精简）
优化CSS。CSS中的注释和空白字符比较少，优化空间在于合并相同的类、移除不使用的类。同时，应避免使用CSS表达式，改用一次性表达式和使用事件处理器。因为CSS表达式会频繁求值，当页面滚动、甚至用户鼠标移动时都会求值。
务必使用Gzip对脚本、样式表、html文档进行压缩，这通常能减小60%的数据量。删除注释、缩短URL等虽然也有用，但费事得多且效果微弱。


其他：

避免没必要的重定向（例如在URL的结尾必须出现“/”但没有出现时），因为在重定向完毕并且html文档下载完毕之前，没有任何东西展示给用户；对于为了跟踪流量而使用的重定向，建议改用“referer”或“beacon + XMLHttpRequest”；对于为了转换新旧网站而进行的重定向，著者在P81上提供了解决方案。[邓熔注：关于流量监控方面，是否改用其他方案，还需要综合评估方案相应的数据统计易用性；关于P81上的解决方案，我不知道是否对SEO会有影响，改善性能的时候，也需要综合平衡SEO。]
使用CDN（Content Delivery Network），缩小内容和用户的距离。
将样式表放在顶部，这样能使内容在浏览器中逐步呈现。尽管整个页面的加载总耗时可能并无变化，但逐步呈现内容，能使用户感觉更快。[邓熔注：这也是滚动条的作用，有心理学依据。]
适当减少主机名，以减少DNS查找。[邓熔注：这一点在实际操作中，需要综合平衡SEO策略、运维策略等。]
P96-102页探讨了Ajax下的优化问题。



附注：著者推荐了四个工具，HTTP请求图表使用IBM Page Detailer，响应时间的测量使用Gomez的Web监视服务，页面中的脚本及CSS分析使用Firebug，分析页面性能使用YSlow。
]]></description>
			<content:encoded><![CDATA[<p><a title="高性能网站建设指南" href="http://t.douban.com/lpic/s3436216.jpg"><img title="点击看大图" src="http://t.douban.com/mpic/s3436216.jpg" alt="高性能网站建设指南" /></a></p>
<p>《<a href="http://www.douban.com/subject/3132277/">高性能网站建设指南</a>》，这是一本值得所有网站前端人员、网站开发人员、网站产品经理一读的好书。</p>
<p>《高》首先分析了网站的用户响应时间都花在哪里，然后在这个基础上归纳出提高性能的若干办法，最后以十大网站为例进行了实例解析。这本书，把我们之前关于网站性能的一些散碎知识，体系地串了起来，清楚地阐述了“其所以然”。篇幅不长，认真读的话，两三天也就能读完了。</p>
<p><strong>前端优化的重要性：</strong></p>
<p>前端优化通常只要较少的时间和资源，例如修改Web服务器配置文件、将脚本和样式表放在特定位置、合并图片、合并脚本等，这些修改只需要几个小时或几天；而后端优化通常很麻烦，例如重新设计应用程序架构和代码、查找和优化临界代码路径、添加或改动硬件、对数据库进行分布化等，这些需要花费数周或数月。</p>
<p>只有10%～20%的最终用户响应时间花在了从服务器端获取HTML文档上（后端优化有助于缩短这部分的时间），其余的80%～90%时间花在了下载页面中的所有组件上（前端优化有助于缩短这部分的时间），根据二八原则，我们应该更关注前端优化。[邓熔注：这数据不是猜测的，著者列举了十大网站的具体数据。]</p>
<p><strong>前端优化的举措：</strong></p>
<p>著者列举了14个举措（就是业界著名的网站性能14条），归纳方式有点散乱。我按我认为容易理解的方式，重新归纳如下：</p>
<ol>
<li>减少http请求次数（http请求次数对性能的影响很大）：
<ul>
<li>在图片方面，有三个具体方案：图片地图、CSS Sprites、内联图片三种，最值得关注的是CSS Sprites。</li>
<li>脚本和样式表也要合并，虽然合并有悖于模块化开发的原则，但非常有利于性能。</li>
<li>缓存可以使一些http请求转为调用客户端的已有资源。所以，必须关注Expires头的设置。另外，HTTP1.1引入了“Cache-Control”头，可以用“max-age”来设置缓存的时间长度。</li>
<li>移除ETag或者对ETag进行专门配置，以免影响缓存调取。因为默认配置的ETag，和原始服务器的属性相关，当多台服务器时，会导致缓存调取失败。（N台服务器，缓存调取成功的概率是1/N）</li>
<li>对于用户的着陆页（Landing Page），脚本和样式表究竟应该内联（写到html里）还是应该外置？内联有利于减少http请求数，外置有利于缓存。对这个问题的探讨，产生了所谓“加载后下载（Post-Onload Download）”的方案：内联，但在页面加载完成后通过onload事件，动态下载外部脚本和样式表。[邓熔注：除“加载后下载”之外，还有一个“动态内联”的方案，但涉及到Cookie，把问题弄复杂了。“加载后下载”也可用于预先下载用户下一页需要的元素。]</li>
</ul>
</li>
<li>充分利用并行下载：
<ul>
<li>使用两个主机名。HTTP1.1建议浏览器从每个主机名并行下载两个元素，使用多个主机名能进行更多的并行下载，但由于带宽和CPU速度，过多的并行下载也会降低性能。Yahoo！的研究表明，使用两个主机名性能最优。</li>
<li>将脚本放在底部，以避免对并行下载的影响。因为下载脚本时，并行下载是禁止的。</li>
</ul>
</li>
<li>减小元素的大小：
<ul>
<li>精简脚本。用JSMin精简外置脚本，这能移除所有的注释以及不必要的空白字符，使脚本减小20%。（内联的脚本也应该尽量精简）</li>
<li>优化CSS。CSS中的注释和空白字符比较少，优化空间在于合并相同的类、移除不使用的类。同时，应避免使用CSS表达式，改用一次性表达式和使用事件处理器。因为CSS表达式会频繁求值，当页面滚动、甚至用户鼠标移动时都会求值。</li>
<li>务必使用Gzip对脚本、样式表、html文档进行压缩，这通常能减小60%的数据量。删除注释、缩短URL等虽然也有用，但费事得多且效果微弱。</li>
</ul>
</li>
<li>其他：
<ul>
<li>避免没必要的重定向（例如在URL的结尾必须出现“/”但没有出现时），因为在重定向完毕并且html文档下载完毕之前，没有任何东西展示给用户；对于为了跟踪流量而使用的重定向，建议改用“referer”或“beacon + XMLHttpRequest”；对于为了转换新旧网站而进行的重定向，著者在P81上提供了解决方案。[邓熔注：关于流量监控方面，是否改用其他方案，还需要综合评估方案相应的数据统计易用性；关于P81上的解决方案，我不知道是否对SEO会有影响，改善性能的时候，也需要综合平衡SEO。]</li>
<li>使用CDN（Content Delivery Network），缩小内容和用户的距离。</li>
<li>将样式表放在顶部，这样能使内容在浏览器中逐步呈现。尽管整个页面的加载总耗时可能并无变化，但逐步呈现内容，能使用户感觉更快。[邓熔注：这也是滚动条的作用，有心理学依据。]</li>
<li>适当减少主机名，以减少DNS查找。[邓熔注：这一点在实际操作中，需要综合平衡SEO策略、运维策略等。]</li>
<li>P96-102页探讨了Ajax下的优化问题。</li>
</ul>
</li>
</ol>
<p>附注：著者推荐了四个工具，HTTP请求图表使用<a href="http://alphaworks.ibm.com/tech/pagedetailer/">IBM Page Detailer</a>，响应时间的测量使用<a href="http://www.gomez.com/">Gomez</a>的Web监视服务，页面中的脚本及CSS分析使用<a href="http://www.getfirebug.com/">Firebug</a>，分析页面性能使用<a href="http://developer.yahoo.com/yslow/">YSlow</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.raydeng.com/%e3%80%8a%e9%ab%98%e6%80%a7%e8%83%bd%e7%bd%91%e7%ab%99%e5%bb%ba%e8%ae%be%e6%8c%87%e5%8d%97%e3%80%8b%e7%ac%94%e8%ae%b0.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
