周鸿祎: 像怀胎一样怀产品,需格外注意的五点用户体验

2012年12月13日 没有评论

像怀胎一样怀产品,需格外注意的五点用户体验

——2012年11月9日在UPA用户体验大会上的演讲(二)

技术人员出身的产品经理非常有潜力,因为他懂技术,跟技术人员能更好的挑选技术方案。但我看到很多技术人员在做产品中犯的一个共同错误,太想要把自己的技术展现给用户,把先进的技术概念给用户。这就是忘了从用户角度出发,用户到今天,特别是体验时代,什么叫体验时代?在电脑还是即刻时代的时候,电脑越复杂越好,能够输入复杂的指令,但是当一个产业,比如今天苹果都成了街机,电脑已经成了标配情况下,电脑从专家时代进入到大众时代,这时候体验就变得更加重要,用户甚至都不知道苹果用了什么CPU,很多拿苹果的白富美、高富帅不知道苹果是四核还是双核,只觉得用的很爽。每个用谷歌的人,只看到谷歌简单搜索框,谁知道谷歌背后是什么样的服务器模型,谷歌用了第几代搜索引擎技术。很多技术人员做的产品,标榜说这是第四代技术,我也不知道第四代用户能不能理解,很多时候过于自己出发,我们就犯了一个教育用户的错误,我的观点是用户不可教育的,用户习惯是你需要观察适应的。要适应用户的习惯,最可怕的是纠正用户养成多年的习惯,这几乎不可能的。从用户出发,将心比心,是下面如何用户体验几个观点的一个基础。

用户体验有五点:

第一,用户体验的核心是用户需求。

一是用户体验的核心,我们都是设计师,是不是设计?很遗憾,第一核心的不是设计,用户体验最基础的是用户需求,如果脱离了用户需求,一个设计再漂亮的产品,是无法和用户共鸣,我在外国转了一圈,很多大学生创意团队做的很多东西,我举个例子,在过去两年一个曾经很热的概念LBS,还有一个概念叫O2O,大家看到什么成功的产品了吗?没有,很简单,用户选择一个产品,你们做一个小白用户去一个饭馆吃饭或者决定买一个电视,设计师可能因为设计好看买回家,绝大多数小白用户问一个简单问题,我用这个产品解决什么问题,这个产品给我什么价值,说人话就是有啥用,如果这个问题不能解决,用户不会想跟你谈,但是有太多的用户体验忽略了这个产品,而是说最近有一个O2O的概念,所以基于O2O做了一个设计,或者说最近想了一个需求,我们做了一个什么产品。

我在外面看了几个这样的产品,我第一反应不是看界面,我是看描述,用户在什么场景下来用,这是用户体验最重要的,大家所谓的用户调研、用户分析、用户访谈,都不是用户上来看你的界面,而是上来想用户什么场景下才会用,这里很多产品经理的弱点,用户场景是经不住推敲的,用户根本没有这种需求,这种需求是他想象出来的,我跟很多产品经理讲,你的产品第一版界面可以不漂亮,设计上可以有瑕疵,功能可以很简陋,这些都不成为用户拒绝产品的理由,用户拒绝产品的唯一理由是跟你无法共鸣,看了半天不知道这玩意儿有什么用。

比如今天腾讯的产品已经做得很漂亮,第一版的产品很简陋,功能少很多,确实解决了一个中国当时年轻人缺乏沟通工具,360今天的功能也做的极其庞大,甚至有点庞杂,产品也很多,但是360第一版功能极其简陋,跟任何杀毒软件没有办法比,功能也极其简单,能力也很薄弱,甚至一个流氓软件都能把它给卸掉,连基本自我保护能力都没有,但是当时能够起来,不是做得有多好,是当时有一个巨大的市场需求,2006年流氓软件在祸害中国,几乎99%的互联网公司,无论大小,无论中外,都集体在做流氓软件,而且没有人管这个事情,所以它能杀流氓软件,就能够解决用户的痛,我认为最好的产品是能解决用户的痛,这个痛越大这个产品就受到用户欢迎,受到用户欢迎,又有用户,有用户能成长,就有机会去改善。

大家奉为设计大师的乔布斯,他刚回苹果的时候,不是今天这么牛,他1997年回苹果了,最先做的几个彩壳电脑,得的工业大奖,问题是改变了苹果吗?没有,因为没有真正达到用户的需求,为什么后来iPod打入了需求,iPod真的是一个蓝海市场吗?错,是一个新发明的需求吗?根本不是,听音乐是每一个人的基本需求,所有在美国的官司,当时都反映了美国大学生都要在网上下载歌曲听歌的需求,iPod顺应了这个需求,没有这个需求去空谈iPod触摸、外形白色漂亮,这都是空洞的东西。我反复强调,当你们决定参与策划做一个产品的时候,第一步想到的不是配色,不是外形,是用户到底有没有这样的需求,如果弱需求,这个产品将来推广起来非常难,如果是强需求,是用户拦不住的需求,这个需求就会很大的成功。

举三个例子,比如最火的微信,一个竞争产品曾经做了一个设计上很酷的东西涂鸦,把一种心情发给别人,并没有用户角度出发,每个用户都是专业设计人员,每个用户每天花很多时间涂鸦吗,可能真的不去讲一句话,当时不太懂用户心理,从这个产品上从来不在网上泡妞,也不用类似的产品,我一点用户的感觉都没有,微信摇一摇,男生能摇出妹子,女生能摇出自己的魅力感觉,这个产品是微信中一个强需求,成为一个爆炸点。网上有很多人用盗版的QVOD,有人重新打包之后,装一些病毒和木马的播放器,来播放爱情动作片,这个360弹出提示,不能播这个东西,有病毒,他们听360的吗?没有,把360关掉,如果360再弹,就把360彻底的卸掉,看完了之后再把360装上,这种需求叫强需求。

但是我再给大家举一个例子,最近微信谈二维码,二维码是强需求吗,手机里没有装二维码的应用似乎也不影响,为什么在微信之前所有做二维码的公司都不太成功,因为是弱需求,装二维码干什么,很方便,到处都扫,哪有啊,跟商家谈,商家说二维码可以试一试,但是你有用户吗,又没有用户,就变成了一个死结。今天微信加二维码应用,微信做二维码成功了,说明二维码是好东西,错,你装微信是因为有二维码,不是,你装微信,它有朋友圈,能交友,我非常尊重微信这个产品,我一直作为产品成功的范例,在我们内部进行反思和学习。

