昨晚又向一个有意于产品领域的朋友推荐了一下Larry keeley的产品三要素模型。

larry-keeley

再次意识到,这个三角形,其实不太便于新人记忆。

我尝试着重新归纳了一个“BUT”三角模型如下。

product-but-triangle

B:Business,代表三要素中的商业可行性。

U:User Experience,代表三要素中的用户期望值。

T:Technique,代表三要素中的技术可能性。

我把Business放在了顶端,因为不管我们承认与否,用户体验和技术都是为了实现商业模式。

谨以此文献给产品工作新人,忘了Larry keeley吧,忘了可行性、可能性、期望值吧,记住“BUT”就好了。

,

最近学习PHP和Mysql,写了个成语接龙小游戏

数据表是根据一个网上下载的成语大全txt文件转的,肯定有不少错误,有发现的,请在下面跟帖。

高性能网站建设指南

高性能网站建设指南》,这是一本值得所有网站前端人员、网站开发人员、网站产品经理一读的好书。

《高》首先分析了网站的用户响应时间都花在哪里,然后在这个基础上归纳出提高性能的若干办法,最后以十大网站为例进行了实例解析。这本书,把我们之前关于网站性能的一些散碎知识,体系地串了起来,清楚地阐述了“其所以然”。篇幅不长,认真读的话,两三天也就能读完了。

前端优化的重要性:

前端优化通常只要较少的时间和资源,例如修改Web服务器配置文件、将脚本和样式表放在特定位置、合并图片、合并脚本等,这些修改只需要几个小时或几天;而后端优化通常很麻烦,例如重新设计应用程序架构和代码、查找和优化临界代码路径、添加或改动硬件、对数据库进行分布化等,这些需要花费数周或数月。

只有10%~20%的最终用户响应时间花在了从服务器端获取HTML文档上(后端优化有助于缩短这部分的时间),其余的80%~90%时间花在了下载页面中的所有组件上(前端优化有助于缩短这部分的时间),根据二八原则,我们应该更关注前端优化。[邓熔注:这数据不是猜测的,著者列举了十大网站的具体数据。]

前端优化的举措:

