谈谈创业公司的技术选型--朴素的技术观

标签: 资料文档 startup | 发表时间:2012-12-04 01:07 | 作者:54chen
出处:http://www.54chen.com

以下内容由 [五四陈科学院]提供

创业公司技术选型

创业公司的定义
把服务器数量在千台以内(如果存在服务端),或者业务没有爆发过或者是长时间没有爆发过的公司,叫做创业公司。

朴素技术观的定义
有很多看上去很美好的技术,背后都有很多对应的很残酷的事实,在一个创业公司许多选择给你,你可以使用当前最炫的技术,也可以使用团队最擅长的技术。朴素世界观,是指所有选择使用团队最擅长技术的一种观念。

语言
语言之争是最没品了,这里不争哪种语言好哪种语言坏。
这里有一个办法来选择语言:所有团队成员的简历中,出现最多的一种语言为标准。
例外情况:团队成员中有一位大拿,是某门语言的泰斗,不说在国际上,在国内也要有领头羊的成绩。印象中在创业中大量使用GO语言的许式伟大侠是例外中最典型的一个,不过看看人家的成绩,已经把GO摸的一清二楚了。

反例:太多。

以下条件满足可开启反例模式:
1.至少一人完全理解整个语言的语法
2.至少一人完全理解语言精髓
3.至少一人完全掌握此语言常见debug工具
4.至少一人在一个规模较小应用成功使用

存储
这里主要讲服务器的存储。
如何选择:mysql+memcached至少在twitter、renren.com、taobao、qq、sina、baidu......等公司大量使用,如果你团队成员一个都不是来自这些公司,那大胆地用吧,用死也用不出什么毛病来。当然了,十分需要在业务爆发时找到一位可靠的mysql dba,这里要提一下人人网的创始员工DBA刘启荣大侠,引用一句前老板的话:×××无出启荣之右也。
反例:此处省去创业团队名字,有史可考。当年KV十分火爆,某兄弟对cassandra十分感冒,于是在整个系统初期设计时全部使用了这玩意。后来,开始市场宣传的时候,这玩意儿就是不行了,一行人接连多夜赶制回mysql。

以下条件满足可开启反例模式:
1.使用cassandra要理解全篇dynamo文档所写,完全掌握RWN,完全熟知虚拟分区作用,清晰知道cassandra在分区上偷工减料所带来的影响。
2.团队成员里有一个人完全理解了这个要使用的东西的源代码。这里要提一下张宴大侠,他长年研究tt代码,在使用上已经很有一手,所以有他在的地方,用tt完全没有问题。如果国内有一个人冒出来说自己对cassandra代码长年研究,我一定不相信,因为这些项目代码行数已经超过一个人快速理解的能力,当你看完的时候,新的版本又出来了。
3.很多单独的解决方案,因为代码量不大,完全可以从零开始花人力搞定它,像redis,在新浪被用得很多,到了你的创业公司,不一定可以搞定,因为什么呢,你需要一个完整的人先摸透它的习性。摸透了习性的小项目,完全可以先在小项目上使用。

框架与分工
框架的作用在于更加利于分工。
以服务端为例,java如果你选择了人人网切切王开源的rose框架的话,spring的好处一应俱全,而且因为其天生的restful的好处,最小粒度可以以api为分工。这样,在一个团队内部,任何人完全可以修改任何人的代码,因为是使用同一个框架,同一种思路,写出来的代码不会是完全两样的。php如果你选择的ZF之类的,以controller为单位的MVC模型一下子就定义了你的项目,同样也可以做到成员随意维护任意模块。

如何选择:框架的选择只看历史。如果历史上有框架可选,那一定是选择验证过的。如果没有,那尽可能地花时间提炼框架。
反例:框架似乎人类写代码的常规总结行为,即便再烂的项目,在局部去看也一定会有一些框架性的代码存在。反例要说说discuz1.0以前的代码,感觉完全是应届生所为,想到哪里写到哪里,和放牛一样,维护基本上不可能。

以下条件满足可开启反例模式:
1.android等客户端开发暂时还没有特别好的框架性的东西,不过android本身就是一个大框架,业务代码的框架需要自己提炼。
2.非常非常小的项目,瞬间写完要上线。
3.项目只用一次。
4.救火。

大项目与小项目
反例:从超级大公司出来的工程师,特别是企业开发的同学,特别喜欢一个超级大的项目,把所有的功能都包括在里面。所有人一起,天天折腾这个trunk,动不动的我踩着你的脚了,你压着我的手了。
正例:换到互联网模式,所有项目能拆则拆,越扁平越好,每个部分有一个指定的master,主要负责此项目的稳定。这实际在开源界早就这样干了。实际操作中,只要能够找到一个合适的master,就可以拆。

没有任何条件可以开启反例模式。

流程与管理
这个标题太大,分小来说。主要包括代码版本管理、依赖管理、代码制度、项目发布流程。这里没有反例,只讲经验。

版本管理:目前大多数人还在使用svn,但是git真的非常非常好用。pro git book只需要一个晚上的仔细阅读,就一定可以学会。实际学习成本很低了,一个创业团队,这点学习能力都没有的人,赶紧离开你的团队吧。
依赖管理:java大多已经使用maven,老早的ant带一堆jar包的形式已经落后了,赶紧换。php的依赖管理一直都很弱,不过有人参考ruby搞了一个composer,可以试试,也许可以帮助改进。
代码制度:什么样的代码才可以checkin/merge master?一般的标准为:跑过所有的unit test、master维护者或者团队成员review通过。
项目发布流程:项目立项到项目上线,划分N个小阶段,实施scrum或者变体的scrum,但是一个原则就是任何一个阶段的不确定,都会在后面的阶段里放大,小步快跑才是正确的节奏,有时候宁愿不要一些功能,也一定要先发出来。