有了一个强需求之后,在2亿用户基础之上,加上一个二维码的应用,大家自然延展使用了,但是很多创业公司,没有仔细分析用户需求,只是看到别人做二维码,我也做,殊不知别人做就能成功,别人有2亿的基础,你做不成功,因为你没有强大的需求。最近唱吧为什么火?是说明中国人对音乐的追求到达一个新境界吗?如果真的这么想就错了,仔细分析一下,唱吧还是强需求,大家不要笑,很多成功的产品,是强需求,所以会有用户,有用户,用户不断的提要求,不断的持续改进体验,体验越改进越好,最后就成功了,最后成功的时候,中国企业家宣传的时候,不会像我这样讲真话了,就会说当年我多么高瞻远瞩,用户的交互多么漂亮,我们投入了巨大的力量,我们用户体验、用户交互多么好,最后我们获得了成功。可能各位听了这种分享之后,回去玩命的打造界面,调整颜色,最后产品还是不成功,为什么?因为我们没有抓到用户本质的东西需求,所有离开了用户需求的用户体验改进都是耍流氓。

看到外面一些产品谈O2O的概念,我再强调概念害死人,在公司内部讨论产品的时候,如果CEO也谈概念,这个公司就垮了,如果产品经理谈概念,这个公司就更要完蛋了,因为概念是正确的废话,谁能够解释O2O、B2C,这种概念在互联网这么多年,全部都是马后炮的总结,概念离用户很远,用户不会因为叫ios才来用,用户最早上Facebook是因为能泡妞。所以忘掉那些概念,而是去观察用户。

第二,超出预期的才叫用户体验。

什么叫形成体验?体验一定要超出预期的才叫体验,如果做的跟别人产品一样,但是功能不叫体验,很多人在抄袭别人产品的时候,经常说某某公司做了什么功能,老板说照着做一个,但是想没想过,如果做的一样是没有机会的,如果用户用完了,感觉及格良好,用户不会形成真正的体验。什么的体验像拿一个针刺一下,或者踢一脚,感觉被针扎了一下,它会形成一种口碑,这种超出预期的东西,是不是很大?不说产品了,很多人模仿微信摇一摇,我问过产品经理,他说最大体验的是什么?有的人说在酒店里用微信摇一摇能摇出几十个,用某些产品摇一摇,十公里之内都摇不出一个,哪一个超出预期,你就跟别人说兄弟用这个,它就能超出预期。

我原来写微博,我推荐大家看一本书,我在微博里说叫《商业秀》,副标题是所有的行业都是娱乐业,因为娱乐业是最靠体验的,我们在日常生活中,卖一瓶水,你喝了你有体验,反正能解渴,不超出体验,好歹有一个东西,但是花70元看一场电影,在拉斯维加斯看一场秀,得到了什么,什么都没买到,买到的是一个标准体验,所有电影、所有秀能不能成功,在于能不能给你一个巨大的情感冲击。

在拉斯维加斯有一个酒店,客人已经离店,在他走出酒店的时候,门童会塞上几瓶冰冻的矿泉水,这个酒店都是免费给水的,都是自己罐装的,成本几乎为零。但是这两瓶水给客人的感觉是无微不至的关怀和超出预期,我已经结过账了。住酒店,即便大家觉得我比大家有点钱,我住酒店我也很紧张,我也不敢动东西,到了酒店,到处放着水,这个水一打开,这瓶水是免费的,那瓶是消费的,消费还特昂贵,我把它喝完了,我到楼下超市买一瓶可乐给它倒进去,这就是正常的体验。但是在我离店的时候,能够给你送水,这就叫超出体验。或者房间里两瓶免费的水喝完了,能及时补上更多的矿泉水也叫体验,所以超出体验,不要给用户一万块钱,也是你要想用户的期望和用户的满意度。

再举一个例子海底捞,真正吸引很多人去,是因为给大家提供的食材都是金枝玉叶吗?不是,海底捞吃的东西跟其他饭馆差不多,为什么大家去海底捞?服务好。这个服务好好在哪里?只不过做了一些同行没有做的事情,给你擦眼镜,给你擦鞋,饭前免费磕瓜子,饭后免费吃西瓜,能举出很多例子,你没有女朋友,走的时候带一个服务员走?网上有很多营销的例子,如果你做的体验能够超出用户,就能形成口碑。360做了一个开机小助手,变成了一个流行的范式,恭喜你,你的工资超越了中国1%的人,所以本月你要继续努力,恭喜你,你的起床时间击败了寝室里其他三个同学,还有同学起床失败,正在重启。

想超出用户的预期,才能形成体验,不一件很难的事。

第三,用户体验要让用户可以感知。

还有一点,体验一定是用户可以感知的,我们太多的误区是我们做了体验是我们自说自话。举个例子,360做了一个小功能,虽然有人不喜欢,但是绝大多数用户感觉很好,因为我们就在想,怎么告诉用户电脑里状况不太好,因为用户的电脑不是1跟0,不是很好,没有问题,要不就是有病毒有木马,有很多是灰色的状态,有很多专业的文字告诉用户,用户还很有耐心,看微博只看140字的情况下,看文章都看标题,用户哪有时间看专业的描述呢?好在我们发现中国用户,从小受应试教育长大,我们都是应试教育的受害者,虽然痛恨应试,但是我们都渴望得分,我们都知道不及格不好,都希望得一百分,绝对不能得99,要不然被其他小朋友嘲笑,所以我们就给大家定了一个体检的分数,很多人一看体检分数很愤怒,怎么才得60分、70分,我要优化,一优化,我们就自动扫描解决很多问题。用户不能感知,但是你要创造感知。

同样,苹果里面很多动作,iPad翻屏的时候,不是一个简单的匀速****,是一个加速变速****,到边的时候,甚至会有一个反弹,为什么苹果会做得这么细致?我们做一个产品,360安全桌面,在PC上试图模仿苹果的iPad的体验,我们第一版做的是一切换把画面切换回来,做完了之后,怎么跟苹果的感觉山寨味很浓,一点感觉都没有,我们找到一个研究苹果的专家,仔细给我们上了一课,我们才发现,真的苹果里有一个加速的函数,有一个****的模型,苹果为什么要下工夫?让他的体验可以被你感知。

