14

三年前,我刚进腾讯,是在Qzone的商城组,职位是后台开发。
顾名思义,商城是卖东西的地方,涉及到的业务有装扮、购买、扣费等逻辑。
当时Team里没有专门的前端工程师,前端的工作都由后台工程师兼任。
从技术的角度看,就是从前端的JS、HTML、CSS,到中间的CGI,都后台的服务器,都有涉及。
其实这是一个挺好的职位,对增加技术的广度很有好处。

刚到Qzone的时候,我的导师Welkin,就对我说:
”现在的代码很烂,但也就这样了,到有人忍受不了的时候,自然会重写的“,而且说了不止一次。
他当时在做套装,可能改得比较苦闷吧。

当时我刚进去没几天,不太理解他的意思,而且也有点不以为然,心想:
”只要自己严谨一点,总不至于写出很烂的代码吧?“
后来我才知道,原来写代码和打篮球一样,也是团体运动,一个人是赢不了球的。

做完一个相对独立的小活动,赚了一百万之后(很夸张),开始真正接触商场的项目。
第一步当然是看已有的代码,当时只是觉得不太容易看懂,也并不算很烂。
到了后来,当我有一次要改购物车的代码时,才体会到Welkin当时的痛苦。

基本上是过程式的JS,存在不少全局变量,嵌套关系过于复杂。
以至于单纯看代码已经很难了解实际的运行流程,必须要用调试器来单步跟踪了。
显然,Welkin还能忍受这种代码,因为他做套装的时候,并没有重写这些代码。
必须承认,当时我也容忍了这些代码,只是修改了部分,以求完成功能。
当然我可以给自己借口:当时业务逻辑和前端技术都不太熟悉,想改也无从下手。
但是总之,我容忍了这种代码的存在。

再后来要对大头贴做改版,再次碰到了这种无从下手的代码。
从代码的风格可以看出,明显经过三个人以上的修改。
这次我把流程整理了一下,但也没有重写。
或者说,一定程度上,我又容忍了。

08年10月,我来到了邮箱,早期的主要工作是对阅读空间的CGI做重构。
经过几轮的重构之后,程序的流程变得比较让人满意,在这个基础上做新功能的速度也有了提升。
但是经过一段时间的开发之后,现在代码里的坏味慢慢开始散发出来。

所以我的结论是,代码也符合热力学定律,自然就处于熵增的状态,必然会慢慢变得腐烂。
一个团队的代码质量,并不决定于你能写出多好的代码,而是决定于你能容忍多烂的代码。

preload preload preload

无觅相关文章插件,快速提升流量