最近工作上比较忙,博客更新的也没以前那么频繁了。本来计划每周一篇的博客写作,最终还是没有完成。(还是自己比较懒,偶尔会有一些拖延症。) 近来一直在反思过去工作中的一些问题,想想,是时候写点什么东西了。恰好,公司前不久刚开完开发者大会,大会的标语就是"Great or nothing!". 而我们的首席架构师Ricardo也经常提到,Great or nothing. 本文就谈谈自己对这句话的一些理解和看法吧。

A few examples of being great

Raywenderlich

这是一个神奇的网站,做iOS开发和Cocos2D开发的人,几乎没有人不知道这个网站的。我之前也因为翻译了该网站上面的大量关于Cocos2D的文章而被大家所认识, 后来在Cocos2D这个社区才有了“子龙山人”这个名号。如今,Ray的网站已经今非昔比了,现在不旦每周更新好几篇高质量的技术文章,还有大量的高质量的视频教程。 Ray还专门雇了全职的开发人员专门写教程,写书,写starterKit,搞Podcast,甚至还举办了开发者大会!可以豪不夸张地说,Raywenderlich这个网站上面的教程的质量, 应该是整个互联网上面最高的。我之前偶尔还跟朋友开玩笑说,“Ray的文章又臭又长”。但是,我彻底错了!教程就是应该像他那样写,否则就变成FM(Fucking Manual)了。 Ray对教程质量的极致追求成就了一个独一无二的Raywenderlich.com, 向Ray致敬。

Apple

苹果这个就不用我多说了,市值曾经高达6000亿美金,每一个苹果系列新品发布,都有一大批果粉抢着卖肾去换。老乔在世时,对于产品细节和品质的追求,在消费者的心里烙下了 深刻的印记。我只买过2个iPad和一台Macbook Pro,所以谈不上什么果粉。但是在使用这些产品的过程中,我发现它们确实比其实产品要好很多。以至于,我在用了苹果笔记本以后, 根本不想再用其它牌子的笔记本了。

Being great or nothing

世人的眼光是挑剔的,再好的东西,要是有了明显的瑕疵也会变得差强人意。做产品如是,写代码也如是。如果不能做到最好,就容易让别人(Bug)钻了空子。 Cocos2D-X引擎现在在国内算是比较知名的游戏引擎了,但是,网络上却从来少不了批评的声音。前不久,知乎上有这么一个帖子。cocos2d-x代码质量如何. 现在我们老大的回答被顶到了最前面,但是,如果大家翻看其它的评论,还是能看到很多批评的声音的。因为我现在就是引擎团队中的一员,对于这些评论,其实还是蛮有感触的。 其它的也不便多说,只想以后尽力把每一件事情都做到最好。否则,不上不下的,那就什么也不是。

最近在做一个自动化编译第三方库的脚本,每次在发出一个PR之后,跟Riqcardo交流完都会发现原来我还可以做得更好。大神不愧是大神,对于完美的追求成就了Cocos2D,也成就了Cocos2D-X。

Conclusion

不过有时候,出于时间进度和产品交付压力的影响,可能我们没有多少时间去考虑完美的东西。那么怎样做才能既满足进度,又能达到完美的质量呢?

  1. 确定要解决的问题范围之后,使用最简单的方法去实现之

  2. 如果代码里面出现重复,遵循“事不过三,三则重构”的原则

  3. 尽量维持解决方案和代码的简洁,编写让人可读的代码

  4. 关心编码风格,命名规范,注释,文档和测试。