讲两个负面的例子,有一年一个运营商推CDMA手机,找了很多卖点,最早说叫绿色无辐射或者辐射少,这个卖点好不好?很多人一定说好,绿色是主旋律,手机有辐射,打多了得脑癌,为什么这个卖点没有成功呢?是因为各位同学你对一个手机的辐射感受,你能感觉到吗?你拿一个CDMA手机打电话,能知道辐射大辐射小,其实你是没有感知,在非用户体验的时代,很多产品热中热衷于找卖点,主要策划卖点,就是忽悠用户的,卖点怎么传播呢?卖点通过广告教育用户,通过在卖场一对一忽悠用户灌输,把用户忽悠到手,用户交了钱,拿回家了。卖电视的,还在搞卖点,智能电视有九大功能,可以干十个事,但是回到家一个都不用,有体验吗?用户不用的东西,没有体验。

虽然靠强大的广告,忽悠卖点的做法,在一些行业还是会存在,这个时代会逐渐过去,有了互联网用户不再是被动的弱者,可以获得更多体验的交流。一定要让用户能够感受到的东西才叫卖点。当你在家里策划卖点的时候,它是真的吗,它是事实吗,它是不是用户能够感知到的东西,后来那家运营商又找到一个卖点,可以防窃听,安全保密,各位你们的电话被别人窃听了吗?大家会讲,我是什么人,别人怎么会窃听我的电话,就算窃听了,无所谓,我的电话没有什么反党反社会的内容,你觉得窃听是用户被感知的点吗?就算你的电话被窃听,你也不知道,他们也不能被证明用了这个不能被窃听了,所以这个卖点依然失败了。

我们也有过失败的教训,曾经有用户,我估计陈冠希逆名提要求,我们需要一个密盘,我放在密盘的那些图片都需要加密,我们就做了一个功能叫360密盘,最后就找到了几万用户,这几万用户确实很忠实,我猜他们的密盘上一定有很多爱情动作片,一定有很多类似李宗瑞,他们确实有这种需求,但是对绝大多数用户来说,这是一个伪需求,用户用完了没有感知的需求。要做用户可以感受,而且可以强烈感知和认同的需求。

第四,体验都在细节,做用户体验要关注细节。

这个例子不再多讲,乔布斯的传记有一个例子,这个例子已经到达了变态的程度,乔布斯有一天给谷歌高管打电话,在苹果ios有一个谷歌地图图标,放大多少倍之后,第三行一个像素颜色不对,他认为这影响了ios的美观,这是对细节的一种坚持。这个例子当然极端,但是很多用户体验往往会毁在细节上,也往往成在细节上,为什么这么讲?当你跟同行竞争的时候,大的功能方面大家不会差的太多,其实用户感知的东西,往往是细节,这时候就需要你们发挥设计师的敏感心去感受这种细节的内容。海底捞提供的涮牛肉都是日本神户的A级牛肉吗?好像不是,磕瓜子、擦皮鞋、带小孩是不是细节。

比如两个负面细节例子,如果坐中国航空公司的航班,我不知道他们为什么,很多航空公司都说亏损,大谈长远策略,没有人关注座椅的距离,很多公司的经济舱,稍微胖一点塞在里面很痛苦,这种细节没人管,最后不得不坐头等舱,伙食跟三十块钱一份盒饭是一个水平,多加三十块钱可以让你吃的很好,在飞机上本来没有期望,如果吃的很好,就超出预期,对这家航空公司有好的期望或者有好的体验,但是给你的食品让你觉得很糟。有很多人来北京参加这个会,可能住在一些酒店,有些酒店真的很贵,倒是经济型酒店提供免费上网,很多酒店四五千一晚上,消费者的心里很奇怪,他觉得你是大客户,都不在乎花五千住一个套间,为什么吝啬两百块钱上一个晚上网呢,可是我每次住在酒店里,我一发现上网不免费,要给一百块钱,就特心疼,我也不知道我的心疼哪来的,你们想是不是这个道理。请朋友吃饭,十个人一桌,可能吃一千,对不起一包餐饮纸两块钱,就会感受非常不好,这就是很奇怪,不是用逻辑来做解释,是一种消费的心理,也是用户的心理。很多企业不关注这种细节,最后就失去了用户。最可恶的是住酒店的时候,我后来自带无线的WIFI,如果留心观察,很多时候细节在别人注意不到的地方,你如果能够找到与众不同的力量,你就能够创造出来我前面说的一种超出预期,如果在产品的大面方面,别人都做了很多年,基本做到了无懈可击,你的体验恐怕就很难。

我前面讲过体验就是力量,实际上也是讲细节,比如360做杀毒,我认为我们技术超越同行,但是你们各位可能也不一定相信,为什么?因为你不是行业专家,你判断不了哪一个杀毒引擎更好,我如果讲杀毒引擎的技术你也听不明白,但是我们成功的颠覆了整个杀毒的行业,靠的是用户体验,这个用户体验广义来说不仅仅是我刚才说的体检、开机加速、一键优化,最重要的体验是什么?给用户超出预期的体验是免费,商业模式颠覆不错,但是马后炮,对用户来说不管什么商业模式,你怎么赚钱我不管,我知道我过去花一两百买一套杀毒,周鸿祎给我免费了,不仅免费,还是终身免费,永远免费,当时杀毒厂商说我们降价一半,我们变得更便宜,这个不叫超出预期,只是说在不断的改善,只有彻底免费才叫超出预期。

当年3Q大战的时候,也是一场由体验引发的血案,我们做的一个产品QQ保镖,不是让QQ的体验更差,是让QQ体验更好,比如弹广告,会影响其他公司的广告收入,但是用户体验很好,所以受到用户的追捧。最近做搜索,坦率的说,如果我说我们的技术是第四代技术,我真的不好意思,因为这是撒谎,搜索技术十年来,从谷歌到百度,大家的技术没有本质性的变化,而且全世界搜索技术最好的公司显然是谷歌,不是中国这几家公司,他们也不是靠技术打败谷歌的,你们也都明白。

但是我为什么看到了体验改变的机会,是因为今天的搜索引擎越来越像广告引擎,广告和搜索混在一起,你们可能分的清,你们的父母绝对分不清,竞价排名这种模式,谁有钱谁排在最前面,很多欺诈网站就排在最前面。医疗行业绝对是重灾区,你们各位看过病吗?你们到医院觉得很舒服吗?在北京协和、同仁永远人满为患,永远看不上病,排队加塞才能弄个专家号,说明医疗资源在中国是匮乏的,协和、同仁好的医院需要花五百块钱一个点击,需要到互联网上买用户吗?不需要。花几百块钱一个点击,需要到他医院里看白癜风、不孕不育,我不能说这种医院都是假医院吧,但是是什么货色,大家也知道。所以这种体验,已经变成了,一方面搜索引擎帮助大家找到知识,找到很多信息的同时,一方面也出来了,搜索一下你就上当,这就是用户体验的问题。即便技术差不多,谁能够在这个细节体验上下决心做的不一样,就不放医疗行业的广告,敢于向谷歌学习,打广告和搜索明显分开,每页就放三条广告,绝不多放,这种体验的改进也可能成为改变一个行业的力量。每次做这种重大体验改变的时候,大家要有点没心没肺,因为你的对手可能雇大量的水军,我是中国骂的最多的人,我估计中国很多水军公司靠骂我一年能赚好几千万。

