做基础产品的体会

标签: 基础 产品 体会 | 发表时间:2011-05-22 10:30 | 作者:dennis BTK 4eVeR
出处:http://www.blogjava.net/killme2008/

      一个公司大了,总有部分人要去做一些通用的东西给大家用,我这里说的基础产品就是这类通用性质的东西,不一定高科技,但是一定很多人依赖你的东西来完成各种各样的功能。做这样的东西,有些体会可以说下。

    首先,能集中存储的,就不要分布存储,数据集中存储有单点的危险,但是比之分布式存储带来的复杂度不可同日而语。况且集中式的存储也可以利用各种机制做备份,所谓单点风险远没有想象中那么大。

   其次,能利用开源框架的,就不要重复造轮子。程序员都喜欢造轮子,但是造轮子的周期长,并且不一定造的更好。在强调开发效率的互联网时代,如果能直接利用现有框架组装出你想要的东西,迅速占领市场,比你造的高性能、高可用、高科技的轮子更实用。这个跟做新产品开发有点类似,迅速组装,高效开发,然后再想办法改进。

   第三,要文本,不要二进制。协议要文本化,配置要文本化。不要担心性能,在可见的时间里,你基本不会因为文本化的问题遇到性能瓶颈。

   第四,要透明,不要黑盒。基础产品尤其需要对用户透明,你的用户不是小白用户,他们也是程序员,而程序员天生对黑盒性质的东西充满厌恶,他们总想知道你的东西背后在做什么,这对于查找问题分析问题也很重要。怎么做到透明呢?设计,统计,监控,日志等等。

   第五,要拥抱标准,不要另搞一套。已经有了久经考验的HTTP协议,你就不要再搞个STTP,有了AMQP协议,你就不要再搞个BMQP。被广泛认可的标准是一些业界的顶尖专家制定出来的,他们早就将你没有考虑到的问题都考虑进去了。你自己搞的那一套,随着时间推移你会发现跟业界标准越来越像,因为面对的问题是一样的。使用标准的额外好处是,你有一大堆可用的代码或者类库可以直接使用,特别是在面对跨语言的时候。

    第六,能Share nothing,就不要搞状态复制。无状态的东西是最可爱的,天然的无副作用。水平扩展不要太容易。

    第七,要将你的系统做的越不“重要”越好,如果太多的产品依赖你的系统,那么当你的系统故障的时候,整个应用就完蛋了。我们不要担这个责任,我们要将系统做的越来越“不重要”,别人万一没了你也能重启,也能一定时间内支撑正常的工作。

    第八,要专注眼前,适当关注未来。有远见是好事,但是太多远见就容易好高骛远。为很小可能性设计的东西,没有机会经历实际检验,当故障真的发生的时候,你也不可能完全信赖它。更好的办法是将系统设计得可介入,可在紧急情况下人工去介入处理,可介入是不够的,还要容易介入。

    第九,不要对用户有假设,假设你的用户都是smart programmer,假设你的用户不需要位运算,假设你的用户要同步不要异步。除非你对这个领域非常熟悉并实际使用过类似的东西,否则还是不要假设。

    第十,咳咳,似乎没有第十了,一大早憋了这么篇无头无脑的Blog,大伙将就看看。







dennis 2011-05-22 10:30 发表评论

相关 [基础 产品 体会] 推荐:

做基础产品的体会

- BTK 4eVeR - BlogJava-庄周梦蝶
      一个公司大了,总有部分人要去做一些通用的东西给大家用,我这里说的基础产品就是这类通用性质的东西,不一定高科技,但是一定很多人依赖你的东西来完成各种各样的功能. 做这样的东西,有些体会可以说下.     首先,能集中存储的,就不要分布存储,数据集中存储有单点的危险,但是比之分布式存储带来的复杂度不可同日而语.

淘宝大牛做基础产品的体会

- - 互联网 - ITeye博客
一个公司大了,总有部分人要去做一些通用的东西给大家用,我这里说的基础产品就是这类通用性质的东西,不一定高科技,但是一定很多人依赖你的东西来完成各种各样的功能. 做这样的东西,有些体会可以说下. 首先,能集中存储的,就不要分布存储,数据集中存储有单点的危险,但是比之分布式存储带来的复杂度不可同日而语.

做商业产品的一点体会

- Kang - 互联网的那点事...
很多人问我是不是做电子商务或社会化网络的,呵呵,还真不是,而且完全不搭边. 我是做商业产品的,做的是平台项目,性质偏向于整合和贯通. 所以常羡慕做用户产品的同学,能更多的关注用户体验、交互设计,有机会使用自己设计的产品,可以听到周围最真实的反馈. 商业产品则功利和直接许多,关注的也不大相同,今天就简单的说说工作体会吧.

产品数据体系建设基础:一个产品的数据体系建设

- - 人人都是产品经理
本文抽象介绍了一个产品数据体系建设,以支持产品了解数据如何采集、计算与展现. 近期有师弟师妹不断问到产品经理必备技能中,数据分析是怎么回事. 简单了解了下其产生问题的原因与诉求,将其问题拆分为二:. 关于问题2,网上已经有足够丰富的资源进行学习与讨论,这里不再赘述,简而言之根据运营或迭代的目的进行深度思考与结论沉淀.

类O2O概念产品交互设计的几点体会和探讨

- - 互联网的那点事...
开文估计少不了做一下概念的名词解释,我就引用下网络的解释吧,O2O(Online To Offline),. 将线下商务的机会与互联网结合在一起,让互联网成为线下交易的前台. 线下服务就可以用线上来揽客,消费者可以用线上来筛选服务,可以在线成交结算. 特点:推广效果可查,每笔交易可跟踪. 这概念模式无形中给用户提供了更多的选择和便利,也给线下商务带来商机.

乔布斯的团队如何体会新用户的产品体验 ?

- - 博客园_新闻
3 月 23 日消息,iPod 之父托尼·法德尔日前在 TED 上进行演讲,分享了他从乔布斯身上学到的东西. 乔布斯坚持他的设计团队应该保持初学者的心态:去亲身体会那些从没有体验过一款产品的人的感觉. 苹果新产品上市时,和其他消费者一样,法德尔也会去苹果零售店排队,买新产品在柜台结账,然后开箱使用.

HTTP基础

- - ITeye博客
HTTP的结构主要包括下面几个要点:. HTTP的版本主要有1.0,1.1 和更高版本.    1.1 及以上版本允许在一个TCP连接上传送多个HTTP协议,1.0能 .    1.1 及以上版本多个请求和响应可以重叠,1.0不能.    1.1 增加了很多的请求头和响应头.     一个请求行,若干小心头,以及实体内容,其中的一些消息头和实体内容是可选的,消息头和实体内容需要空行隔开.

Git基础

- Wolf - 潘魏增
上个月末在公司内部作了一次《Git基础》的主题分享. 这里把分享内容公布出来,希望对一些朋友有用. 如果之前没有接触过Git,wikipedia上面已经有非常好的介绍. pdf格式:http://panweizeng.com/download/git-basics-meituan.pdf. keynote格式:http://panweizeng.com/download/git-basics-meituan.key.

JavaScript 基础

- - CSDN博客推荐文章
JavaScript可以出现在HTML的任意地方,甚至在之前插入也不成问题,使用标签. 不过要在框架网页中插入的话,就一定要在之前插入,否则不会运行. JavaScript对数据类型要求不严格,一般来说,声明变量的时候不需要声明类型,而且就算声明了类型,在使用过程中也可以给变量赋予其他类型的值,声明变量使用var关键字.