互联网的狗年

曾经有一本书,讲互联网的时间以狗年计,人类一年相当于七个狗年,作者在亚马逊的三年,于是折算为二十一狗年。在亚马逊的每个人,都疯狂热爱自己的事业,崇拜自己的首领,超负荷的工作,痛并快乐着,时间是那么充实。

人生如狗,尤其互联网的人生,2006是中国农历狗年,在这漫长而纷繁的一年中,中国的互联网行业发生了太多故事,经历了潮起潮落;我们期待着新的英雄出现,也叹息着曾经风生水起的公司走向沉寂;Web2.0从炙手可热的新生名词,变成了随处可见的标签,到处是一片蓬勃的景象,虽然也伴随着各种质疑,但不可否认,2006是充满机遇和挑战的一年,也是从业者们辛勤耕耘、看到希望的一年。

 

在这一年里,我们的团队开发、运营了一些新的互联网产品,有些成功,有些失败,在同一个项目里,也有些版本成功,有些版本失败,所积累的经验和教训,也是这几年以来最为丰富的。不谈太多概念和理论,这里就结合一个项目,说一些技术方面的体会。

Web2.0产品和技术

在去年,Ajax被炒得很热;今年初,有人说2006RSS年;通过XHTML+CSS布局网页受到比以往更高的重视,页面制作越来越向编程接近;Web2.0带来了很多新的技术名词,这些技术引发了很多不同于以往的、让人眼前一亮的东西,比如个人门户、Web OfficeWeb IM等,不过其实是老瓶新酒,这些技术很早就存在,只是没有现在这样被提到前台,带来的改变,基本都是前端、展现给用户的方面,如果认为掌握、应用这些技术就会更有竞争力,那显然是个误区,可能是叫好不叫座。

那么Web2.0的技术体现在哪里?我认为从Web2.0的本质出发,用户贡献内容的长尾效应、用户关系的社会性,会带来海量的数据,如何存储,如何有效组织这些数据便于用户快速存取,并从中进行数据挖掘,展示给用户真正关心的内容,这是一个网站背后的内功,相比之下更为重要,把这个基础做扎实之后,再通过前端的技术手段使用户浏览时有更流畅的体验,这样的互联网产品才是优秀的。

初期选型:简单即是美

初期项目确定、技术选型的时候,简单是很重要的原则,互联网项目基本上都采用开源的技术平台拼接而成,开源就意味着选择非常多,因此采用成熟的、组员熟悉的技术至关重要。曾经有个专题讨论过Web开发平台的优劣,J2EELAMPWeb2.0项目最常用的两个平台,性能可靠、支持全面,Python也有成功案例,只是熟悉的程序员不够多,显得特立独行。至于新秀RoR,还需要发展一段时间才可能登上舞台,类库支持不够,部署方案也不够成熟。

互联网和企业级项目最大的区别,可能在于不断变化,即使用户感觉不变,后端也在不断变化,因为随着压力与日俱增,结构需要不断调整才能够适应。所以项目初期的框架要灵活,并便于重构。MySpace初期的架构就是简单的ASP.NET两层架构,后来变成三层,后来又在数据库之上加一层,变化非常大,他们也正是在这种变化中发展壮大,为什么他们初期没有那么重视设计容量,这是要谈的下一个问题。

开发控制:敏捷中的节奏

作为互联网项目,敏捷相比其他行业更为重要,市场先入可以带来一定的竞争优势和壁垒。当有一个非常好的创意,并且确信可以发展壮大到产生商业价值,那么就应该以最快的速度进入,迅速做到这个领域的领先位置。

我们非常重视敏捷方法,开发初期,人员很少沟通带宽充足,问题很少,但随着人员增多,容易出现版本混乱、代码质量降低各种问题。面对出现的问题,我们逐步形成了适合自己的方法:用脑图、框图等最务实的需求分析工具,在一开始制定代码规范,通过结对编程检查代码,用SVN控制版本,用JIRA控制进度,用Wiki管理文档避免口口相授,这些方法被证明非常有效。