第五,用户体验一定要聚焦,伤其十指,不如断其一指

昨天在我的公司内部一个创新大赛里面,有一组产品用户体验部门提的方案,我点评说做了四个功能,我说有一个功能能够打动用户已经很不简单了,把这个功能想办法做到极致,不是说一个功能觉得不够,再做五六个功能,手机没有五个图标都觉得不好意思拿出去,用户选择你的产品,经常为一个理由特别简单,一个理由足够去选择,我们做产品体验的时候,很多时候应该面面俱到,应该全方位系统性思考,不错,应该考虑面面俱到,全方位思考,但思考完了,如何在众多的功能中找到一个点作为突破点,再大的一个市场也需要一个针尖一样点的做切入,所有成功的产品都要找到一个点,通过聚焦,把有限的资源聚焦到一个点上,才能形成压强,而有的时候你觉得找了几个点,当跟用户说有五大功能,有六个体系的时候,你觉得你能够记住,你作为老板也可以要求公司员工学习记住,大家都变成顺口溜,但是对于用户来说真的记得住吗?

有一次看智能电视的广告,有六大功能,我晃了一眼,我作为普通消费者,肯定回忆不出来六大功能,把一个功能做到极致,大家推荐你的产品说,在这个电视上****随便看,用起来比优酷还简单,可能还是一个卖点。电视遥控器极端的反映了用户体验的时候,巴不得把很多功能推给用户,用户常用的功能就是调台键、音量键、开关键。怎么样在用户用常用的功能做出极致,我说的这个聚焦,集中一点,和前面说的做到极致、超出预期、关注细节高度一致,每个人都不是天才,更不是通才,如果不能聚焦一点,面面俱到,平均用力同时做三个产品,每个产品同时铺开做五个功能,怎么验证产品聚焦,特别简单,看用户发帖,看用户骂你,或者倾听用户的声音,用户用他们一种最朴素的语言,总结你产品能够被他们打动的一个点。

当年百度超越谷歌的时候,百度在刚起步的时候,真的搜索技术比谷歌做得好?不是,是因为MP3搜索,会听到很多民工级用户在交流的时候,不会说我去用一个搜索引擎,会说有一个网站上面可以免费听歌,可以免费下歌,如果能听到用户这样的声音,就恭喜你,说明你找到了一个值得聚焦的一个点,因为这是用户关心的。

关于产品的体验,体验为王的时代,谁能够掌握好体验的力量,从小处可以改善一个产品,可以做出一个受欢迎的产品,从大处讲,甚至能颠覆一个产业,可以改变一个格局,产品的创新,总是把创新理解成做一个研究院,雇很多专家博士,发明一个类似可口可乐的新秘方,或者申请多少专利,我觉得是不现实的,所谓的创新就是从用户出发,从用户体验的细节出发,从很多细微之处出发,能够对用户体验做出持续的改进。

分类: tips, 互联网 标签:

周鸿祎: 像怀胎一样怀产品,要厚着脸皮听批评

2012年12月13日 没有评论

像怀胎一样怀产品,要厚着脸皮听批评

——2012年11月9日在UPA用户体验大会上的演讲(一)

我刚才来的时候,会议主办方跟我讲,今天来交流的很多人是设计师、产品经理,据说还有50位公司的高管,我今天希望跟大家有一个交流,对很多公司高管来讲,我其实有一个建议,过去这种公司分工特别明确,做一个产品好像变成一个生产线,有人负责策划,称为产品经理,有人负责项目实施,称为项目经理,还有专门做UE,我后来没搞清UX和UE怎么区分,曾经有一个大公司跟我讲半天,UX是用户体验,UE做UED,分的非常细,我听了半天,这两个角色至少从我的从业生涯来说,我觉得很难区分,最后可能还有负责做研发的人,负责拿到产品规划,用代码堆出来。

今天在座更多是设计师,我也非常反对在一个公司里,很多人把设计师贯一个美工,说设计师产品做好了,你给我美化一下,润色一下,调一下颜色,看一下像素,设计师本身应该成为产品经理。

我有几个个人的心得,不是因为我有多么成功,而是因为我曾经是最大的失败者,我在用户体验上犯了非常巨大的错误,甚至被别人骂得狗血喷头,大家看到我有投资和参与做的成功产品,那是因为你们没有看到背后还有很多不成功的功能,不成功的产品,没有被大家所关注和记得。所以正是有很多经验教训,我总结出几个简单的心得,就是几个“心”字:

一是说起来最简单,就是用心。

很多人笑了,我们做事不用心吗?很多人原来在公司里只是一颗螺丝钉,很多时候做产品,真是为自己在做,还是觉得在执行老板旨意,还是执行上级的命令,真的在用心吗?

如果一个人把自己看得太小,只看把自己看成一个打工的,你是这样的层次和胸怀,你不可能成为一个真正能做好产品的产品经理,所以我希望如果各位听了我的心得,回去在公司上班的时候,也不用管公司是不是你自己的,你拿出一点创业精神。很多人讲我又不是创业者,我干吗要创业精神,难道非要你自己办公司才能把一个产品做好吗?其实在别人的平台上花着老板的钱,花着公司资源,做不成是公司交学费,如果我们都不能把自己充分调动起来,想把一个产品做到极致,让这个产品在市场获得成功,给自己积累,无论是声望,无论是积累人脉关系,更多的是积累经验教训。难道你今天从公司出去拿一笔钱,自己再做一个公司,你真的觉得你做产品的能力就有所提升吗?我跟产品经理讲,你心里要有一个大我,要对这个产品负责任,要把这个产品看成你自己的产品,我认为每个人都是有潜力的,我经常给员工举一个例子,很多员工,很多产品经理做产品,能挑出很多问题,但是他也尽到了他工作职责,仅仅靠尽到工作职责很难成为优秀产品经理。

