2012年11月12日星期一

搜索引擎是如何判断有价值的文章

  有很多人咨询过笔者(Mr.Zhao),百度如何判断伪原创和原创?百度喜欢什么样的文章?什么样的文章比较例如获得长尾词排名?等等诸如此类的问题。面对这些问题,我常常不知如何回答。如果我给一个比较大方向一些的答案,例如要重视用户体验、要有意义等等,那么提问者会觉得我在应付他,他们往往抱怨说这些太模糊。可是我也没法再给出具体的内容,毕竟我不是百度,具体算法我又何德何能的为你们指点江山呢?

  为此,我开始写这个“如果是我”系列的文章。在这一系列文章里,我假设如果是我绞尽脑汁的来为网民提供较好的搜索服务,我会怎么做,我会怎么对待文章内容、如何对待外链、如何对待网站结构等等诸如此类的站点元素。当然,本人技术有限,我只能写一点我稍微理解的东西。而百度以及其它的商业搜索引擎,他们有大量比我优秀的人才,相信他们的算法以及处理问题的方式会比我完善很多,而我之所以写这些,无外乎抛砖引玉,希望大家看后,心里有一个大概。毕竟在SEO的道路上走过一段时间后,没有谁能够当谁的老师,一些观点仅供参考。

  ************重要的声明*******************************

  在此,我要郑重声明,这个系列文章中所有涉及到的思想、算法与程序,均非本人所写,全部是我从一些公开的资料里搜集而得的。同时,相信大家也能理解,如果这些免费公开的东西都能做到如此程度,那么那些商业机密就更不用提了。

  ******************************************************

  好的,现在开始。

  如果是我,我会喜欢什么样子的文章呢?我会喜欢我的用户喜欢的文章,如果硬要加判定标准,那无外乎是两种:1.原创且用户喜欢。2.非原创且用户喜欢。在这里,我的态度很明显,伪原创就是非原创。那么用户喜欢什么样的文章呢?很显然,一些新观点、新知识往往是用户喜欢的,也就是说通常原创文章都是用户喜欢的,而且即便用户不喜欢,原创站点作为新鲜内容的制造者,也应该受到一定的保护。那么非原创的文章用户就一定不喜欢吗?诚然否也。一些站点,其内容往往是经过搜集整理后聚合而成的,那么这些站点对用户来说就是有价值的,其相对应的文章理应获得较好的排名。

  由此可见,我需要重视两类文章即可。一是原创文章,二是有价值的信息聚合站点下的文章。

  首先要明确一点,本文探讨范围仅限内容页,而非专题页、列表页和首页。

  那么我在甄别这两类文章之前,我需要先进行信息的采集。本文对于spider程序部分不进行阐述。当spider程序下载下来网页信息后,在内容处理的模块中,我需要先对内容除噪。

  内容除噪,并非大家经常性的误以为仅仅除去代码而已。对于我来说,我还要出去页面部分非正文内容的文字。比如导航条、比如底部文字以及各个文章列表。将它们的影响除去后,我将得到一段仅仅包含网页正文内容的文本段落。写过采集规则站长朋友应该知道,这个并不难。但搜索引擎毕竟是一款程序,不可能针对每个站写个类似于的采集规则的东西,所以我需要建立一套除噪算法。

  在此之前,我们先明确我们的目的。

SEO

  上图中很明显内容1是用户最为需要的,内容2是用户可能感兴趣的,其余均是无效的噪音。那么针对于此,我们可以发现如下几特征:

  1.所有的调用列表全部是在一个信息块里,这个信息块绝大部分是由<a>标签组成,即便有游离于<a>标签的内容,其文字也基本是固定的,且在站内页面中存在大量重复,较为容易判断。

  2.内容2一般紧邻着内容1。而且内容2中的链接锚文本,与内容1存在相关性。

  3.内容1部分,是有文字文本内容和<a>标签混合而成,且在通常情况下,文本文字内容在网站网页集合中具有唯一性。

  那么,针对于此,我采用广为人知的标签树方式,将内容页进行分解。

  从网页的标签布局上来看,网页是通过若干的信息块来提供内容的,而这些信息块又是由特定的标签规划出来的,常见的标签有<div><ul><li><p><table><tr><td>等,我们依照这些标签,将网页费解为树状结构。

  SEO

  上图是我手绘的简单的标签树,通过这种方式,我可以非常轻松的识别出各个信息块。然后我设定一定阙值A为内容比重阙值。内容比重阙值为信息块中文本字数与<a>标签出现此处的比值。我设定当网页中信息块内容比重阙值大于A时,才会被我列为有效内容块(此举是为了杜绝过分的多内链,因为如果一篇文章布满内链,则不利于用户体验),然后我再比对内容块中的文本,当其具有唯一性时,此一个或多个内容块的集合,即为我所需要的“内容1”。

   

  那么内容2我要如何处理呢?在讲解处理内容2之前,我先讲解一下内容2的意义。正如我先前所说,如果是一个注重用户体验的聚合性网站,那么他的作用是将现有的互联网内容经过精心的分类与关联,来方便用户更好、更有效的阅读。针对这样的站点,即便其文章不是原创而是从互联网上摘抄的,我也会给予其足够的重视与排名,因为它良好的聚合内容往往更能满足用户的需求。

  那么针对聚合站点,我可以通过“内容2”来进行粗略的判断。简而言之,如果是一个良好的聚合站点,首先其内容页必须存在内容2,同时内容2必须占重要部分。

  好了,识别内容2很简单,对于内容比重阙值低于某个特定值的信息块,我全部判断为链接模块。我将内容1通过某些方式(具体方式本文后半部分讲解),提取出主题B。我将链接模块中的所有<a>标签的锚文本分别进行分词,如果所有的锚文本均与主题B相符,则将此链接模块判定为内容2。设定链接阙值C,链接阙值为内容2中<a>标签出现次数除以所有链接模块所出现的<a>标签次数所得的比重,若大于C,则此网站可能为聚合网站,针对内容排名计算时会引用聚合站点特定的算法。

  ******************拓展阅读1开始***************************************

  我相信很多SEO从业者刚接触这行时,就听说过一件事,就是内容页面导出链接要具有相关性。还有一件事,就是页面下面要有相关阅读,来吸引用户纵深点击。同时应该还听人讲过,内链要适中,不可太多等。

  但很少有人会说为什么,而越来越多的人因为不明其内在道理,而渐渐忽视了这些细节。当然,以前的一些搜索引擎算法在内容上的注重程度不够,也起到了推波助澜的作用。但是,如果从阴谋论的角度上来看,我可以假设出这么一个道理。

  绝大部分用户的搜索页面,第一页只有10个结果,除去我自家产品,往往仅剩下7个左右,一般用户最多只会点击到第3页,那么我需要的优质站点其实不到30个就可以最大限度的满足用户体验。那么经过3-5年的布局,逐渐筛选出一些耐得住寂寞和认真做细节的站,这时候我再将这一部分算法进行调整,进而筛选出这些优质站点,推送给用户。当然,在做的过程中还有更多的参考因素,比如域名年龄、JS数量,网站速度等。

  ******************拓展阅读1结束***************************************

  ******************拓展阅读2开始***************************************

  你们说,为什么当站文章中有大量相同时,会快速引起搜索引擎惩罚呢?这里我说的不是摘抄与原创的问题,而是你站内自己和自己的文章重复。之所以搜索引擎反应这么快,同时惩罚严厉,根本原因就是在你的文章中,他提取不到内容1。

  ******************拓展阅读2结束***************************************

  好,经过这一系列处理,我已经获得了内容1与内容2了,下面该进行原创识别的算法了。

  现在基本上搜索引擎对于原创的识别,在大面上采用的是关键词匹配结合向量空间模型来进行判断。Google就是这么做的,在其官方博客有相应的文章介绍。这里,我就做个大白话版本的介绍,争取做到简单易懂。

  那么,我通过分析内容1,得到内容1中权重最高的关键词k,那么按照权重大小进行排序,前N个权重最高的关键词的集合我命名为K,则K={k1,k2,……,kn},则每一个关键词都会对应一个其在页面中获取到的权重特征值,我将k1对应的权重特征值设定为t1,则前N个权重关键词对应的特征值集合则为T={t1,t2,……,tn},那么我们有了这个特征项,就能计算出其相对应的特征向量W={w1,w2,……,wn}。接着我将K拼成字符串Z,同时MD5(Z)则表示字符串Z的MD5散列值。

  那么假定我判定的两个页面分别是i与j。

  则我计算出两个公式。

  1.当MD5(Zi)=MD5(Zj)时,页面i与页面j完全相同,判断为转载。

  2.设定一个特定值α

