`
climber2002
  • 浏览: 63330 次
  • 性别: Icon_minigender_1
  • 来自: 法国
社区版块
存档分类
最新评论

一个应该忏悔的代码片段

阅读更多
请看下面这段代码:

// append every msisdn string in msisdnArray to target list file
			for (int i = 0; i < msisdnArray.length; i++) {

				//disable the function of check the duplicated MSISDN in target list
			//	if (!this.existInTodayFile(msisdnArray[i])) {

					this.addMsisdnToCache(msisdnArray[i]);
					writer.write(msisdnArray[i] + "\r\n");
					log.debug("The MSISDN: " + msisdnArray[i] + " was add to TargetList file successfully!");
			//	}
			} // end of for


这段代码不是我写的,不过整个项目基本上是我设计的,现在这个项目需要维护,existInTodayFile这个函数是检查文件中MSISDN是否已经存在,今天一个维护的同事问我为什么要把这行注释掉,我依稀记得注释掉这行代码的决定是我做的,但时至今日,我已经根本想不起来为什么要把这一行注释掉了。
分享到:
评论
51 楼 leo_yau 2009-05-22  
在法國,應該很舒心吧?
有時間我也去那轉轉······到時候找你當導游,哈哈··················
50 楼 bluemusic 2009-05-09  
<div class="quote_title">iaimstar 写道</div>
<div class="quote_div">
<div class="quote_title">crazy.j 写道</div>
<div class="quote_div">
<div class="quote_title">iaimstar 写道</div>
<div class="quote_div">
<div class="quote_title">heavener 写道</div>
<div class="quote_div">大家在真正部署项目的时候都会把注释去掉吗?js都会压缩吗?<br>
</div>
<br>完全不会,基本都不用js。。。ajax更是完全不用。。。客户喜欢看实际的,不喜欢花里胡哨的东西</div>
<br>ajax-&gt;花里胡哨?。。。不一定吧,没有必然的联系。。。</div>
<br>事实上,有<br>你是用ajax可能是技术上的考虑,但是从别的角度考虑ajax就是花里胡哨的东西,不管从使用上,还是界面,抑或是技术</div>
<p> </p>
<p>实现上代码的优雅完全可以做到不花里胡哨。其实前提就是客户喜欢的是什么。而效果只是局部刷新也算不上花里胡哨,真的炫的是做样式和排版的。另外ajax常用的是aj,ax中的一部分。感觉套一个很大的概念,再扣一顶花里胡哨的帽子,有些过了。</p>
<p> </p>
<p>正题,估计LZ那段代码是在需求发生变更做出的调整。</p>
49 楼 NO.one 2009-05-05  
奥,这种事情就不用再追究了,主要是在管理上不规范所致
以后在注释或者是改动同事代码的时候  最好要跟别人交流一下

怕望文生义
48 楼 iaimstar 2009-05-05  
crazy.j 写道
iaimstar 写道
heavener 写道
大家在真正部署项目的时候都会把注释去掉吗?js都会压缩吗?

完全不会,基本都不用js。。。ajax更是完全不用。。。客户喜欢看实际的,不喜欢花里胡哨的东西

ajax->花里胡哨?。。。不一定吧,没有必然的联系。。。

事实上,有
你是用ajax可能是技术上的考虑,但是从别的角度考虑ajax就是花里胡哨的东西,不管从使用上,还是界面,抑或是技术
47 楼 gigivszhao 2009-05-04  
jansel 写道
hsbljyy 写道
这就应该忏悔啦?我碰到过从头到尾一大堆注释掉的代码,可是解释都不解释为什么,而且代码功能也都不写注释,最为关键的是,我要去修改、维护这些代码,而我又不是那种喜欢说三道四的人,给我任务,我会蒙头把代码一行行看完,弄清楚是为什么再改,这样速度就慢了,慢了就有人催,催着就急着做,急着做就容易出问题,结果老是被骂,有的时候真的想说一点三字经,骂远些写代码的人。PS:其实Java代码还好,比较规范,容易懂,你想想看,已要维护一个JSP页面4K多行的JS代码时,你想想看那痛苦程度了!而且都是一坨一坨的。


兄台没有碰到因为JSP过长,JVM不能编译的情况吧。我就碰到过,大家可以猜猜里面是啥东东了。



jsp过长,jvm不能编译。这个好像是以前的版本不行,新的版本应该解决了这个问题。
46 楼 凤舞凰扬 2009-05-01  
   这段程序有两个问题:
   1. 在循环中去读取文件并检查字段是非常低效率的,极容易产生性能问题(就如同循环去检查某些值是否存在于数据库中一样)。
   2. 从程序中可以看出思路作者是想把msisdn写入某个文件中,却又需要检查文件中是否存在该字符串。这时会存在有读操作和写操作的冲突(首先取决于existInTodayFile函数方法的实现)。即使没有冲突,这样的检查也丝毫没有意义,假设在msisdnArray数组中存在重复项,因为并没有flush并关闭流,在另外的读取流中根本就检查不到,所以这种检查就失去了意义。

    看看前面楼层的一些朋友扯到了如何进行配置管理,呵呵,有些偏题了。即使再严格的代码管理机制(比如说check in之前必须有注释之类),都无法解决人的问题(任何工具都无法验证注释是否正确)
45 楼 crazy.j 2009-04-29  
iaimstar 写道
heavener 写道
大家在真正部署项目的时候都会把注释去掉吗?js都会压缩吗?

完全不会,基本都不用js。。。ajax更是完全不用。。。客户喜欢看实际的,不喜欢花里胡哨的东西

ajax->花里胡哨?。。。不一定吧,没有必然的联系。。。
44 楼 weid0907 2009-04-28  
我猜应该是无论文件是否存在,均加入缓存写文件吧?存在文件就覆盖原文件,不存在就直接创建。
43 楼 zhuxinyu 2009-04-28  
这样的代码要是在我们的项目中出现,既没编码格式,有没良好的注释,肯定是要被骂死的。 这种情况是极为不允许的。
42 楼 iaimstar 2009-04-27  
heavener 写道
大家在真正部署项目的时候都会把注释去掉吗?js都会压缩吗?

完全不会,基本都不用js。。。ajax更是完全不用。。。客户喜欢看实际的,不喜欢花里胡哨的东西
41 楼 zzknight 2009-04-27  
fantasybei 写道

原来在js里写了很多注释,现在要求全部删除,说是为了减小文件大小。



分成开发版,测试版和发布版。

发布版没有注释。
开发版尽量注释。
测试版适当注释。
40 楼 mazzystar 2009-04-26  
没用的地方直接删了就好 设置不加注释不允许commit
39 楼 xie_ling_yun 2009-04-26  
i am new hand,不过有一次我也注释过这个东西,我当时是这样的
我加 像if (!this.existInTodayFile(msisdnArray[i]))条件判断的时候是想这个条件成立以后再执行下面的程序,开始觉得这样就行,后来想到程序不能碰到这个下面就不能执行了吧,最好采用异常处理,就决定改成抛出异常了,如果这个条件不成立就转到异常处理,不过又觉得写异常也不是太好,就先留着,注释掉了,看看以后是不是真的需要异常处理
38 楼 黑暗浪子 2009-04-26  
lin5061 写道
基于这种情况 我和我项目组的人做法是:一定要写清楚注释!而且注释一定要包含有用的信息 哪怕是"xx年xx月xx日与某某确认 修改此处为xxxxxx" 注释一定要能帮助你或他人以后能知道这些代码修改的来龙去脉 只写了功能变更的注释在有些情况下是没意义的

这是好习惯,不过我认为只有在提交文件时候写清楚,但是在代码里最好不这样。因为代码里写注释这种事情很多人都坚持不下来的。
37 楼 skydream 2009-04-26  
为什么不加comments?

我现在平时写点小代码玩,都是自己装subversion,提交时写注释,习惯了。

注释这东西,万一有需要又没有写的时候,很吐血的
36 楼 lin5061 2009-04-25  
基于这种情况 我和我项目组的人做法是:一定要写清楚注释!而且注释一定要包含有用的信息 哪怕是"xx年xx月xx日与某某确认 修改此处为xxxxxx" 注释一定要能帮助你或他人以后能知道这些代码修改的来龙去脉 只写了功能变更的注释在有些情况下是没意义的
35 楼 hatedance 2009-04-25  
按楼主的说法,时间很久了,如果已经进入维护阶段,任何代码的更改必然是需求变更或者bugfix引起的。去翻一翻bug跟踪系统的历史。
如果是开发阶段留下的,那就不要管它了,当时的需求就是这个逻辑。有需求文档吧?别说找不到了。
34 楼 黑暗浪子 2009-04-25  
yangtao309 写道
项目开发的时候 先做测试是必要的
用Junit进行单体测试 或者用DBunit测试都可以

我是习惯现在测试表间关系 以及配置关系 然后再具体的开发功能
可能前期很话时间 真的可以避免很多问题

最近的一个项目 一同事觉得测试费时间 就直接上手现实功能部分
要数据就自己在数据表里面添加
然后就出错误了 而且还很难找到原因
最后发现是oracle下建的序列没有开始滚动

而我之先 对自己负责的表关系都进行了增加删除 级联的操作
就没有出现这样的问题
同样 后面要数据 也是在数据表里面加的

测试费事 但却是保证后续开发的高效完成

你是用DBUnit做的?
我最近也碰到一个问题,DBA把五年以来所有sql,sp都给我,让我在本机oracle测试是否跑的通,结果测试过程那是非常痛苦。不知道如果用DBunit会怎么样。因为很多公司都不愿意给个人这么多时间准备测试,唉。

33 楼 jcs7575 2009-04-25  
傻了吧    

我们这样的代码是会打回去的 要么就打开,要么就删除
如果注释掉 必须注释上理由
32 楼 iampurse 2009-04-25  
这个- 我以前也是都加comments的,
后来见别人从来都不加的,
我也就没加了 - -。

相关推荐

Global site tag (gtag.js) - Google Analytics