在座诸位,我知道北京买房很难,当然来360有点机会,我可以告诉大家,我做公司这么多年里,看到很多同事好不容易买一个小房子,然后装修,他们都成了装修专家,瓷砖专家,马桶专家,为什么呢?因为这是他的房子,他每天花很多时间在网上搜索,每天到建材城和卖建材的人斗智,只要拿出装修自己家的精神,一个外行能够成为瓷砖专家、浴缸专家,没有理由不成为一个产品专家。很多人问我,我先讲一个大家觉得特虚的用心,即便大家觉得我在产品上有一些心得,实话说每次做一个新的产品,我也不是拿出几个锦囊,也不能在那三分钟有灵感,我也花很多时间看同行的东西,去论坛看用户评论,花很长时间用这个产品,每个产品都是要呕心沥血,有时候感觉做一个产品像一个妈妈十月怀胎生一个孩子,就算你成功养育了三个孩子,第四个孩子不用十个月,三个月就生出来,可能吗?还是要经历十个月的痛苦的孕育过程,我觉得用心,对自己负责任,对自己做的产品负责任,是一个产品经理的基本前提。

尽管你在公司的头衔不高,职位不高,产品经理是最委屈的,因为他头衔最低,经常要协调很多人,要忍受技术部门的白眼,要忍受公司不同高管不同方面给他近乎矛盾的要求,甚至有时候不得不忍受一些所谓白痴领导给他的指令,而且很多时候还要协调公司内部不同的部门,包括市场、传播。但是我认为产品经理就是总经理,就应该把自己当成一个总经理,就要通过人微言轻,但是你要敢于说话,要能够表达自己的意愿,敢于对一些意见说不,要能够鼓起勇气去推动很多事情的进展,哪怕非常难。

所以一个人如果在公司里历经很多波折扯皮,最后能够把一个产品往前推动,并不意味着一定要贯一个头衔,我认为产品经理就是总经理,能够这么做一回,恭喜你,有一天你去创业,发现美国那些创业公司,其实根本没有产品经理这个头衔,主程序员就是产品经理。换句话说一个优秀的产品经理,如果有一天想创业,想拥有自己的生意,想拥有自己的事业,如果不能够成为一个优秀的产品经理,坦率的说很难,成为产品经理是一个最重要的前提。

二是将心比心

我刚才讲完了一个大我,比较自我,敢于承担责任,将心比心讲的是小我、忘我、无我,我们做产品无论有多么好的技术卖给用户,有多么好的设计感觉给用户很酷的设计,其实都要把握一个理论,所有用户体验,什么叫用户体验,为什么不叫产品经理体验,不叫老板用户体验,因为所有体验从用户角度出发,从用户来看产品,你觉得好的产品用户不一定买,用户选择一个产品理由跟行业专家选择一个产品的理由,有的时候是大相径庭。用户选择一个产品,有时候非常简单,如何学会从用户的角度出发思考,我觉得对很多人来说,说起来是一件很简单的事,但是实际上很难做到。因为每个人不管成不成功,随着自己经验的增加、阅历的提升,每个人讲的最多的是什么?是我认为,我以为,我觉得,我们自我太多了,很多时候做产品,是给自己做。

我们很多时候讨论产品的时候,在激烈争论不下的时候,争论双方可能没有站在用户角度,都是激烈的认为自己是对的,对方是错的。如何能够让自己将心比心,这个心理学上有很多这种词,叫同理心,从用户角度出发来考虑问题,这对很多人来说不是能力问题,也是一个心态问题。原来我有一句话,我教育公司里的很多人,像小白用户一样去思考,思考完了得出结论,像专家一样采取行动。很多人颠倒过来了,像专家一样思考,像白痴一样采取行动。

最近微信产品的负责人张小龙的观点,他的观点,跟我几年前说的观点是不谋而合的,三年前我在主导这个话题,大道理是一样的,进入白痴状态或者进入傻瓜模式,你们每个人有没有一个按纽,能够快速的进入傻瓜模式,我在公司里很多时候讨论产品,我对产品经理一个挑战,也是因为我能够这么多年被用户骂得多,经常到第一线看用户的帖子,在微博做用户的客服,这不是为了作秀,为了保持真正掌握用户的想法,我最喜欢的杂志不是行业高端杂志,类似电脑迷、电脑爱好者、电脑软件,在地摊上卖的中低用户的普及杂志,上面有很可笑的文章,这么简单的功能早就用了,为什么写一篇文章教育用户,那是用户真的不知道怎么用。

通过不断的历练,我自己养成一种心得,我的手下做出一个软件,给我用的时候,我好歹也是一个程序员出身,也干了这么多年技术和产品,一个功能多动两下鼠标找到了,能难得住我吗?或者说一个按纽文字写的很晦涩,我看一遍,我稍微动脑筋一想就想明白了,但是我脑子里有第二个白痴的我起作用了,如果我看什么东西能够不加思索的去用,我就觉得这个产品很顺畅,但是突然我怔了一下,大家不要笑我,有的时候我亲手设计的产品,设计完了,我用的时候,我就精神分裂了,一个周鸿祎设计的,但是另外一个白痴周鸿祎开始用,用一下怎么就觉得别扭,这几个文字看一下,我就进入了小白状态,我怎么看不懂这几个字什么意思呢,我马上会告诉产品经理,这个体验有问题。

我做产品,至少有一半的灵感从用户那来的,不是说用户会具体告诉你一个产品应该怎么做,这可不能直接问用户,用户具体需求,一个个案需求不能听,那样会被用户牵着鼻子走,用户需求同理性,把自己置于用户情景中,用户为什么会这么想,用户为什么会这么来抱怨,这个抱怨的根源是什么,就会发现,你想得再好的产品,这里都会有很多问题,自己自觉不自觉,做着做着按照自己想法做,从用户出发的思维模式,不断的在内心有天人交战,不断自我挑战,使用户体验能找到最好的感觉。

我一直强调用户体验,所有的体验都是要从用户出发,作为我们行业专家,特别是各位最容易犯的一个错,是因为你在行业里混久了,经常参加行业高端论坛,结果同行讨论问题,往往同行加强,你讲一个道理,同行一定是认同,你做一个产品,同行一定觉得很认同。但是在中国,往往一个高端人群都很认同的产品,有的时候在中国大量的中低端人群,我们经常说的小白用户,往往觉得很难认同,在中国互联网经常有一个巨大的鸿沟,在高端用户和真正的主流用户,谁能够跨越这个鸿沟,就是谁能够从用户角度出发。

三是处处留心