SEO

  当0≤α≤1的时候,我判定页面相似为重复。

  由此,对于原创文章的判断就结束了。好了,苦逼烦闷的枯燥讲解告一段落,下面我用大白话再重新复述一遍。

  首先,你的内容一模一样,一个字都不带改的,那肯定是摘抄的啊,这时候MD5散列值就能迅速的判断出来。

  其次,很多SEO他们懒,进行所谓的伪原创,你说你伪原创时插入点自己的观点与资料也成,结果你们就是改个近义词什么的,于是我就用到了特征向量,通过特征向量的判断,把你们这些低劣的伪原创抓出来。关于这个,判断思想很简单,你权重最高的前N个关键词集合极为相似的时候,判断为重复。这里所谓的相似包括但不仅仅局限于权重最高的前N个关键词重合,于是构建了特征向量,当对比的两个向量夹角与长度,当夹角与长度的差异度小于某个特定值的时候,我将其定义为相似文章。

  ********************备注1开始*************

  一直关注google反作弊小组官方博客的朋友们,应该看过google关于相似文章判断算法的那篇博文,在那篇文章中,其主要使用的是余弦定理,就是主要计算夹角。不过后来Mr.Zhao又看了好几篇文献,觉得那篇博文应该仅仅是被google抛弃后才解密的,现在大体算法的趋势,应该是计算夹角与长度,所以选择现在给大家看的这个算法。

  ********************备注1结束*************

  好的,这里我们注意到了几个问题。

  1.α被判定为重复时的取值范围是否可变?

  2.内容中如何提取出关键词?

  3.内容中关键词的权重值是如何赋予的?

  下面我来逐一解答。

  先说α判断重复时的取值范围,这个范围是绝对可变的。随着SEO行业的蓬勃发展,越来越多人想要投机取巧,而这是搜索引擎不能接受的。于是就会隔几年进行一次算法大更新,而且每一次算法大更新,都会预告会影响百分之多少的搜索结果。那这影响结果的百分数是如何计算出来的?当然不是一个一个数的,在内容方面(其它方面我会在其它文章中阐述),是通过调整α判断相似度时的取值空间变化来计算的,每一个页面在被我处理是,我所计算出的α值都会存储在数据库中,这样我在每次算法调整时,风险都可做到最大的控制。

  那么如何提取关键词?这就是分词技术了,我待会再讲。页面内不同关键词的权重赋值也在待会讲。

  关于文章相似性,简而言之,就是以前大家改一改文章,比如“越来越多SEO开始重视起文章的质量。”改为“高质量的文章被更多的SEO所重视”,这个在以前没有被识别出来,不是我没有识别你的技术,而是我放宽范围,我可以随时在需要的时候,通过设定参数的取值范围,来重新判断页面价值。

  好,如果这里你有些糊涂,别着急,我接着慢慢的说。上述算法里,我需要知道前N个重要的关键词以及其所对应的权重特征值。那这些数值我如何获取呢?

  首先,要先分词。针对于分词,我先设定一个流程,然后采用正向最大匹配、逆向最大匹配、最少切分等方式中的一种来进行分词。这个在我会在我的博文《常见的中文分词技术介绍》中讲解,在此不再赘述。通过分词,我得到了这个页面内容1的关键词集合K。

  在识别内容1的时候,我就已经构建了标签树,那么我的内容1实际上已经被标签树拆解为由段落组成的树状结构了。

SEO

  上图是内容1的标签树。在这里,我遇到一个问题,那就是针对标签树权重赋值的时候,应该是面向整个页面的标签树,还是仅仅面向内容1的标签树的?

  很多朋友可能会认为,既然是针对内容1的关键词进行赋值判断,那只处理内容1就好了。其实不然。一款搜索引擎,其处理的数据少说也要千万级别的,所以搜索引擎对于高效率的代码与算法要求是极高的。

  而正常情况下,一个网站的网页是不可能孤立存在的,在对一个页面针对某一个关键词进行排序的时候,除了要考虑站外因素外,我需要考虑站内权重的继承,那么在考虑站内权重继承的时候,我必然避不开内链的计算,同时内链本身也应该有不同的权重区分,而内链权重计算时,我肯定要考虑其所在页面与其相关性。既然如此,我就应该一次性对整个页面所有的信息块进行权重分配,这样才是高效率,同时也充分体现了内容与链接相关性的重要性。用一句大家常能在网上看见的话来说,就是相关性决定了链接投票的有效性。

  好,既然确定下是整个标签树进行权重赋值,那么下面开始。

  首先,我要确定重要关键词的词库。重要关键词的确定通过两种方法:

  1.不同行业的重点关键词。

  2.针对句子结构与词性的重点关键词。

  每一款较为成熟的商业搜索引擎,针对不同行业,其算法都会有所不同。而行业的判断,就是依托于各个行业的关键词库进行的。最近百度针对一些特定关键词,在搜索结果中返回网站的备案信息和认证信息,由此可见,词库其实早已存在。

  那么,句子结构又从何说起呢?中文句子不外乎主谓宾定状补几个结构组成,而词性也仅有名词、动词、介词、形容词、副词、拟声词、代词、数词。相信很多人刚做SEO的时候,肯定听说过搜索引擎除噪的时候,会去掉的地得和代词,其实这种说法大面上对,但也并非完全准确。从根本原理来说,是针对句子结构与词性而给予处理时的态度不同。我们可以肯定,主语一定是最重要的部分,往往一句话主语变了,其针对的事物和所要表述的意义也就往往不同。而针对的事物若有变化,极有可能导致这篇文章所涉及的行业有所变化。故而,主语肯定是我所需要的重点词。这里为什么我没有说在主语部分去掉代词呢?因为往往去掉主语会使得句子失真,所以我要保留主语所有属性的词,即便是看起来没有意义代词。

  那么定语呢?往往定语决定了一个事物的程度或性质,所以定语也很重要。但问题就来了,对于用户来说,美丽的画与漂亮的画是同一个意思,而美丽的画与难看的画却是相反的意思。同时其它句子结构例如补语作为句子的补充,往往承载了地点、时间等信息量,那也很重要。若是如此,那我又要如确定我认为最主要的关键词呢?

  这个问题确实很复杂,但其实能够解决它的办法既简单又困难。那就是时间与数据的积累。也许有人会觉得我这么说是不负责任,但事实却是如此。倘若这个世界上没有SEO、没有伪原创,那么搜索引擎可以高枕无忧,因为没有伪原创的干扰,搜索引擎可以迅速的识别出转载内容,然后非常轻松的计算排名。但有了伪原创之后,其实每一次内容判断算法的调整,更多的是对目前一些常见的伪原创做法进行识别。正因为有伪原创的存在,如果是我设计策略,我会设计出两个词库,词库A是用于区分内容所从属的行业,词库B则是针对不同行业,然后在设置若干规则与这两个子词库进行关联。

  举例。比如伪原创猖獗的医疗SEO,通过一些病种词,可以迅速识别出其内容属于医疗行业。那么在选择的时候,鉴于某些原因,我将严厉对待医疗,则我认为医疗文章内容重要的仅仅是充当主语的名词,然后在充当主语的名词中,病种名词作为最优先,进而进行优先级排序,在排序中若主语名词数大于N,则按照其所处的信息块距离根节点最近最有先原则,并且同一名词仅选择一次,然后选取前N个重要关键词作为赋值的初始节点,进行权重赋值。

  那么在赋值的时候,我设定赋值系数e,我可以判断在这几个被赋值的节点上,根据关键词种类来确定赋值的比重。比如与title中重复的病种名词,其对应的系数为e1,与title中不对应的病种名词系数为e2,其它名词系数为e3。然后我开始遍历标签树。

  整个页面自身权重为Q,按照前N个关键词的顺序依次遍历。那么我的遍历原则如下:

  1.第一次遍历时,第一个重要节点权重值为Qe1,其父节点权重值为Qe1*b,其子节点权重值为Qe1*c,然后以此原则继续遍历父节点的父节点及其父节点的子节点和子节点的子节点及其子节点的父节点。

  以下举例。假定Q为1,e1为3

  则一开始如下图