想快点找到作者也可以到Twitter上留言: @54chen
或者你懒得带梯子上墙,请到新浪微博: @54chen

相关 [创业 公司 技术] 推荐:

2011年技术创业公司解剖分析(图表)

- PH囧ENIX - 36氪
肯定有许多的朋友都梦想着或者已经在创建自己的公司了,但是2011年的技术创业公司大概是个什么样的情况呢. 我们一起来看一个非常有趣的图表吧,以下是经过重新编辑的图表:. 不知道朋友们看完这个图表后对创业公司的认识有没有新看法呢.

创业公司如何确定技术路线

- - 《程序员》杂志官网
首先要说的是,我认为创业公司的技术路线选择并不是一个技术问题. 如果是一个纯粹的技术问题,那么很可能会一直争论不休,最后的结果就像某个笑话里面说的,某公司一直到倒闭技术路线还没统一. 因此,本文不会向你推荐任何一个具体的技术方案. 创业公司往往都面临着不同程度的资金和资源短缺,经不起反复修改技术路线带来的资源浪费,需要管理者或者技术带头人能够较早地确定一个适合的技术路线.

谈谈创业公司的技术选型--朴素的技术观

- - 五四陈科学院-坚信科学,分享技术
以下内容由 [五四陈科学院]提供. 把服务器数量在千台以内(如果存在服务端),或者业务没有爆发过或者是长时间没有爆发过的公司,叫做创业公司. 有很多看上去很美好的技术,背后都有很多对应的很残酷的事实,在一个创业公司许多选择给你,你可以使用当前最炫的技术,也可以使用团队最擅长的技术. 朴素世界观,是指所有选择使用团队最擅长技术的一种观念.

如何在创业公司的技术面试中脱颖而出(第1部分)

- - 博客 - 伯乐在线
在过去5年中,我面试了数百名IT工程师,我认为很值得把我的面试IT工程师的经验同大家分享. ●帮助人们为他们的下一个面试准备. ●帮助IT工程师找到合适的工作. ●帮助IT工程师创造更好的环境. 我们通过两个方面面试IT工程师:. ●技术技能:包括理论和实践技能以及经验等. ●非技术技能:性格,沟通技巧,是否能够融入我们的文化环境.

Google 大厨的创业公司

- scaoen - 爱范儿 · Beats of Bits
人说“近朱者赤,近墨者黑”,大厨和科技能碰撞出什么火花. Google 的两位前任大厨 Nate Keller 和 Mirit Cohen 显然也被硅谷的创业文化深深影响,2008 年自立门户开了一家创业公司  Gastronaut,业务是——做菜. Gastronaut 这名字就够 Geek,右图就是公司 logo,难道是 Google + Astronaut 的缩写.

创业公司打工指南

- chenhua - 阮一峰的网络日志
创业公司最大的苦恼之一,就是雇不到优秀程序员. 为什么优秀程序员宁愿去微软公司,也不愿意去创业公司打工. 因为他们了解微软,而对创业公司则是一点把握也没有. 为了解决这个难题,上周四晚上,风险投资公司Y Combinator举办了一个见面会"Work at a Startup",让创业公司与程序员直接见面,增进彼此的了解.

创业公司如何被收购?

- eating - 每日鲜果精选
为什么一些创业公司被大公司并购,而另外一些创业公司没有获得这些机会呢. 让我们来做一个假设,并来思考一下这个问题.  假如你有两家创业公司,条件基本一致,那么有什么因素可以让一家比另外一家更容易获得并购的机会呢. 我认为其中一个重要的因素是并购方对于可能并购的两家公司拥有偏见,而导致这种偏见的原因往往是并购方对于一家公司的了解比另外一家要深入.

创业公司如何挑选员工

- 小宇 - Tech2IPO
当人们讨论为创业公司招聘人才的时候,通常会说“招聘比你聪明的人”或者“找那些有名的人”. 这并不能成为创业公司在招聘人才时候充分的标准. 人们总想找到出奇聪明和出色的人,这对于早起的创业公司还不够. 创业公司还需要那些有着额外亮点的人才. 作为小的创业公司,我认为应该去寻找有以下特征的人才:. 这些人愿意去深入到一个问题中并设法解决问题,并负责那些别人不愿意做的事情.

创业公司成功Pivot的秘密

- 罗智中 - 36氪
编者按:James Altucher是一位投资人、作者、程序员兼创业人士. 同时也是资产管理公司Formula Capital的总经理,曾写过6本关于投资的书. 此人经常会写一些经验类的文章给创业者和投资人,文风幽默犀利(不及阿灵顿). 另推荐两篇他的文章《如何成为世界上最好的创业者》和《创业者如何创造自己的好运》.

数据看创业成功公司

- - 《商业价值》杂志
创业失败是必然的,成功才是偶然的——著名天使投资人薛蛮子曾在《商业价值》杂志的峰会上这样说. 这句话同样适用于美国硅谷这样的创业密集地带,即便拿到了风险投资,也不是每一个创业公司和团队都能获得成功. 如果创业失败,那将是一无所有,但如果成功了,结果又会是怎样呢. CrunchBase最近整理了数据库中的创业公司,得出了一个分析报告.