很多人觉得在公司工作的时候,在开产品讨论会的时候才叫改善用户体验,下了班或者没事的时候,这事跟我没关系了,这种人很难成为优秀的产品经理。产品体验无处不在,任何事情都是产品体验。比如新进到一个酒店,比如坐航空公司的飞机,整个登机过程,机场安检的流程,最糟糕的用户体验,如果不幸摔伤了腿,拄着拐杖去医院,当然很多现代化的医院改善了,但是传统医院的流程,永远不知道先到哪儿划价,然后再去交费、拍片子,让你楼上楼下跑很多来回,包括著名的笑话在北京西直门的桥上,所有司机都会觉得走入了丛林一样会迷路。如果去过美国,美国的路牌和中国的路牌,中国的路牌总是等你看清楚以后,恭喜你已经上错的道路或者你已经意识到这是一个出口,但是美国路牌在你离还有一定距离的时候会提醒你。

在日常生活中体验无处不在,如果能够处处留心,把自己当成一个抱怨的用户,但是把它再上升一个层次,抱怨完了之后,想想为什么会抱怨,这个东西怎么改善,从而看成一个头脑体操,如果我是这个道路设计师,如果我来设计医院,如果我来设计摇控器,大家用的手机、车钥匙,会发现这里面有太多的体验做得很糟糕的东西,但是你来思考的过程,我觉得就是一个提升自己对体验的感觉。

行业专家容易有行业误区,因为在这个行业里太熟悉了,审美疲劳了,已经形成惯性思维,有时候做一个小白用户,没有耐心,很暴躁,想想餐馆吃饭,在菜里发现苍蝇,各位怎么感觉,当时就跳起来,恨不得马上跳起来,在你的行业里,用户用你的产品出错了,你会很不以为然,这有什么大不了的事,不就程序出错了吗,你再重装一遍不就得了嘛。

大家买车的时候,你对车不了解,就会听着推销员天花乱坠,你可能就不关心这个车的某个螺丝是什么做的,可是到自己产品的时候,你巴不得把你的技术细节都展现给用户,也不管用户懂不懂。很多人买家电,真正懂家电的技术吗?很多人因为家电长得好看,或者现场推销员一顿天花乱坠忽悠了,把彩电买回家,买了很多功能回家,回家自己最能用的还是音量键、开关键和频道键,摇控器上大部分键都摸过吗?电视机一定有看照片的功能,你是否把SD卡往里插了呢,你如果插了一次,就会知道这个功能不是给人设计的。

我有时候会说,很多功能做得像找抽型功能,说你没做吧,你做了,这功能都有,功能都能完成任务,说你做了吧,用户用起来很难用,但是在你自己的领域里,产品都是你做的,你知道细节,你知道流程,你绝对不会骂,你会觉得自己的孩子做得多好,用户不会用,我们研究出一本书21天学会使用什么,我们没准公司靠办培训还能再产生一个产业,今天修手机比卖手机赚钱,这个笑话都知道。

为什么鼓励大家在日常生活中,不熟悉的领域处处留心,这是发现用户感受,培养同理心一个非常好的机会。如果在日常生活中,不仅仅是在上班那几个小时,或者开会那几十分钟里,能让自己无处不在的处在一种小白用户的模式,能让自己在不断的生活中发现体验不好的地方,有人在微博抱怨,射灯不好,这个细节真的留心,处处留心皆体验。过去一个好的诗人,不是天天在屋里看唐诗三百首照着抄就能写出伟大的诗篇,他有赤子之心,有胸怀,到处采风,游历名山大川,和朋友喝酒,像李白一样,才能有这种灵感,很多产品的灵感来自于在产品之外。据说苹果设计师来苹果之前,设计最酷的产品是马桶,很多人觉得很奇怪,怎么设计苹果的人是一个设计马桶的人,你们不觉得在白色上有共同的灵感吗?

四是没心没肺

就是脸皮要厚,不要怕人骂,最好的产品不是完美的,是优美的,是优雅的,能解决用户问题,但是一定不完美,苹果的产品还是有很多缺点,但是有一点或者几点能够对你进行强大的诱惑和感动,这就够了。所以没有缺点的产品不存在,很多设计师做事要求完美,我做产品要求做到极致,而不是完美,完美不可能,要有这种开放的胸怀,能够听到别人骂。甚至竞争对手雇水军来骂我,虽然再难听,我会咬着牙跟团队说说想想产品有什么改进的,让他骂不出。很多设计师出身的产品经理,设计出身,有一颗敏感的心,被老板一批评就蔫了,被同行一挑战,就说我不跟你讨论了,你不懂。

我觉得做一个好的产品经理,要对产品的结果负责,心要粗糙一点,要迟钝一点,不要管别人怎么说,要能够经受这种失败,因为好的产品,是经过不断的失败,不断的打磨,好的体验绝对不是一次到位,你是要不断的一点一滴的去改进,只是很多产品的成功,当你们今天去谈论苹果的时候,谈论成功公司的产品时候,一定不要看今天的成功去模仿,一定看他刚起步的时候多么粗糙的原型,读读乔布斯传,看看苹果的真实历史,第一代iPod很多是粗糙,第一代苹果手机跟摩托合作不成功的例子。今天Facebook这么成功,很多人举它做例子,这么美丽的产品,很多人都在抄他的表现,Facebook第一版是什么样子,第一版就这么漂亮吗,第一版有很高明的设计师吗?其实不是,我相信它的第一版,就是为了哈佛女生和哈佛男生做的都是,是一个非常简单的让大家上传照片分享照片的一个简单应用。

所以每一个产品最后能成功,都不是一招制敌,更不是一炮而红,而是至少经过三年五年不间断的打磨、不间断失败、不间断的尝试,没有坚韧不拔的心态产品经理很难做出来,做产品某种角度来说,是做艺术品,但是某种角度来说,因为艺术品可以给少数人看,甚至艺术品可以孤芳自赏,但是最终的产品成功还是要获得商业上的成功,它再是艺术品,还是要获得大众的认同,不得不去做很多跟大众沟通,跟市场抗争,跟竞争对手做竞争,原来很多设计师认为自己很不懈干这个事,不得不忍受来自市场各种用户建议、正常的反馈,甚至包括恶毒的攻击。所以没有一颗粗糙的心,有时候我也觉得自己没心没肺的,别人骂我多了,刚开始有感触,后来看多了就习惯了。

所以有这样几个心就具备了产品经理的基本素质:用心、将心比心、处处留心、没心没肺。

分类: tips, 互联网 标签: ,

[卓有成效程序员]ACK – 码农必备利器

2012年12月12日 没有评论

ack是一款类似grep的查找工具,但是正如它宣称的一样“better than grep”,简直甩grep几条街,再次强烈推荐!

用了ack后,你会很快忘记grep的参数的,

