在腾讯的两年

Ghostzhang 发表于

重新看了一遍《在两年前》,时间已经过去了半年多,即然说找时间聊下在TC的日子,就趁着过段时间简单的说一下,也算是一个阶段总结。

刚到深圳的时候真有点“陌生”和“兴奋”,这位城市没有广州那么让我觉得“生硬”,绿化做得很好,到处是花花草草,天也比广州蓝很多。办完入职手续,就算是正式加入了TC这个大家庭了,说是家庭,因为这里比起其他公司的环境,包括工作的氛围,都比较舒服。如果要说最吸引我的地方,那就是一份完全符合我兴趣的工作及发展空间。不用画设计图、不用写脚本,只要页面制作,这个环境在两年前我是想都不敢想,但真的让我遇上了,所以我很快就答应了到TC来。

刚进TC的时候,我所在的小组只有5个人,每个人都最少要支持2~3个业务的需求,当然,有些业务下面还会分portal、client等,如Qzone、QQ音乐。通过做了一段时间的活动,以更快的熟悉工作流程后,我第一个做的项目是网站相册(现在看到的还是两年前的作品),这个是我最先遇到“IE下多了只猪”这个经典的IEBug。

接着是礼品店(已经改过多次),曾经让我熬了两次通宵后都因为开发原因而放弃使用我做的页面,让我下定决心再也不为了这种小项目通宵。当然,有得就有失,这个项目也创下了我最快的速度,四天做了一个项目(好象是34个页面),那时最常说的一句话就是“半小时可以做多少页面?”,呵呵,现在可能做不出来了。另外,《[原]用DIV做九宫格》也是在这期间完成的。

随后是单身贵族(现在的“爱情小镇”),这个项目算是第一次尝试多人同时制作一个项目,虽然在此之前就有一些关于多人协作的想法,但在这个项目中可以说是“无能为力”,而这个项目只不过是两个人协同制作。协作真不是说说就能行的事情,并不是简单的定些约定、规范。如何才能更好的协作,这个问题在之后也时不时在我脑海里出现。可以说是“团队合作”的问题,但不是一般所想的不同工种间的合作,像设计、制作、开发间的合作,而是同一个工种的多个人,同时做一个项目时的方法。

Qzone是我接触时间最长的一个产品,到现在整整两年。可能很多同学因为个人情感问题或无法查看源代码而觉得Qzone十分“神秘”,Qzone是个很有挑战的项目,Qzone的“庞大”可以跟一个门户站相比,“复杂”却可能是门户站的10倍以上,但我觉得最大的挑战是改变那种种的“历史原因”,Qzone里有着很多“不可改变”的“历史原因”……由于我是做页面的,也就不讨论其它方面的问题了,只说页面。

当时的版本是3.2,只有小窝的表现,使用的是表格布局,4.0版本要实现打破那个小框框,也想在Qzone上使用CSS布局,由于我在之前的项目上已经使用了CSS布局的方式制作页面,正好有机会参与进来,在Qzone4.0启动的时候,跟着 twinsen 一起做Demo。当时4.0的页面Demo已经是兼容了FF的,但由于大环境的原因,最终4.0还是只兼容了IE。接触Qzone后发现,Qzone应该算是国内第一个应用了重构思想的站点,3.2里已经有不少地方都体现出了表现和内容分离的特点。

接下来就是着手将二级的页面都重构, twinsen 在帮忙把日志重构之后基本就离开了Qzone,留下了一堆的“历史问题”,所谓“历史问题”,就是指架构设计上的限制、或制作规则上的原因,导致出现无法解决的问题,就称之为“历史问题”。在Qzone里会遇到很多变态的问题,为了避开那些问题,也练就了一套写法,慢慢成了习惯,有时我也说不上为什么要这么写,虽然离开了Qzone的环境不一定会遇上那些问题。最大的问题还是由于架构设计上的不合理,以暴制暴始终不是办法,还是得从源头着手,改造整个页面的架构。

当然不是想改就改的,公司还要赚钱呢,又不能像My space一样,直接关闭改版。只能在平时一点一点的改,借小改版或优化的需求,对底层架构进行调整。Qzone最大的特点应该算是可以换风格,也许你会说“是博客都可以啊”,分析过的同学会知道Qzone并不是简单的改颜色、换图,有些是不能改的,模块是不固定的,还有些是用户自己装扮的。这期间也出现了打开速度过慢的问题,链接数过多、代码大量冗余等等问题一下都冒了出来,无它,如果站点打不开,用户大量流失,功能再强也是白搭,更谈不上收入了。解决链接数过多,使用的就是现在大家都在用的“合并图片”,老外叫作“Css Sprites”,小图变大图,用流量换速度。我也因此得到了一个“优秀员工”。这次经历也让我知道了页面制作并不是只能简单的把设计稿变成网页,还有“性能优化”这一层的事情可以做,一个好的页面制作者,应该把页面在实际项目的重要性考虑在内,对其做相应的优化。

随着对Qzone页面结构的进一步了解,能做的优化也越来越多,从HTML的写法、HTML语义、CSS的写法,到模块化框架,再到样式文件的分布,越来越多的东西,那些“历史问题”也成了我的工作乐趣,只是始终是在4.0里,不管底层如何优化,最终成品的结构直接对产品产生了影响。花了一年半的时间,我完成了80%的重构,除了音乐盒和一些小页面仍无法升级到4.0,恨!~

历史又将重演,Qzone迎来了5.0,这次换我制造“历史问题”了。5.0可以说比4.0更“庞大”、“复杂”,但结构清析,支持更多的扩展性,更好的支持协作,更趋向于一个平向的架构。关于5.0的内容,不方便说太多,而且也说不清,有兴趣的同学可以看下我的Qzone ,现在还在内测中,黄钻的用户过段时间也能优先体验下啦。至今还记得两年前有一次跟 twinsen 喝酒的时候对我说的话:“我的Qzone时代已经过去,接下来就是你的时代了。”,以这句话送给将接手Qzone的“战友们”。很快我就有一次“大升级”啦,呵呵,所有的方向都会有所调整,虽然有可能会离开Qzone,也没什么不舍的,过程比结果更重要。

系列文章

讨论