代码天敌之体积

简介: 代码天敌之体积

前言:好吧,我觉得Steve yegge的牢骚能力太棒了,以至于我不得不重新来审视自己,到底我该怎么对待Java,怎么对待我热爱了8年的Java,当然了,到目前为止,我可没有被Steve忽悠着去学习新的语言,如ruby,我还会待在Java的阵营,但是有必要,我要对自己以往的代码进行审视,看看Java代码的天敌到底是什么?


经常不经意间就发现文章被扣到各式各样的网站上面,甚是可恶!

那么人生何处不爬虫,爬虫请标http://blog.csdn.net/qing_gee

见贤思齐焉,见不贤而内自省也!

代码统计

image.png



这是我们“大宗期货交易平台”的交易端代码,主要负责交易撮合,SVN最后一个版本的日期是2015年8月7日,可以看到其净代码量在15201行。


再来统计一下2015年1月14日的代码量,7个月时间,代码已经被我优化过了数次,请先不要质问我优化代码的能力!(当然,如果你非要质问,那么你肯定是个大牛,希望你能给我优化的建议。)

image.png



看到这个版本更迭,你肯定会说,代码量将会有不小的差距,然而统计结果让我大吃一惊!

image.png


代码量差距竟然只有区区的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,在这方面,做的真的不好。如果你的项目体积增长的速度超过了业务的增长速度,我想,那是非常可怕的一件事情。我们看到了很多软件公司因为资金链短缺而沦陷,但是我相信同样有很多软件公司因为不可控的代码量而沉沦。




你应该也玩过俄罗斯方块,为了挑战自己,你并不是从最下面一行开始思考着消除,而是等到累计到只有三四行余白的时候开始动手动脑筋消除,然而这个时候,你存活下来的几率并不高,很多时候你都在叹息,差一点就成功了,但事实是你失败了!那么在软件开发这条路上,你也不要一味的等到所有功能都齐全了,再来优化代码,也许到那个时候,你的代码量将不再可控!


结语:体积是代码的天敌!不要认为你控制着成万上亿行的代码而洋洋得意,觉得那才是真正的牛逼,而是要注意把控那越来越肥的体积!


相关文章
|
存储 编解码 计算机视觉
使用ffmpeg缩小视频体积的几种方式
上述命令将输入视频input.mp4转换为H.265编码格式,并将结果保存为output.mp4文件。其中,-c:v选项表示视频编码器,libx265表示使用x265编码器,-crf选项表示视频质量,28表示目标视频质量,值越小视频质量越高,文件体积越大。
387 0
|
3月前
|
缓存 监控 UED
升级 Vue3 时,如何减少打包体积的增加?
升级 Vue3 时,如何减少打包体积的增加?
263 59
|
7月前
|
缓存 前端开发 算法
前端需要加载一个大体积的文件时,可以这么优化
前端需要加载一个大体积的文件时,可以这么优化
|
7月前
|
缓存 自然语言处理 前端开发
JS/CSS体积减少了67%,我们是如何做到的?
JS/CSS体积减少了67%,我们是如何做到的?
66 1
|
7月前
解决Vue3.0项目多次运行后,项目体积增大问题(高达60G)
解决Vue3.0项目多次运行后,项目体积增大问题(高达60G)
191 0
【C++之基于对象】计算3个长方柱的体积
【C++之基于对象】计算3个长方柱的体积
|
编译器 C语言 C++
g++命令编译出来的文件体积过大解决方案
g++命令编译出来的文件体积过大解决方案
512 0
|
XML IDE 开发工具
安卓减小apk的体积,整体优化代码
安卓减小apk的体积,整体优化代码
259 0
安卓减小apk的体积,整体优化代码
|
前端开发 JavaScript 编译器
【Svelte】当Svelte在项目在调试模式下的中的使用在js级别的差异和细化后的体积差异
【Svelte】当Svelte在项目在调试模式下的中的使用在js级别的差异和细化后的体积差异
|
JavaScript 定位技术 CDN
Vue经典项目瘦身大作战(打包压缩全过程)——体积直降3倍
Vue经典项目瘦身大作战(打包压缩全过程)——体积直降3倍
693 0
Vue经典项目瘦身大作战(打包压缩全过程)——体积直降3倍