10大理由:http://betterthangrep.com/why-ack/

一键安装:

1
curl http://betterthangrep.com/ack-standalone > ~/bin/ack && chmod 0755 !#:3

遇到一个phpCAS-1.3.1循环重定向的bug

2012年12月12日 没有评论

代码没有问题,怎么调试都是循环重定向,最后实在找不到原因,更换了一个老一些的版本phpCAS-1.0.1,结果完全没有问题,真是浪费时间,汗!

分类: php, 技术 标签: ,

强力推荐电子书:《 论文艺女青年如何培养女王气场》

2012年11月23日 没有评论

《论文艺女青年如何培养女王气场》,写的不错,豆瓣电子书都卖疯了,很便宜,¥1.99。

虽然写的是女青年,但内容确实男女通吃,培养独立价值观部分写的不错。

链接: http://read.douban.com/ebook/316702/

摘了第一节的几段:

事实上,一个收入很一般的女孩也可以通过省吃俭用进而购买一身名牌,把自己打扮得像是一个女王一样,但可能你和她一接触,就会发现她已经被消费社会彻底洗脑,内心极度空虚且脆弱,她拼命工作,然后拼命消费,以此获得一点虚妄的心理安慰和存在感,直至这个消费社会榨干她的青春,榨干她的一切……

什么是“社会价值排序”?石勇这样解释道:“简单说,只要你根据社会的观念,认为一个白领就比一个民工高档,一个大学生就比一个小学生牛×,那么,你就遵循了某种社会价值排序的指令。而一旦你遵循了社会价值排序的指令,就为自己的心理弱势打开了大门。这种社会价值排序必然制造伤害、焦虑、愤怒、自卑和羞辱,因为按照这个规律,在这个游戏之内,只有位于最高端的人,在人群中才能获得觉得的心理优势。”

女王气场其实就是一种心理结构,一种不会被社会价值排序所左右的心理结构。而打破社会价值排序不是一蹴而就的事,因为这是一个重建价值观的过程,这是一个向内追求的过程,需要足够丰富的知识储备和足够强大的理性分析能力。所以养成阅读的习惯是很有必要的,尤其是要多阅读一些文学、心理学、艺术、历史、哲学等方面的经典著作。

永远不要被大众的想法所左右,因为大众的想法永远都是错的。美国波普艺术家汤姆·韦塞尔曼曾搞过一个“伟大的美国裸体”系列作品,在该系列作品中,你会看到一些“被简略到只剩女性性征的女人,以其粗俗不堪的姿态和毫不掩饰的色情意味,成为流行的、可供消费的色情出版物中标准化了的美国裸体的象征”,对于韦塞尔曼的这一系列作品,中国学者李黎阳曾这样解析道:“韦塞尔曼想告诉我们的是,一个人,一旦被操纵,就如同一个物品被反复生产,个性将被随意抹杀……”

分类: 生活, 阅读 标签: , ,

为何先离职再找工作?

2012年11月22日 没有评论

不少朋友建议找到新工作了再离职,不然白白浪费一个月薪水嘛。下面就说说为何“骑驴找马”有时候并不是好的选择。

一、在公司根本无法彻底闲下来,总有零零碎碎的事情,无法专心思考与计划下一步。作为一名负责任的员工,在短时间内是很难彻底抽身出来的。保证独处的时间和空间,才能彻底静下来。无干扰的思考,冷静分析当前情况,扪心自问自己想要什么。

二、员工在公司时得到信息是有选择性的,公司一定会过滤不利的信息。比如很多时候都是网上看到负面新闻后公司才通知你一些事情,甚至根本不告诉员工。公司会放大自身的优点,涵盖缺点,甚至周围同事也拿一些伪优势来说服你。而自己也长期处于这样的环境,无法完全认清。

三、离职后你的时间完全自己控制,节奏自己掌握,完全掌握主动权,笔试面试发挥得会更好。

离职后在家一段时间,顺便看看书,干了一两年总会有很多实际经验和想法,这时候最适合边看书边总结理论性的东西,达到本质提高。管理、技术和个人成长等很多方面都有可以总结的地方。

匆匆上阵,容易慌乱,而慌乱中极易做出不佳甚至错误的选择。最终结果只是从一个坑跳到了另一个坑,失去离职入职让自己有阶段性的成长的机会。

当然,不是所有情况都适合先离职再找工作,具体情况具体分析吧。

分类: tips, 互联网, 生活 标签:

PHP字符串遍历性能居然远不如explode()

2012年11月15日 6 条评论

同事发现的一个问题。字符串源类似:”aaa bbb ccc ddd eee”。想找出空格切开后的第N个字串,两个思路:
1. explode()切开直接取
2. 遍历字符串,一趟搞定

我预判2的性能更好,结果1的性能几乎是2的五倍。测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php 
 
$s = "aaa bbb ccc ddd"; 
 
for ($i = 0; $i < 1000000; $i++) { 
//      $arr = explode(' ', $s); 
//      $t = $arr[2]; 
//      continue; 
 
         $t = ''; 
         $cnt = 0; 
         $j = 0; 
         $len = strlen($s); 
         while ($j < $len) { 
                 $c = $s{$j}; 
                 if ($c == ' ') { 
                         $cnt++; 
                         if ($cnt == 2) { 
                                 $j++;continue; 
                         } 
                 } 
                 if ($cnt == 2) { 
                         $t .= $c; 
                 } 
                 if ($cnt == 3) { 
                         break; 
                 } 
                 $j++; 
         } 
} 
echo $t;

2是1耗时的五倍:
1. 1.26s user 0.02s system 97% cpu 1.315 total
2. 5.30s user 0.02s system 99% cpu 5.337 total

难以理解,于是写了C的代码做性能对比。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h> 
 
int main() 
{ 
         const char *s = "aaa bbb ccc ddd"; 
         char buf[10] = {0}; 
         int i; 
 
         for (i = 0; i < 1000000; ++i) { 
                 char *t = buf; 
                 const char *p = s; 
                 int cnt = 0; 
 
                 while (*p != '\0') { 
                         if (*p == ' ') { 
                                 cnt++; 
                                 if (cnt == 2) { 
                                         p++;continue; 
                                 } 
                         } 
                         if (cnt == 2) { 
                                 *t++ = *p;  
                         } 
                         if (cnt == 3) { 
                                 break; 
                         } 
                         p++; 
                 } 
                 *t = '\0'; 
 
         } 
         printf("%s\n", buf); 
         return 0; 
}

耗时:0.07s user 0.00s system 84% cpu 0.081 total