SEO

  然后假定a为上一个数的平方根,b为上一个数的立方根。则如下图

SEO

  接着开始遍历其它节点。

SEO

  当整个网页标签树的所有节点全部被赋值后,第一次遍历结束。这时候开始第二次遍历,注意这时候与e2相乘的就不是Q了,而是第二个重要关键词所在节点的当前权重值。

  这样经过N此遍历,每一个信息块都会有自己相对应的权重数值,然后我单独提取内容1的信息块,具体上文中有画图,在此就不再多画了。将内容1量化。量化后,我就能够得到上文中我所需要的权重特征值T={t1,t2,……,tn}。由此,这个算法层就首位相应的完善了。量化公式很多,我在此就不举例了,因为这个举例毫无意义,我又不是真写搜索引擎。

  *******拓展阅读3开始************************************

  链接模块的权重,将最后被超链接传到至其所指向的页面中。这也说明了不同位置的链接,其传导的权重各不相同。内链的位置决定了内链的权重继承。而大家经常听到的,内链上下文要出现关键字,其实就是这个算法所衍生出的现象。

  *******拓展阅读3结束************************************

  至此,这个算法层基本结束了。

  ******声明1开始*****************************************

  1.我再次强调,文中算法不是我写的,是我借鉴别人的,借鉴谁的?我忘了……,好多好多。

  2.所有有经验的商业搜索引擎,其算法肯定是分层的,绝对不会仅仅是一个算法层,所以这个单一的算法层,对排名来说可以说影响很大,但绝对不是完全按照这一个算法层来进行排名的。

  3.本文首发Mr.Zhao的SEO博客,转载请保留原文出处:http://www.seozhao.com/379.html

  ******声明1结束*****************************************

  那么大致了解了这一个层的算法之后,对我们的实际操作有什么具体的帮助吗?

  1.我们可以有效知道,如何合理的设置内容页的栏目布局,使得我们在转载文章时,让百度知道我们在转载文章的同时,为了更好的用户体验而聚合了各方观点的文章。

  2.我们可以更好的知道,哪些文章会被判定为相似文章。

  3.这个是最重要的一点,就是我们能够更好的对内容页面进行布局。真正的白帽SEO,在对站内进行梳理时,其站内栏目在页面上的布局尤为重要,有经验的SEO能够有效的利用页面的权重继承,进而增加长尾排名,这对于门户网站或是B2C等拥有大量内容页的网站来说,非常重要。当然,在长尾排名方面,对页面权重传输的了解与布局仅仅是基础,今后我会在后续文章中,在对栏目层级设置与权重传递方面,针对我的观点进行阐述。

  4.明白内链权重继承的大致原理。

Google服务在中国异常

  Google的网络透明度报告显示,从星期五早上开始,Google在中国的信息流量急剧下降,中国用户几乎无法访问所有的Google服务。

  来自中国的一些用户报告说,无法使用Google的搜索引擎和电邮信箱。屏蔽开始于周五(11月9日)下午五点左右,干扰方法是DNS污染,周六(11月10日)Google的中国流量开始恢复正常。

  对于中国用户来说,上Google是个技术活,目前Google原先那个200的hosts已经恢复了,我用了几天,感觉比较稳定了,我现在开始恢复使用这个Hosts了。

  自从谷歌退出中国以来,谷歌的市场正在下降,在中国的市场调查人员表示,在中国,谷歌的占有四分一的搜索市场,其地图搜索下跌至第六的位置,近两位数的百分比跌幅。

  从CNZZ10月统计中表示,页面访问量和独特的访客大约4.5%。一个网络巨头,在中国的市场仅有四分之一。百度大约73%,搜狗7.8%和奇虎360的9.7%。奇虎进入搜索市场中,迅速崛起,以直接影响了谷歌的市场份额。

  从易观国际统计看到了谷歌地图从第二到第六位,下降至17.5%的份额只有9%。数据显示,作为苹果地图整体解决方案提供商,高德地图第三季度仍处于领先地位,占据25.9%的份额;百度、图吧紧随其后;而因为牌照问题,特别是9月初苹果新发布的iOS中改用自有地图,谷歌地图份额直线下降,份额仅为9.0%。

2012年11月9日星期五

一个门外汉的产品设计漫谈

  本文纯属门外汉YY的结晶,如有低级问题,敬请行家里手批评指正;如果文中煞有介事得出的结论与设计学科的经典理论不谋而合,则不胜荣幸。本文目的是闲侃软件产品尤其是互联网产品的设计,多处以传统产品甚至不登大雅之堂的东东来举例,这顺带也在证明设计无处不在,以及软件设计与传统设计在理念和方法上融会贯通。

  设计无处不在,设计决定一切

  设计无处不在,人类世界是被设计出来的。如果你细心观察,可以在生活的时时处处发现优秀的设计及其蕴含的智慧。现在低头看看你键盘上F、J两个键上面的小疙瘩;笔记本电脑电源按钮(不是凸出的,而是凹或者至少是平的);鼠标的滚轮(没有设计成一个向上翻页和向下翻页的按钮);苹果笔记本触摸板的多点触控;衣服和包包上的拉链(容易拉开和闭合,密封性很好);还有天朝独有的防插队机(一举解决了从出口插队、在窗口簇拥的两大问题,简单可依赖)。

一个门外汉的产品设计漫谈

防插队机

  然而,令人遗憾的是,糟糕的设计也随处可见。比如,初期的无线键鼠的信号接收器都是几厘米长,如果是配合笔记本电脑使用时,你必须经常插拔,因为它太长,当把笔记本放入包中时容易折到所以必须拔下来。更加不爽的是,鼠标上往往还没有收纳仓可以把接收器放起来,所以经常会把接收器弄丢。

一个门外汉的产品设计漫谈

  现在,短小精悍的接收器已经成了标配。

一个门外汉的产品设计漫谈

  天朝的很多办事流程也是糟糕的设计。比如,中国特色的“开证明”:假设你办理某证件,需要自己跑到到社保部门开具社保缴纳证明、去税务部门开具完税证明、去XX部门开YY证明......我不禁纳闷,你们在系统里面查一下不就知道我们是否缴纳社保、是否纳税了吗,为什么非要老百姓东奔西跑、非要把数据从系统调出并打印到纸上、盖上红戳方肯罢休?

  设计决定一切。先谈产品的初期设计,即产品的创意。就像广告创意对于广告营销活动的重要性一样,对于产品而言,产品创意也是具有决定性的。产品创意不好,基本上就不可能成功。而这个最初的核心创意,都是非常简单的、具有高区隔度的、一句话可以说清楚的。例如,简单地说twitter就是140字的博客、百度贴吧就是关键字社区、唱吧就是手机KTV。对用户需求的一个敏锐的洞察,就能产生好的产品创意,加上足够的研发和推广运营,就能够成功——这里说的是创新性的产品,而那些抄袭、跟风的产品要成功,最需要的往往是强大的运营、渠道和推广能力。

  大方向定好之后,就看产品的设计了。产品设计的优劣,很大程度上决定了这个产品能否成功,很少能有一个烂产品能够凭借出色的技术实现和市场运营手段获得长期成功的。何况,大部分产品并不是必须要有业界顶尖的技术才能开发出来。与产品对比,技术是可以被量化的,技术指标是有明确的技术框架和软硬件手段来改善的。比如,页面加载速度是1S,这个太慢了,我们可以很明确地把它优化到100ms。而产品设计是一个软性的能力,你很难说这个产品设计的合理程度是另外一个产品的几倍,或者这个版本的体验比上一个版本优化了几倍,因为设计带来的影响往往有滞后期以及其他因素的干扰。

  设计很重要,所以就需要找到合适的人,然而要觅得一个真正的产品设计师却很难。

  设计师应具备的能力

  产品设计是一种非常特别与微妙的工作,作为一个优秀的产品设计师,你要具备以下几方面的能力。

  细心

  虽然“细心”、“细节”这类的词已经被用烂了,但它确实是产品设计需要具备的首要能力,并且,很少有人真正能理解“细节是魔鬼”、“细节决定一切”的内涵与分量。

  细心这个特点很难后天学习,至少很难把它变成你的下意识的思考方式,它与人的性格、生活、工作习惯等因素息息相关。

  注重细节并不是负担,一旦它深入你的骨髓,注意细节就是条件反射,你随时都会因为这样的性格特点而接收到比别人多很多的信息,同时,作为上天对于细心的你一种馈赠,你经常会因为注重细节而得到精神上的愉悦,因为你能够感受到很多被常人忽视的美好与感动。除此之外,你还能因为细心洞察到用户的需求、发现潜在问题,设计出近乎完美的产品。

  注重细节会造福人类。在细节上花费的微小的成本,其带来的效用与价值会因为产品使用人数和次数增长而被线性地放大。比如,不少软件和网站界面上的单选项都不能通过点击radio box图标旁边的文字而选中,这很不方便。而改善它只需要很少的代码——程序员省了一分钟,亿万用户不爽了亿万分钟。这可以看到设计和技术的价值有多大!

  细节决定谷歌。想起谷歌当年进入中国,它那域名中的自造词“google”,就将绝大多数中国人拒之门外,因为对于大部分人来说,在那时候把这个单词正确地拼写出来几乎是不可能的——单单这个细节,基本就能决定他无法成功。虽然后来觉察到问题严重性,推出了全球最短域名“g.cn”、中国特色的网址导航站“265.com”,但为时已晚。

  逻辑思维能力

  由于任何产品都有操作步骤和条件分支,而设计产品时要考虑到的完备的流程逻辑要比产品界面上展现的复杂得多,所以,如果要设计一个稍微复杂的产品,产品设计师若不认真列表格、画功能流程图、状态迁移图的话,肯定会出问题。这就是为什么经常会出现这样的窘况:一大堆人在开会评审产品设计文档,由于产品流程出现断层、死循环或者条件考虑不周等问题,产品经理讲不下去了。

  除了掌握系统设计的思维方式和工具,产品设计的细节也往往需要具备较好的逻辑思维能力。比如,现在要设计一个保温杯,如果不能直接作出推理:“保温杯→水很烫→没法直接喝→需要倒出来喝→额外携带一个杯子不方便→将保温杯的盖子设计成盖子和杯子两用”,那么就很难做到一次设计成功。

  读懂数据需要智商。产品上线之后需要关注各种统计指标,如安装量、激活量、PV、UV、步长、跳出率等等,要能够从各种数据的对比和变化之中看出问题进而改进产品,这些都需要足够的逻辑思维能力。绝大部分用户都不会直接将自己使用产品的的爽与不爽告诉你,通过数据就能将他们的喜怒哀乐用正态分布展示出来。

  创新能力

  这同样是一个高频词汇。对于产品设计的创新而言,可以包含创意出新的产品以及在现有产品的细节之处进行创新(即大名鼎鼎的微创新)。创新在很大程度上其实并不是发明了地球上没有的东西,而是你发现了用户的某种需求没有被满足、用户每次要费很大劲才能完成一件事,你设计出了相应的产品来让他用。从另外一个角度来讲,创新能力可以看作是“注重细节”的副产品。除了个人需要保持好奇心、富有探索精神外,创新也有规律可循,也有很多成型的方法和工具,比如头脑风暴、逆向思维、组合等。

  迭代

  迭代,这个从数学和计算机领域走出来的专业术语,现在却散发着浓郁的乡土气息。对于产品设计而言,迭代就是有错就改、不停地改、快速地改。与其说这是产品设计需要具有的一种素质,不如说是应该掌握的一种方法。互联网产品由于其技术形态的特殊,使得它的更新成本低、不存在递交延迟,这不得不说是互联网设计师和研发人员的福音:上线了发现不好就改掉、面对多个方案不知所措了就用A/B test。

  设计师的层级

  根据能力的高下,可以将产品设计师分为四个级别。

  初级设计师

  这样的设计师刚开始设计产品,他们心怀设计牛逼产品的伟大理想,但是由于天赋和经验的不足,导致产品的基本功能都设计得不太合理,用户的主观感受就是“不好用”,“用一两次就不想用了”。

  下面这只棉拖鞋,就可以认为是出自初级设计师之手。

一个门外汉的产品设计漫谈

  它看上去做工精良,鞋上的喜羊羊图案显得高贵与内敛。但是它却存在一个致命的设计缺陷,就是一点儿防水功能都没有,因为底子周围也覆盖了绒布,这样当你穿着在卫生间等地面湿漉漉的地方走一会儿,脚就湿了��水从鞋底很快就洇了上来。

  好的设计应该像这样:

一个门外汉的产品设计漫谈

  再对比一下如下这两个遥控器的设计。左边这个看起来非常高档,但是用起来却不方便,它把最常用的频道增减和音量增减按钮放在遥控器的下部,而没有放到人顺手拿起来了就能舒适操作的位置。

一个门外汉的产品设计漫谈

  中级设计师

  他们的产品往往基本功能设计得还不错,但不够贴心。一个重要的原因就是,他们只设计了功能,而未能考虑到使用场景,也就是说,产品设计的触角没有再往前伸展一步。打个比方,就像是他们设计出了各种形状和功能的积木块,但是没有直接为用户搭好房子和汽车。

  比如,对于“把手机用作手电筒”这个需求,中级设计师就会这样设计:手机里面有一个“手电筒”app,这个app有一个明显的打开/关闭按钮,并且,启动时手电筒应该处于打开而不是关闭状态。然而,用户场景是:在伸手不见五指的黑夜,他猴急地想照亮眼前的世界!按照这个设计,他不得不先解锁屏幕,在众多app海洋中找到这个app,然后打开app。这尼玛太麻烦了,反人类啊!来看看小米手机的贴心设计:在锁屏状态下长按桌面键即可打开手电筒。

  高级设计师

  使用高级产品设计师设计出来的东西,直观感受是:

  • 很容易上手
  • 用起来很有趣
  • 有惊艳的功能
  • 很贴心
  • 很乐意反复使用

  这样的产品体验很流畅,而且考虑了大部分的使用场景。

  下面再举几个例子: 

 
基本功能
使用场景
考虑了场景的设计
备注
KTV点歌
可以按照歌星、歌曲名称等方式点歌、可以删除已点歌曲
一次点多首歌,要连着唱,自己太累、其他人尴尬
增加一个“打乱顺序”按钮,将歌曲顺序打乱
 
电视换台
可以按数字调至任何一个台,屏幕下方可以看到接下来的一个节目信息
大部分人都有节目类型的偏好,比如只想看综艺、电视剧、体育等,所以必须逐个换台,来找他想看的那个类别的节目
增加一个按照节目类型分类的界面,列出目前播放这种类型节目的所有台,甚至还可以有一个节目搜索框
 
手机闹钟
可以设定一次性和重复的闹钟;可以设定闹铃周X-Y几天有效
由于有节假日和调休的存在,导致设定的工作日闹钟在该响的时候没响,不该响的时候响
获取每年国家的放假安排,定义出准确的、智能的“工作日”
 
地图App
可以搜索地点,选择公交、驾车、步行路线
经常驾车或者打车回家/公司时,需要打开app,输入家的名称,搜索,选定为目的地,切换到驾车路线,点击“获取路线”...
让用户预设家、公司等常用地点,在手机主屏幕上,按下”回家”图标,即可自动给出从当前地点到家的驾车/公交路线
 
手机App听歌
可以播放、暂停、选择上一首/下一首、随机播放等
边走边用手机听歌,遇到不想听的歌需要切歌的时候,需要解锁、点击下一首,锁屏,很麻烦。
类似iPod那样,可以甩一下手机就切歌
切歌这么方便,那些拥有大功率外放的山寨机用户在播放神曲时,会随时受不了
手机扫描二维码
启动手机里面二维码扫描app,即可扫描
用户需要先安装二维码扫描app,当需要时,启动这个app,点击扫描按钮
手机摄像头内置二维码扫描功能,用户不需要单独下载app:需要扫描时按下摄像头启动按钮即可
操作的复杂性严重阻碍了二维码应用的快速普及
保温电热水壶
方便地加水、加热、保温和放水
用户想喝开水,但是沸腾的水又没办法马上喝,用户又一次猴急了
增加几档保温的选择,比如60度、90度,以及“再沸腾”的按钮。
60度的水喝起来刚好,不凉不烫——随时享受这小小的幸福

  高级设计师还会设计出一些让用户感到惊喜的小功能。比如,在小米手机中,当你刚存下一个新号码,稍后想给他打电话或者发短信时,他竟然就出现在最近通话列表和最近的短信接收人列表那里!这样的贴心小功能,会给用户带来惊喜。

  神设计师

  神设计师设计出的产品体验必须非常流畅,神还能创造出新的场景和使用方式。若干年前,大家都认为操作计算机就是输入一行一行命令的时候,发明图形操作界面的人就属于神级的设计师;当大家认为手机就应该跟电脑一样采用物理键盘输入的时候,摒弃物理键盘、装配大触摸屏的iPhone,就属于神级的设计。

  下拉、滚屏自动翻页,也算是一个很棒的设计,它突破了点击“下一页”按钮的旧传统,非常适合逐页贪婪浏览,你需要做的只是不停地转动滚轮和滑动手指即可。

  神设计师还能通过巧妙而简单的设计一举多得地解决N个问题。现在广泛使用的用户注册策略“将email地址作为用户名”,也是很好的设计,它一举解决了帐户名重名、真实性验证、密保邮箱等多个问题。

  产品交互

  产品要将复杂的实现用交互界面隐藏起来,内部电路和代码可以猥琐一些,但界面要正派和好用。

  物理形状比平面标识(文字和图标)更易于感知:大部分耳机左右只写着“L、R”,像我一样的强迫症患者,每次都要看清楚左右才会带上。好的设计,就是在“L”的地方设计一个凸点,这样你拿起耳机就凭借触感分辨出左右。

一个门外汉的产品设计漫谈

凸点的耳机

  在表达方式上,有以下几个规则:

  • 颜色比文字易于分辨。
  • 图比文字易于理解。
  • 列表比大段描述易于理解。
  • 表格适合展示“对多个对象进行多维度比较”。

  以上这些规则同样适用于你写任何邮件、文档。

  别把专业术语和复杂操作抛给用户。你是为用户设计软件,而不是为设计师和研发人员设计。同样是扫描木马、清理垃圾文件,360把它叫做“电脑体检”,并打出分数,还说“你又击败了全国百分之多少的用户”,这一切让本来很高深晦涩的技术操作变得通俗易懂,这样的包装,势必还会增加你的使用频度。

  让用户快速地上手,迅速明白这个产品是干什么的并可以开始把玩。如果产品有比较复杂的设置,那先把它隐藏,按照大部分的情况处理。那些善于探索的高阶用户,可以在设置界面里面尽情微调。

  对比一下这样两个订火车票的网站:12306和某订票网站的界面:

一个门外汉的产品设计漫谈

著名的12306

一个门外汉的产品设计漫谈

某订票网站

  可见,12306不仅排版繁杂,不够美观,而且让来订票的用户一上来不知道先干什么;相比这个“某订票网站”的界面就很简洁,用户能很方便地先搜索车次,然后就可以订票了,除此之外,下面还有明确地流程说明。

  一般而言,首页应该有一个明显的输入框、按钮之类的,来引导用户进入产品的流程的第一步。对于稍微复杂的流程,在页面下部还应该增加一个流程图,而且最好点击每个步骤可以了解详情。

  再举一个逆天的例子。飞利浦的空气净化器有一个非常奇葩的设计,导致不少人用了数月之后,才发现自己每天白“净化”了:因为他们没有在使用之前拆开净化器,把里面的四层过滤网塑料的包装拆除掉,从而没有起到任何过滤效果——机器工作时并未检测出这种问题,还在假模假样地净化着。

一个门外汉的产品设计漫谈

奇葩的飞利浦空气净化器

  仔细看,电缆插头有一个小标签,使用说明书里也有一行小字,提示必须先拆除塑料包装,但是你写这么小,太容易被忽视掉了!而且,对于空气净化器这种产品,一般人肯定认为插上电源打开开关就能开始工作了。虽然仔细阅读产品使用说明书是一个好的习惯,但是我相信大部分人没有这个习惯,或者至少不会是先读完说明书,再开始使用产品。人们阅读说明书往往是因为产品出现问题,或者想了解高级功能。这也是一个典型的各个环节都出问题的案例:产品设计不合理、销售渠道未尽提示义务、没有售后回访。

  不要让我瞄准。尽量不要让用户的常用操作必须通过移动鼠标/移动手指瞄准某个按钮进行点击才能完成。

  o   Chrome浏览器中关闭tab时,关闭一个后,下一个tab的“X”按钮就在鼠标底下,方便你连续关闭多个tab,当你不再关闭将鼠标移开时,tab宽带会自适应地变大。(Chrome浏览器有很多优秀的设计,值得仔细研究与体会)

  o   手机App要方便拇指操作,充分利用触、滑等操作方式,尽量避免必须点击边角上的某个按钮才能完成的情况。我有一段时间喜欢使用weico,就是因为它能够方便地使用滑动操作从微博详情页返回到微博时间线,以及通过轻触就能查看大图、返回微博,见下图。

一个门外汉的产品设计漫谈

  o   Windows经过数年的创新和研发,终于将“显示桌面”按钮移到右下角了!这样你闭着眼睛就能完成这个常用的“显示桌面”的操作了。

一个门外汉的产品设计漫谈

  o   浏览器鼠标手势:按住鼠标右键在页面划出一个“L”就能将页面关闭,这样又酷又方便!妹纸看得目瞪口呆有木有!?你再也不需要移动鼠标瞄准tab上面那个“X”按钮了,划“L”甚至比“Ctrl+W”都方便。

一个门外汉的产品设计漫谈

  关闭当前页面的一个鼠标手势截图以及常见的手势

  搜狗输入法附带了一个鼠标手势工具,更是将鼠标手势从浏览器中延伸到了任何的软件界面中,比如在某个软件的窗口划一个L,就能把它关闭,确实挺方便。

  保持交互的一致。为了减少用户的学习成本,同一个公司的各个相关产品或者同一个产品的各个终端,其交互应该保持一致。苹果在这方面做得非常好,看图即可知晓:

一个门外汉的产品设计漫谈

MAC

一个门外汉的产品设计漫谈

iPhone与iPad

一个门外汉的产品设计漫谈

iPod

  对比这几种设备的界面,可以看到上面是应用的图标,下面是Dock,并且图标都一模一样,就连级联菜单项的设计都一致。现在想想,你的PC站点和WAP/APP的用户体验能尽量做到一致吗?

  简洁的美。苹果设备的极简设计,比如,“外观无槽、无棱”、“电池和存储卡固化”、“一个万能插槽”,使得整个设备简洁、紧凑,而且不容易积灰——别笑,你看看手里那些布满沟槽的手机,藏了多少污纳了多少垢。

  交互方式存在轮回。人类世界始终是一个轮回,比如“粗布→化纤→粗布”的时尚轮回以及“野菜→粗粮→细粮→肉食→粗粮→野菜”食尚轮回。人类与计算设备的交互也在经历着轮回:“触摸(手拨算盘是最早的多点触控哦亲)→拨动电子设备上的按钮和开关→键盘输入命令→图形界面→鼠标→触摸/语音/光线/距离/方向/重力感应等”,即从最直观最自然的交互方式又回到了最直观最自然的交互方式。值得指出的是,这种轮回并不是人类吃饱了没事干故意绕弯路,而是越直观、越自然的交互方式与计算设备内部的实现形式(电平信号)差异性太大,所以需要更加先进的技术才能进行准确地识别与转化。

  产品的检验

  产品发布之后,需要检验产品设计是否合理。通常的方法就是关注宏观的统计数据,一般也就是产品的各项KPI指标,如安装量/激活/活跃数、PV/UV等等。

  谁用谁知道。除了“用数据说话”,对于产品体验的检验来说,发挥自己的主观能动性也很重要,而且方法及其简单,就是——自己tmd多用几遍!如果产品需求文档写完、软件编码、测试、上线完之后,设计和研发人员自己都不会再用的话,这样的产品肯定很难做好,更不可能做到卓越。

  举例:PC上的词典软件很多,但是很多装上用了之后,发现居然连基本的功能都不具备:其屏幕取词功能在很多常用的软件中都不能工作,比如不能在Chrome或者火狐浏览器中取词,这是不可想象的。词典软件还有一个设计误区就是认为“词典就是中英互译”,所以很多软件默认都没有提供汉语词典。然而用户经常会看到生字不知道读音和含义,想用取词功能查一下,结果发现只能查到对应的英文单词翻译,所以只能百度一下了。

  有的新闻App在新闻详情页中,可以通过左右滑动手指来切换到上一篇/下一篇新闻,这个功能看似很贴心,但实际上是不合理的,因为大家看新闻的习惯是在新闻列表页根据新闻标题来决定是否点击进入详情页,而不是打开的详情页,直接在里面切换。

  以上这几个例子当中提到的问题,既没有隐藏在冰山之下,也不是什么小众的BT需求,产品设计师只需要自己用一下就能发现。

  不光是要多用,而且要在各种场景中用。只呆在办公室里冥思苦想与凭空争论,肯定难以设计出好的体验。上面举的那个“手机App要支持甩一下切歌”就是一个例子,产品经理如果只是在办公室捧着自己设计出来的App,就觉得“你看我的App能很方便地播放、暂停、切换下一首啊”,就会产生“我的产品非常完美”的幻觉。这次国庆长假不少人都出外旅游,我看知名网络红人Fenng和老岳说,在出游过程中发现了移动互联网还有很多机会,这就是一个例证。我党都说要深入群众嘛,所以产品设计师也要响应号召,在光怪陆离的生活当中去体验产品。各种各样的使用场景不仅是孕育新产品的土壤,也是让既有产品持续改进的试验场。

  产品设计和研发人员自己使用还不够,还需要发动广大的用户,给他们一个平台和渠道,让他们给产品提意见建议。这就像软件测试一样,更多的人和更多次的使用,才能将各种情况和分支覆盖到。

  检验产品体验还有一个“一步原则”,意思就是,如果一个用户常用的操作,需要多步才能完成,那么必须改进。比如,大家看到网页里面有一个东西需要搜索下,一般需要先选中关键字,复制,然后粘贴到地址栏,敲回车搜索,或者选中后点击鼠标右键菜单进行搜索(假设鼠标右键菜单能够识别是搜索还是打开链接)。这样一个常用的操作不能便捷地一步完成,所以肯定可以改进:比如增加选中内容后鼠标拖放的功能,即,如果选中的是链接,拖放后直接打开这个链接;否则拖放后用该关键字进行搜索。

  这个“一步原则”可以说是发明创造、产品创意的源泉。“懒人创造了世界”那句话就是这个意思,为原来费时费力的重复性工作制造出工具来代替人完成——将这个星球最智慧的生物解放出来干更牛逼的事情。

  娱乐精神

  在这个全民娱乐、信息爆炸的社会里,一个产品仅仅具备了实打实的基本功能是不够的,还需要在产品功能上增加贴近用户的娱乐因素,这种思维并不只是适用于强调“吸引眼球和娱乐用户”的市场推广的领域里。

  娱乐精神,就是要求产品具有有趣的交互形式。比如,微信的摇一摇、腾讯微博的吹一吹、腾讯手机管家的小火箭和嫦娥。其实,对于这些功能来说,你完全可以设计成一个傻傻的按钮来触发!但就是这个交互形式的变化,让同样一件事情变得有趣得多。

  娱乐精神的另外一方面,体现在产品的各个细节之处,小到一句文案或者一张图片。比如在小米手机里面更新系统时,如果已经是最新版了,小米就会卖萌:

一个门外汉的产品设计漫谈

小米卖萌

  还有一个就是著名的图吧导航在苹果App Store里面的吐槽:

一个门外汉的产品设计漫谈

图吧吐槽

  同样是写一句话,包含娱乐、卖萌元素之后,效果会天壤之别,会让冷冰冰的晶体管组成的设备或者01代码堆砌成的软件变得有人情味,一下子拉近了与用户的距离。既然卖萌并不费太多事,你干嘛不搞得有趣些呢?做人、做软硬件,最重要的是开心。

  在App繁荣的年代,你不得不面对一个现实:App也成了消耗品。除了那些绑定了强的好友关系的App(QQ、微信、微博等)或者是刚需类的工具App(搜索、音乐、视频、游戏等)可以天长日久,其他很多创新类的App就别奢望能寿与天齐了。比如之前火爆的Draw Something,你还在玩吗?所以App设计者可以改变一下思路,既然不能长命百岁,那干脆就在一开始把它当作消耗品来做——从一开始或者至少刚眼看要火的时候,就考虑到商业收益的问题,比如广告植入乃至App冠名神马的——同学,这不丢人!在这个App短暂而辉煌的生命周期内,它让用户得到了娱乐、为开发者带来了money、让赞助商品牌权益得以体现,达到了多赢、和谐结局,何乐而不为呢?当它已经风光不再时,你就化悲伤为动力,重新出发,投入到下一个App的创意当中吧。

  形成生态圈

  生态圈是整个生物界繁衍生息的系统保证。在信息世界当中,也需要构筑信息生态圈,大到产品布局乃至产业链、小到产品内部的功能设计,所有这一切,就是让二进制流以合适的方式被产生、流动、加工和接收。当然,这个生态圈必须考虑到人,要让人与产品、人与人充分互动起来——后者其实更加重要,这才能引起病毒传播。曾经火爆的那些SNS游戏如“抢车位、奴隶买卖以及偷菜”,都是靠了人的关系——人玩人,才风靡神州大地。

  云生态圈。现在大大小小的公司都在制造云,都在以免费、大容量等喜人条件来期盼用户将自己的各种数据存储到云端,不过往往忽视了数据生态圈的建设。如果数据只是存到了云端,而没有被展示出去,那么非但没有价值,而且成了累赘,额外增加了云的服务器和带宽成本。

  现在假设你有一个相册产品,可以让用户将照片备份到云端。残酷的现实是,除了几个大佬公司,一般的产品都缺乏健壮、大量的好友关系,这就会陷入上传后不容易分享出去,进而不愿意上传的恶性循环当中。而且,你还不能冒然将这些宝贵的用户照片资源补充到其他的产品中,因为它是私有的——用户是在备份照片,并不是在分享照片。

  就目前来看,用户“将自己的照片备份到云端的需求”并不强烈,如果硬要说这个需求已经如火如荼,那么多半是因为你被别人家的繁荣景象所蒙蔽:用户在微博、QZone等手机端每天上传数亿张照片,这确实很牛逼,但是要知道,这些用户并不是想把照片“存”到云端,而是想分享!通俗地讲,就是想得瑟,求赞美、求安慰或者求鄙视。试想一下,如果上传的照片没人看、没人评论,你还会是上传吗?

  要让生态圈里面的数据充分地衔接和流动,尤其是用产品的机制,而不是人肉传递。一般百科辞典都有百万千万的词条,完全可以把这些词条通过知识树的形式组织起来,让学习者很直观地看到知识之间的关联关系。可以参考微软的人立方那样展示出来。

一个门外汉的产品设计漫谈

王石的人立方

  再看看百度几个当家老花旦的数据流动。网民经常在百度搜索A关键词,于是在贴吧创建A吧让大家在里面讨论与交流。用户经常询问有关A的一个问题,于是就可以把这个问题放到百度知道里面提问、回答和搜索。一些关于名人、术语的问题被反复问道,那么就创建一个词条,把它放进百度百科。而无论贴吧、知道和百科,反过来又是为百度搜索提供了优质的内容。

  携带海量基因数据的小蝌蚪在奋勇向前游动,但是往往障碍重重。新浪微博的图片长微博就算一个阻碍信息流动的例子。在新浪微博里,由于一条微博最多140字,所以导致很多人无奈地将自己的长篇大论变成图片发送出去,这个需求也催生了多个专业生成长微博图片的网站。文字变成图片,看似简单的一个变化,虽然它并不影响人的阅读,但是这个形式的变化却使得信息被机器检索和加工几乎成为不可能,这就好比斩断了小蝌蚪的尾巴,使得其活性严重降低。

  产品基本功能设计好之后,就需要考虑如何把用户的好友关系加进来,一般来说有如下几种方式:

  o   一穷二白干革命,从头开始构建好友关系

  o   导入已有的好友关系:

  • 用户手机通讯录
  • 本公司其他产品已有的好友关系
  • 第三方的好友关系:微博/QQ等

  一般来说,重新发明轮子很难成功。由于好友关系的壁垒,使得进入SNS、IM产品的领域存在很高的门槛。

  拥有了一定规模的用户之后,必须懂得感恩:要珍惜这些用户资源,采用各种方式来倾听他们的心声:

  o   在产品当中内置通道,比如方便用户递交意见建议的按钮。比如小米手机的桌面有一个图标,点击后就可以方便地进行意见和故障的反馈,还可以送上系统日志、截图神马的。

一个门外汉的产品设计漫谈

小米手机可以方便地反馈问题

  o   搭建一个与用户交流的平台,比如小米的MIUI论坛。在这个论坛当中收集用户的意见建议,及时、定向地发布产品的信息。

  o   监控其他的媒体,尤其是微博这种自媒体平台。

  让活跃的用户参与到产品的发展当中。比如让用户创作产品的皮肤、让用户对产品的命名或者待开发的功能进行投票。

  形成一个产品、厂商与用户组成的生态圈之后,就得到了一个双赢的结果:产品因为群众的智慧越来越完善;用户对产品越来越忠诚:当一个人参与其中,在一个产品中有所付出,那么就很容易对产品产生感情。

  结束语

  科学技术日新月异,人类社会不断进步,但这个世界远不够完美。人的本性是贪婪与自私的,所以仅靠日益萎缩的道德不足以规范大众的行为。从法规政策到规章制度,从机器设备到生活用品,从电子产品到网站App,处处都需要被设计、被正确地设计。每个人都是自己生活和事业的设计师,糟糕的设计带来平淡的人生,不懂得迅速迭代更是让你失去了扭转局面的宝贵机会。

  请用心、聪明地设计。

  来源:zhubaining投稿,作者微博

2012年11月8日星期四

百度正式推出Sitelink

  昨天有用户给我反馈说,百度正在部分地区测试Sitelink,搜索某些关键字,会对权重较高的网站返回多个链接,但这些功能仅在部分地区测试,多数用户并不能发现这些改变。

  今天我再次进行测试,发现已经有大量用户可以看到Sitelink,很多用户测试,绝大多数高权重的网站都可以在百度搜索里显示Sitelink,这表明百度的Sitelink已经正式推出了。

  Sitelink是Gooogle最先使用的,对一些权重比较高的网站,Gooogle除了会返回正常列表外,还会在搜索结果里列出的在同一个网站域名下的子页面或子栏目链接,被称之为Sitelink(全站链接)。这些Sitelink是根据用户喜好通过算法得出的,站长是无法控制,不过站长可以登录Google Webmasters平台对其进行删除或修改次序。

  Sitelink的好处

  Sitelink一直被SEO从业者们认为是网站优化的最高境界,因为只有搜索引擎权值足够高的时候才有可能拥有这个功能,目前有这个功能的都是一些知名网站。Sitelink可以说是搜索引擎对网站的一种奖励,通过Sitelink,排名第一的网站可以在搜索结果中显示更多的内容,增强网站品牌形象。

百度正式推出Sitelink

  百度推出Sitelink的影响

  对网站来说,Sitelink强化了第一名的显示效果,增强了网站品牌,可以有效提高网站点击率,提升访问者对该网站的可信度,提高了用户的搜索体验,对于网站有一定激励作用。

  对于百度来说,可以竖立百度的“正面”形象,逐步摆脱人们对其“给钱就排名第一”的不良印象。对百度的竞价广告的点击率可能会有部分影响。

  百度Sitelink不足之处

  相比Google的Sitelink,百度的Sitelink缺少摘要部分,内容较少,显示效果不太美观,在百度站长工具中无法管理Sitelink。

百度正式推出Sitelink

2012年11月7日星期三

微软确认Skype明年替换MSN

  对于微软将以Skype替换Windows Live Messenger(以下简称“MSN”)的传言,Skype CEO托尼·贝茨(Tony Bates)在Skype的官方博客予以证实中文翻译),除了中国大陆之外,全球各国都将在2013年第一季度停用MSN,微软计划将MSN的1亿多用户整合到Skype中。

  MSN在中国的困境

  虽然微软官方确认MSN将会继续在中国大陆运营,但MSN在中国的前景并不乐观,,在中国市场,MSN目前的市场份额还不足5%,相比QQ超过7成的占有率,几乎可以忽略不计。

  目前,IM(即时通讯)市场竞争激烈,但MSN在产品、开发、运营、推广上都远远落后腾讯QQ,不论是其应用功能,还是其服务水平,都与腾讯QQ差距越来越大,糟糕的用户体验,脆弱的安全机制,大量的垃圾广告信息的泛滥,让越来越多的用户不得不离开MSN而转向其他IM软件。

  MSN目前存在的问题比较多,例如界面上广告太多,界面不太美观,功能少,缺少视频通话,离线发送、断点续传、截图功能、群组等功能,安全性差,帐号容易被盗并发送垃圾和诈骗信息,在服务方面,MSN不提供电话客服服务,用户出现问题后往往不知所措。

  在高速爆发的移动终端上,MSN同样是落伍者和失败者。随着智能手机、平板电脑的普及,人们在智能终端上进行文字、语音和视频交流的需求越来越大,在美国,能够支持好友免费短消息的Kik Messenger仅推出两个月就获得了超过300万用户,名声大噪并受到所有人的关注和鼓舞。腾讯发现这个市场后,迅速推出了“微信”这样的免费短信应用,并在短时间内一跃成为国内类Kik应用的佼佼者。腾讯QQ也发布了支持智能手机和平板电脑的视频聊天功能的新版本,让用户直接使用手机即可进行视频交流。

  在腾讯QQ快速发展的同时,MSN产品几乎没有做任何改进和更新,MSN不断失去一个又一个机遇,从电脑端到移动终端,MSN都全面与这个时代脱节,如果MSN依旧保持目前的定位和运营模式的话,未来在中国还是没有什么机会。

  MSN目前的这种困境,与微软自身机制有关系。MSN中国与微软总部之间的管理和交流不畅,导致其无法对市场变化做出快速响应;MSN中国在研发方面的投入不足,规划和设计都有问题,没有一个很好的产品定位,用户体验又非常糟糕,导致其本土化的路线步入歧途,最终失败也是可以预见的。

  微软收购Skype后发展

微软证实Skype明年替换MSN

  去年5月,微软宣布斥资85亿美元收购Skype。目前每月使用这款互联网通话服务的人数增长了26%,总数接近2.5亿。

  事实上,从微软收购Skype以来,MSN将被并入Skype的传闻就已有。Skype是一款网络即时语音通讯工具,它除了具备IM所具有的视频聊天、多人语音会议、多人聊天、传送文件和文字聊天等功能外,还可以免费与其他用户高清晰地语音对话和拨打国内国际电话,并可以实现呼叫转移、发送短信等功能。

  微软内部曾做过相关调查发现,MSN和Skype的重合度已经超过80%,而这也越来越凸显出MSN存在的价值空间并不大。因此微软也没有必要长期让两个IM同时并存,将MSN和Skype进行整合势在必行。

  未来的前景

  在中国,Skype曾在2004年11月授权TOM运营简体中文版Skype。2007年,Skype和TOM在中国成立合资公司,负责为大陆市场研发、运营中文版Skype,双方各持股持股49%和51%。然而,微软去年5月以85亿美元收购Skype,让为Skype在华的运营变得复杂起来。与此同时,MSN中国的运营权属于微软与上海联和投资公司共同出资成立的上海美斯恩公司。也就是说,如果微软在中国整合Skype和MSN,将面临复杂的调整,这也可能是这次MSN与Skype的整合不包括中国内地的原因之一。

  MSN未来在中国如果想继续发展,应该切实解决以下几个问题:加大产品研发投入,彻底改善用户的使用体验,加强本地化的研发,使其符合中国用户的使用习惯,开发移动终端版本,使其在手机上能实现文字、语音、视频等交流,总的来看,这些任务都是艰巨而庞大的,MSN在中国的未来依旧不太乐观。