发展阶段:速度就是竞争力

互联网产品,速度就是竞争力。在用户调查中,我们了解很多人每天浏览Web的时间最多半小时,半小时能看多少页面,就决定了网站的访问量,访问量和打开页面的时间本来就成反比,况且用户感受越流畅,能得到更多的信息,也就会停留的更久,忠诚度更高。一些成功的产品,把这个原则发挥到了极致,比如CraigslistHotOrNot等。在设计互联网产品的时候,浏览速度,尤其第一次打开的速度是至关重要的,在MVC三层框架中,除了要求提高后端Model层和Logic层数据的存取速度,也对Web前端优化提出了挑战,采用精简、压缩的XHTMLCSSJavascript代码,采用性能更好的Web Server,优化网络部署,都是要解决的问题。

初具规模:优化无止境

Google的技术架构中有一个原则:尽量使用内存。硬盘的容量和速度,跟不上摩尔定律的发展步伐,已经在很多系统中成为了最大的瓶颈。LiveJournal是个优秀的Blog提供商,拥有MemcachedMogileFSDJabberd等开源项目,其中Memcached性能突出,使用方便,可以很有效的实现简单的缓存,也被FacebookMixi等网站广泛采用。

Web2.0产品一般结构比较复杂,尤其SNS领域,用户量庞大、关系复杂,每个用户需要的信息都不同,很难像传统的论坛、门户那样,通过缓存、CDN优化速度,在系统达到一定规模的时候,数据库难以提供足够快的查询性能,通用缓存也无法适应复杂结构和快速变化,这时就必须根据应用,搭建特殊中间层缓存系统,把常用的数据按照他们的结构,载入内存供查。

最新的调查表明,MySpace的流量已经逼近或超过Yahoo,说明SNS产品的巨大能量,同时在如此高的流量下还要保持用户互通、速度飞快,是一件非常有挑战的工作。下图是MySpace在九千万用户时候的架构,我们可以看到Cache在其系统中占据的重要地位。任何系统发展到如此大的规模,都需要一个复杂的缓存系统。

我们在实际操作中,选用ICE作为通讯中间件,开发了一套分布式中间层缓存服务,对提高存取速度、减轻数据库压力起到了显著作用。

以上是我们的一个SNS项目从规划、产生到初具规模的发展历程,在这一年里,我们的团队伴随着这个项目,度过了这农历的狗年,也是互联网的七个狗年,像当年亚马逊的员工一样,虔诚的倾注着自己的心血,疯狂的投入这个事业,受挫时为之心急如焚,顺利时为之欢欣鼓舞,享受着这个过程。

 

作为团队的一员和技术负责人,作为投身互联网阵营的一名后辈,这一年对我来说也是不同寻常的一年,比以往有更多的收获和成长。前些年陆续看过温伯格的几本书,比如《你的灯亮着吗?》、《成为技术领导者》等,今年里有了一些更切实的体会,如何发现、抓住问题的本质,如何成为解决问题型的技术领导者,如何从技术中获取力量,如何激励团队,这些问题在今年考虑的更多。

这一年更加认识到学习的重要性。了解越多,未知的领域就越多,越觉得需要充电,学会以最开放的心态,从所有能学习的地方学习,学习技术、项目、管理、方方面面,在这样的过程中,逐渐拓宽自己的视域,扩大自己的影响圈。

这一年更加认识到务实的重要性。《人月神话》中的一些观点在实战中得到了印证,互联网是一个强调个人英雄的行业,互联网的团队必须是精干的团队,每个人要成为多面手,把每个人的效率和潜能发挥到极致,关于这一点,有本书《Getting Real》,描述了互联网项目正确、务实的做法,读后感悟良多,明白了之前的一些失误。

能够感受到自己的成长,是一件非常快乐的事情,感谢在这一年里给予我指导和帮助的朋友,感谢我深爱的家人,感谢互联网的狗年。

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值