结论是PHP遍历字符串处理确实性能不高,不如explode()来的简洁有力。应该多用php的内置函数,由于是C级别的,效率较高。

分类: php, 技术 标签: , ,

[golang][转载]什么东西在Go里用着开心而在其他语言里却很难?

2012年8月13日 2 条评论

原文:http://www.ituring.com.cn/article/8702

谷歌的首席技术宣讲师麦克•琼斯Michael Jones如是回复Go论坛上的一个提问:什么东西在Go里用着开心而在其他语言里却很难?。此文得到了Go的核心开发者之一的Russ Cox的推荐。我也认为它是对Go的特性的一个热情但不失客观地总结,特翻译如下,以资参考。

“你是你能力所及”的对象模型使很多事情变简单了,虽然最初未必能够体会到。

界面的机制很了不起,同时也很微妙。我认为还没有人充分利用到它绝大部分的能力。

并发模型和运行体使很多事情变简单了、变高效了,虽然最初未必能够体会到。

“头等函数”的定位使很多事情简单了、高效了,虽然最初未必能够体会到,至少对非LISP/Scheme/T等等的开发者仍是如此。

将语言用作宏语言的设施,对一种非LISP/J/Forth的语言是很强的。这一方面归于语言本身,一方面得益于标准库,但游刃于两者使一些事情简单得很自然,例如解析源代码,得出标准又美观的版本但仍保持注释不变,重写现有代码以跟上语言和库设计的变化(大多是指1.0版前,但其能力仍存于go vet),查遍整个现有代码,以便引入新的或者改动旧界面,等等。

和Web相关的库设施,使其成为应用层级的语言,能简单地架构复杂的面对客户端的服务。

“实业观”而不是“学业观”的哲学定位,用在诸如建造管理、设计针对测试、测试融于开发上,这些对大型软件团队很普通,但却通常是新语言所缺失的。

一贯地简洁使编码、测试、除错、(和将来时态的)长期维护变容易了,虽然人们最初未必能够体会。例如,事情就是它们看起来的样子,做着看样子它们在做的事情。像这样的工具(C,Go,锤子,砧板,螺丝起子等等),是人们很容易喜欢上的。

开发、编译和执行是三倍的速度,这相当地独特,也恰当地揭示了它的前途:成品代码用在庞大的系统上、胜任出奇丰富的业务,并且能快乐编程、轻松理解、和迅速执行。要记得性能自身也是一种赋能的科技。

它看着还“小”,仍能轻易地适合一个人的心智模式,正如‘C’。这是优点。

Map作为头等原语有些意思。人们总能把关联存储做成个附加,但头等对待并加以整合可以降低使用门槛。这有助于轻松达致更好的O(n)方式,并巧妙地将开发者带向高性能的设计,并在问题面扩大后仍能维持快捷。

对一个新语言而言,它的库是不寻常地精密。阅读API文档可以看出上述的元素(特别是界面),是如何美妙地用一种新颖的方式重组服务。直到库的设计对你而言是自然而然之前(“啊,对呀。我也会这样做),你还不能算个地道的Go人。它有些“相当”雅致的元素,会一直保持典雅,就在这时代大部分的语言都褪去的时候。

Michael Jones
Aug 9, 11:58 am
Re: [go-nuts] Fun things in Go that are hard in other languages?

The “you are what you can do” object model makes many things simple, in ways perhaps not appreciated at first. The Interface mechanism is simultaneously extraordinary and subtle. For the most part I think none of us yet fully realize its power.

The concurrency model and runtime make many things simple and efficient, in ways perhaps not appreciated at first.

The “first-class functions” orientation makes many things simple and efficient, in ways perhaps not appreciated still, at least by non-Lisp/Scheme/T/etc. developers.

The language-as-metalanguage facilities are strong for non-Lisp/non-J/non-Forth languages. This is partially the language, and partially the standard libraries, but between them they make it easy and natural to do such things as parse source and emit standardized pretty-printed versions with comments intact, rewrite code bases to match evolving language features and library designs (mostly pre-1.0 but the power remains in go vet), check the entirety of the codebase for possible introduction of new or change of old interfaces, etc.

The web-related library facilities makes it an application-level language for simple construction of sophisticated client-facing services.

A philosophical orientation from the “industrial view” rather then the “academic view” on issues like build management, design for test, test in development, and so on that is maybe common in large software teams but heretofore absent in new-language efforts.

The consistent simplicity makes coding, testing, debugging, (and future tense) long-term maintenance easy in ways perhaps not appreciated at first. For example, things mean what they seem to mean and do what they seem to do. Tools like this (C, Go, the hammer, the anvil, the screwdriver, etc.) are easy to love.

The speed of development, compilation, and execution are as a triple, rather unique and a good suggestion of what may lie ahead: production code on very large systems capable of marvelously rich services that is fun to write, easy to undersand, and speedy in execution performance. Remember that performance itself is an enabling technology.

It still seems “small” and can fit in one’s mental model easily, just as C. This is goodness.

Integration of Maps as a first-class primitive is interesting. One could always build associative storage systems as an add-on, but being first class and integrated lowers the usage barrier. This can help make the “easy way” the better O(n) way and subtly lead developers to performant designs that stay fast as problem size scales up.

The library is unusually sophisticated for a new language. Read the API documentation to see how wonderfully the elements above (Interfaces especially) are used to factor services in new and novel ways. Until the design of the library is natural to you (“oh, of course, that’s how I would have done it too”) then you’re not yet a Go native. There are VERY elegant elements in there that will still be elegant when most contemporary languages are gone.

Some thoughts, Michael

分类: golang 标签:

[golang]设置程序利用所有CPU

2012年8月9日 没有评论
1
2
3
4
5
6
import (
    "runtime"
)
 
// sets the max number of CPUs: use all logical CPUs
runtime.GOMAXPROCS(runtime.NumCPU())

默认go不会用尽所有CPU Core(测试机器2块4核cpu),需要显式开启。runtime.NumCPU()返回机器所有逻辑cpu数量,runtime.GOMAXPROCS()设置运行cpu的最大数量。

警告:“This call will go away when the scheduler improves.”,未来go的调度器改进后,此函数可能会失效,go会智能识别。

分类: golang 标签: ,

[golang]推荐阅读一篇讲Go数据结构非常浅显易懂的文章

2012年8月8日 没有评论

http://research.swtch.com/godata

图文并茂,非常直观的文章。主要讲了基础数据、结构、数组和切片。文末说会更新channels,Interface,Map的解析,可惜目前依然尚未更新。

分类: golang 标签: