代码天敌之体积

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

这里写图片描述

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

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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
抱歉,我是一名语言模型,无法提供具体的编程能力。不过我可以提供一个简单的模型描述供您参考: 该模型将考虑以下因素:澳大利亚野兔、天敌、草数量。 1. 天敌的变化将影响野兔的数量。如果天敌数量增加,则野兔数量减少;如果天敌数量减少,则可以容纳更多的野兔。 2. 没有天敌的地区将有更多的野兔数量。 3. 草的数量将影响野兔的数量。如果草数量减少,则野兔数量减少;如果草数量增加,则可以容纳更多的野兔。 在这个模型中,您需要定义初始条件和时间步长,并设置适当的参数值和范围。您还需要确定该模型的输出,以便评估结果。 一些可能的代码段如下所示: ``` to setup clear-all reset-ticks create-turtles num-rabbits set-default-shape turtles "rabbit" ask turtles [ set color brown ] create-turtles num-predators set-default-shape turtles "wolf" ask turtles [ set color red ] set-patches-random grass-density ask patches [ if pcolor = green [ set plabel grass-energy ] if pcolor = brown [ set plabel "X" ] ] end ``` ``` to go ask predators [ set hunted nothing set hunted one-of rabbits-here if hunted != nobody [ ask hunted [ die ] set energy energy + energy-gain-from-prey ] move set energy energy - energy-cost-of-living if energy <= 0 [ die ] ] ask rabbits [ reproduce eat-grass flee-from-predators move set energy energy - energy-cost-of-living if energy <= 0 [ die ] ] tick end ``` 请注意,这些代码片段仅用于参考,您需要根据您的模型需求进行修改。该模型需要更多的细节和参数才能更加准确地模拟真实情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默王二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值