前言:好吧,我觉得Steve yegge的牢骚能力太棒了,以至于我不得不重新来审视自己,到底我该怎么对待Java,怎么对待我热爱了8年的Java,当然了,到目前为止,我可没有被Steve忽悠着去学习新的语言,如ruby,我还会待在Java的阵营,但是有必要,我要对自己以往的代码进行审视,看看Java代码的天敌到底是什么?
经常不经意间就发现文章被扣到各式各样的网站上面,甚是可恶!
那么人生何处不爬虫,爬虫请标http://blog.csdn.net/qing_gee
见贤思齐焉,见不贤而内自省也!
代码统计
这是我们“大宗期货交易平台”的交易端代码,主要负责交易撮合,SVN最后一个版本的日期是2015年8月7日,可以看到其净代码量在15201行。
再来统计一下2015年1月14日的代码量,7个月时间,代码已经被我优化过了数次,请先不要质问我优化代码的能力!(当然,如果你非要质问,那么你肯定是个大牛,希望你能给我优化的建议。)
看到这个版本更迭,你肯定会说,代码量将会有不小的差距,然而统计结果让我大吃一惊!
代码量差距竟然只有区区的14行,这到底是为什么?我敢向你保证,这两个版本之间的代码有天大的不同,然而其体积为什么没有消肿呢?
反思
再次强调一下,我们是一个创业公司,服务端代码基本上由我来完成,至于我的编码水平怎么样,不等你猜测,我的回答肯定是很烂!
那么这个时候,一些真正的大牛也许会对我有所怜惜。当然也许有一些人开始啧啧了,说这家伙代码水平这么烂,也能做一个期货交易所的交易软件?
当然,无论你怎么想,我都不会反驳你,因为我把上面的“罪证”贴出来,就是为了来反思这件事,到底在对待代码体积这件事上,我们能得出什么结论?
回头看看吧,统计一下你的项目,代码已经达到了多少行,无论你的项目是阿里巴巴的淘宝系统,还是一个计算机小程序,你觉得你的代码体积你还能忍受得了吗?
也许你会认为,不是有eclipse这种IDE吗?它足可以容纳我的代码量,并且能够帮我进行重构,等等,先来看看Steve的数据。
事实上,我试了好几个星期都没能把自己那50万行代码导入eclipse,完成索引。一动它就假死,然后再也动不了了。处理2000万行代码更是妄想。
好吧,你也许会说,Steve的电脑配置太差,这我肯定不认可,他作为一个技术界大牛,在亚马逊和Google呆过的员工,我相信他的电脑配置肯定不会比你的差!
曾经,我的上司对我这样说,“交易平台的代码,包括交易端、通信端、行情端、web管理端、前置机端,加起来应该不足5万行,而xxx项目的代码至少已经突破20万行,你的项目和xxx项目难度不在一个等量级上,所以你不知道xxx项目的难度!!”
好吧,我的项目体积小,是我的错了!xxx项目是c#写的,其小组成员达到了10人,而交易平台也就我一个人,加上客户端一个人,我们两个人维护了5万行的代码,那xxx项目10个人只能维护20万行代码,项目还难产?
好吧,请原谅我的粗俗,我说这话,并没有什么恶意,我只是想说,代码量大并不是什么坏事,按照Steve说的,“体积才是代码的天敌”,那么无论是C#还是Java,在这方面,做的真的不好。如果你的项目体积增长的速度超过了业务的增长速度,我想,那是非常可怕的一件事情。我们看到了很多软件公司因为资金链短缺而沦陷,但是我相信同样有很多软件公司因为不可控的代码量而沉沦。
你应该也玩过俄罗斯方块,为了挑战自己,你并不是从最下面一行开始思考着消除,而是等到累计到只有三四行余白的时候开始动手动脑筋消除,然而这个时候,你存活下来的几率并不高,很多时候你都在叹息,差一点就成功了,但事实是你失败了!那么在软件开发这条路上,你也不要一味的等到所有功能都齐全了,再来优化代码,也许到那个时候,你的代码量将不再可控!
结语:体积是代码的天敌!不要认为你控制着成万上亿行的代码而洋洋得意,觉得那才是真正的牛逼,而是要注意把控那越来越肥的体积!