著者列举了14个举措(就是业界著名的网站性能14条),归纳方式有点散乱。我按我认为容易理解的方式,重新归纳如下:

  1. 减少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,把问题弄复杂了。“加载后下载”也可用于预先下载用户下一页需要的元素。]
  2. 充分利用并行下载:
    • 使用两个主机名。HTTP1.1建议浏览器从每个主机名并行下载两个元素,使用多个主机名能进行更多的并行下载,但由于带宽和CPU速度,过多的并行下载也会降低性能。Yahoo!的研究表明,使用两个主机名性能最优。
    • 将脚本放在底部,以避免对并行下载的影响。因为下载脚本时,并行下载是禁止的。
  3. 减小元素的大小:
    • 精简脚本。用JSMin精简外置脚本,这能移除所有的注释以及不必要的空白字符,使脚本减小20%。(内联的脚本也应该尽量精简)
    • 优化CSS。CSS中的注释和空白字符比较少,优化空间在于合并相同的类、移除不使用的类。同时,应避免使用CSS表达式,改用一次性表达式和使用事件处理器。因为CSS表达式会频繁求值,当页面滚动、甚至用户鼠标移动时都会求值。
    • 务必使用Gzip对脚本、样式表、html文档进行压缩,这通常能减小60%的数据量。删除注释、缩短URL等虽然也有用,但费事得多且效果微弱。
  4. 其他:
    • 避免没必要的重定向(例如在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

,

作为当当的钻石级会员,今天总算享受到了特别的礼遇。
当当在送过来的书之外,夹带了一个礼盒,令我颇为惊喜!

打开一看,感动得我鼻血都飞溅了出来
—— 哇塞,清一色女士用品!
几个小件OLAY化妆品之下,还羞涩地放着一包让我“安心一整夜”的“护舒宝”!

太贴心了!太雷人了!这是一个绝杀!卓越也许会后悔的,它一定会后悔的,它没有送我护舒宝,它太保守了!它失去了自己的勇气,面对当当划时代的创意,它终于自食其果。胜利属于意大利,属于当当,属于所有热爱护舒宝的人!伟大的当当,它知性而幽默,它时尚而俏皮!当当万岁!再见!我该回去“安心”地睡觉了。

很多年前就看过《Don’t make me think》的第一版,第二版在书架上很久了,这两天才翻看。温故知新,笔记如下:

  1. 某个东西越是需要投入大量时间(或者看起来会这样),它将来用到的可能性越小。
  2. 可用性第一定律:别让我思考。
  3. 我们使用web的第一个事实:我们不是阅读,而是扫描,一般会关注“与手头任务有关的”或者“当前或接下来的个人兴趣”或者“长久的兴趣,如免费、美女等”这些文字和短语。(老邓注:所以,别老想着在首页上放一大段自吹自擂的话了,那是自恋)
  4. 我们使用web的第二个事实:我们不作最佳选择,而是满意即可。
  5. 我们使用web的第三个事实:我们不是追根究底,而是勉强应付,很少有人花时间读说明书,大家总是贸然前进勉强应付,一旦发现某个方法能够用,即使很难用,也不愿意再主动去找另一种更好的方法,这不是智力问题,而是并不认为这个网站对自己有那么的重要。(老邓注:所以,别老想着用Flash去制作一个“预订流程说明”了,那是单恋)。
  6. 让页面不易理解的一个最大原因是视觉噪声,设计的时候可以先假定所有内容都是噪声,除非得到证明它不是。
  7. 大多数页面上的大部分文字都不过是在占地方,因为没有人打算阅读它们。但它们确实在那儿,所以会暗示你可能需要阅读它们,这样常常使得页面看起来难度更高了。去掉没有人看的文字能降低页面噪声,从而让有用的内容更突出,人们更加愿意阅读。(老邓注:这就是设计中常说的“少即是多”,加文字的时候需要反问“是想给客户看的还是只是为了立此为证以便后面和客户理论?”)P34页有一个非常好的精简案例,精简幅度60%。
  8. 如果你想为我提供选项来调整搜索的范围,在它有用的时候再提供给我——当我到达搜索结果页面,发现搜索全部内容得到的结果太多的时候,这时就需要缩小搜索范围。
  9. 共有区域的悲剧(The Tragedy of the Commons)。任何共享的资源(共有区域)都会因为过度使用而遭到破坏。(老邓注:这就是首页上为什么广告越来越多、内容越来越乱的原因)
  10. 从焦点小组了解到的是你在设计网站之前就应该了解的,别把焦点小组和可用性测试弄混了。详细的区别见P100页。
  11. 每轮可用性测试只测试三名用户,以保证尽快进行下一轮,多进行几轮。测试对象是谁并不重要,对于大部分网站而言,你只需要懂得上网基本知识的用户就可以了。
  12. 推荐屏幕录制软件Camtasia,它是TechSmith公司的产品,和SnagIt出于同一家公司。只需要300美元。再加1000美元,可以买到该公司的另一个产品Morae,它允许观察者在另一台电脑上看到真实测试情况。
  13. 测试中有两部分内容:理解测试,看看用户是否理解这个网站;任务测试,看看用户是怎么完成一些任务的。
  14. P109-P113页是很值得一读的用户测试对话范例。
  15. P115页,关于Kayak(皮划艇)问题。Kayak问题总是存在,因为有些含混之处总是没有简单的解决办法,比如“港澳台酒店”应该放在“国内酒店”里还是“国际酒店”里,可能我们会觉得放到两个分类里。笔者的建议是一个项目最好只在一个地方存在,其他位置用链接“参见……”来标出。
  16. 要抵制添加的冲动。当在测试时清楚地看到人们没有理解某些内容时,大部分人的第一反应是增加一些内容,例如一些注释或一些指导说明。而正确的解决方案往往是去除某个(一些)让人混淆的内容,而不是增加另一些干扰。
  17. 隐藏客户服务电话、运费、价格信息,会降低客户好感。隐藏电话的初衷是希望用户不打电话,通常这样做会降低用户的好感程度,而且他们找到号码并拨打时会更恼火。另一方面,如果电话很容易看到,他们知道在需要的时候可以拨打,会让人们在网站上停留的时间更长,从而增加了他们自己解决问题的可能性。
  18. 人们喜欢对网站的外观发表意见,但是几乎没有人会因为觉得它不够好看而离开。(老邓注:不过,根据《情感化设计》,更赏心悦目的网站,能增加用户忍受度,使用户更加愿意探索)
  19. 向用户询问不必要的信息可能产生三个后果:您得到的表单更少;您常常无法得到真实数据;您的网站形象下降。
,