2012年11月6日星期二

高效代码审查的十个经验

  代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。

  1. 代码审查要求团队有良好的文化

  团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。

  “A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影响团队内部的协作,因此需要避免。

  另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发者对这个流程有抵触或者反感,这个目的就达不到。

  2. 谨慎的使用审查中问题的发现率作为考评标准

高效代码审查的十个经验

  在代码审查中如果发现问题,对于问题的发现者来说这是好事,应该予以鼓励。但对于被发现者,我们不主张使用这个方式予以惩罚。软件开发中bug在所难免,过度苛求本身有悖常理。更糟的是,如果造成参与者怕承担责任,不愿意在审查中指出问题,代码审查就没有任何的价值和意义。

  3. 控制每次审查的代码数量

  根据smartbear在思科所作的调查,每次审查200行-400行的代码效果最好。每次试图审查的代码过多,发现问题的能力就会下降,具体的比例关系如下图所示:

高效代码审查的十个经验

  我们在实践中发现,随着开发平台和开发语言的不同,最优的代码审查量有所不同。但是限制每次审查的数量确实非常必要,因为这个过程是高强度的脑力密集型活动。时间一长,代码在审查者眼里只是字母,无任何逻辑联系,自然不会有太多的产出。

  4. 带着问题去进行审查

  我们在每次代码审查中,要求审查者利用自身的经验先思考可能会碰到的问题,然后通过审查工作验证这些问题是否已经解决。一个窍门是,从用户可见的功能出发,假设一个比较复杂的使用场景,在代码阅读中验证这个使用场景是否能够正确工作。

  使用这个技巧,可以让审查者有代入感,真正的沉浸入代码中,提高效率。大家都知道看武侠小说不容易瞌睡,而看专业书容易瞌睡,原因就是武侠小说更容易产生代入感。

  有的研究建议每次树立目标,控制单位时间内审核的代码数量。这个方法在我们的实践中显得很机械和流程化,不如上面的方法效果好。

  5. 所有的问题和修改,必须由原作者进行确认

  如果在审查中发现问题,务必由原作者进行确认。

  这样做有两个目的:

  (1)确认问题确实存在,保证问题被解决

  (2)让原作者了解问题和不足,帮助其成长

  有些时候为了追求效率,有经验的审查者更倾向于直接修改代码乃至重构所有代码,但这样不利于提高团队效率,并且会增加因为重构引入新bug的几率,通常情况下我们不予鼓励。

  6.利用代码审查激活个体“能动性"

  即使项目进度比较紧张,无法完全的进行代码审查,至少也要进行部分代码的审查,此时随即抽取一些关键部分是个不错的办法。

  背后的逻辑是,软件开发是非常有创造性的工作,开发者都有强烈的自我驱动性和自我实现的要求。让开发者知道他写的任何代码都可能被其他人阅读和审察,可以促使开发者集中注意力,尤其是避免将质量糟糕,乃至有低级错误的代码提交给同伴审查。开源软件也很好的利用了这种心态来提高代码质量。

  7.在非正式,轻松的环境下进行代码审查

  如前所述,代码审查是一个脑力密集型的工作。参与者需要在比较轻松的环境下进行该工作。因此,我们认为像某些实践中建议的那样,以会议的形式进行代码审查效果并不好,不仅因为长时间的会议容易让效率低下,更因为会议上可能出现的争议和思考不利于进行如此复杂的工作。

  8.提交代码前自我审查,添加对代码的说明

  所有团队成员在提交代码给其他成员审查前,必须先进行一次审查。这次自我修正形式的审查除了检查代码的正确性以外,还可以完成如下的工作:

  (1)对代码添加注释,说明本次修改背后的原因,方便其他人进行审查。

  (2)修正编码风格,尤其是一些关键数据结构和方法的命名,提高代码的可读性。

  (3)从全局审视设计,是否完整的考虑了所有情景。在实现之前做的设计如果存在考虑不周的情况,这个阶段可以很好的进行补救。

  我们在实践中发现,即使只有原作者进行代码审查,仍然可以很好的提高代码质量。

  9.实现中记录笔记可以很好的提高问题发现率

  成员在编码的时候应做随手记录,包括在代码中用注释的方式表示,或者记录简单的个人文档,这样做有几个好处:

  (1)避免遗漏。在编码时将考虑到的任何问题都记录下来,在审查阶段再次检查这些问题都确认解决。

  (2)根据研究,每个人都习惯犯一些重复性的错误。这类问题在编码是记录下来,可以在审查的时候用作检查的依据。

  (3)在反复记录笔记并在审查中发现类似的问题后,该类问题出现率会显著下降

  10. 使用好的工具进行轻量级的代码审查

  “工欲善其事,必先利其器”。我们使用的是bitbucket提供的代码托管服务。

  每个团队成员独立开发功能,然后利用Pull Request的形式将代码提交给审查者。复审者可以很方便在网页上阅读代码,添加评论等,然后原作者会自动收到邮件提醒,对审阅的意见进行讨论。

  即使团队成员分布在天南海北,利用bitbucket提供的工具也能很好的进行代码审查。

  来源:坚果云投稿。

深圳首家Apple Store开业

  据深圳商报报道,2012年11月3日9时,苹果在中国大陆的第七家,也是华南第一家零售店在深圳益田假日广场正式开业,对于深圳以及华南市场来说,这一举非同小可。预计苹果零售店的落成会对华强北水货市场、授权经销商以及香港市场产生一定的冲击。

  第一位提前24小时排队

  第一位到益田苹果店排队的是一位马来西亚年轻人陈太鑫,他是深圳大学大四学生。11月2日早晨不到9时,陈太鑫看到深圳益田苹果店将于周六早晨开业的消息后,就赶往世界之窗的益田假日广场。当日10时30分,他与苹果店的员工取得联系,作为第一号“果粉”排队。从周五早晨9时动身起,到周六早晨9时苹果店开门迎客,陈太鑫排队正好24小时。

  第二位来排队的刘嘉荣,是广东外语外贸大学大一学生。他在广州的学校看到深圳益田苹果店开业的新闻后,立即从广州向深圳赶,2日下午1时30分赶到现场排队。此后陆续有“果粉”赶到。2日晚上9时多,益田苹果店已经有100多人排队。昨日凌晨三四时赶来排队的人已经有200多人。

  全天约有万名“果粉”光顾

  11月3日早晨9时,益田苹果店正式开门营业后,一批苹果员工在门口不停地拍着手跳跃欢迎消费者进门。最早进店的消费者会领到一件苹果公司特制的纪念T恤。第一批进门的约有1000人,工作人员会将在外排队的消费者分批放入,每3到5分钟放进30至50人。

  工作人员介绍,根据以往的经验,晚上的人会更多。根据粗略估算,最多时每小时进店的人数会在1500人左右,到当晚10时关门,深圳益田苹果店第一天开业,进店的消费者不会少于1万人。

  华南首家苹果店

深圳首家Apple Store开业

  深圳的苹果店位于深圳益田假日广场地下一层。虽然深圳苹果店内的设计和装饰风格与其他苹果店大致相同,但也不乏“地方”特色:与其他苹果店选址高档商业中心有所不同,深圳店的选址位于高档住宅社区旁,苹果方面称此举是为了让顾客感受更贴近生活的购物体验;值得一提的是,店面外设计成一个带喷泉的下沉式广场,优雅环境。据工作人员介绍,店内有150多个互动机位供消费者体验。

  对苹果公司而言,中国市场日趋重要。苹果CEO库克不止一次公开表示中国市场对苹果很关键,甚至认为中国会取代美国成为苹果最大的市场。

  除了此次开业的深圳益田假日广场店外,中国大陆共开设有6家苹果零售店,分别位于北京三里屯、西单大悦城、王府井店,以及上海的浦东、香港广场、南京东路等。