转贴:
"说一说编程恶习"
http://www.blogjava.net/uiiang/archive/2006/10/16/75502.html

这哥们郁闷阿,维护这么一堆代码...
评论
cookoo 2006-10-28
我碰到过一次郁闷的注释:一会注释写在被注释的函数上面,一会注释写在函数下面,真是让人脑筋转弯。
yun 2006-10-28
好好有趣,初出茅庐的牛人好象都这样似的。OooO00Ooo究竟代表什么呢?确实没见过啊。
dada 2006-10-28
见过一套系统数据库的表字段全是英文,另一套全是拼音的,还有一套中英文混杂的。最牛b的是当时设计的老法师就像字典一样,问一下能把n个系统的表的字段关系都背出来。
庄表伟 2006-10-28
Lucas Lee 写道
yfmine 写道
上次听谁说有"l1"这种变量呢,前几天一不小心也遇到了...而且还有"l1_1",听那位老兄解释才知道是"loop1"的缩写.


见过OooO00Ooo这样的变量么?赫赫,注意其中有零。
在代码混淆过的程序里见过
Lucas Lee 2006-10-27
yfmine 写道
上次听谁说有"l1"这种变量呢,前几天一不小心也遇到了...而且还有"l1_1",听那位老兄解释才知道是"loop1"的缩写.


见过OooO00Ooo这样的变量么?赫赫,注意其中有零。
yfmine 2006-10-27
上次听谁说有"l1"这种变量呢,前几天一不小心也遇到了...而且还有"l1_1",听那位老兄解释才知道是"loop1"的缩写.
zfigo_000 2006-10-27
说的很好。
snowbamboo 2006-10-27
最初用JAVA写SWING程序,也出现过一个类1W多行代码,基本没写注释,老大疯了……
ddd 2006-10-26
两三个文件里面跳转的指针

这可是C程序员基本功。
……仅仅在两三个文件里面跳转如果还驾驭不了,就别弄C了。
asd 2006-10-26
召唤t1,以前听他说过他的在两三个文件里面跳转的指针,真的想看看人类智慧飞跃到什么地步了。
ddd 2006-10-26
又一个参与挖坟行列的。

此风不可涨啊,此风不可涨。
ozzzzzz 2006-10-26
基于文本的就行了,不用搞基于语义的那么复杂。其实我说的这种情况稍微有点开发时间的人都遇到过。当然我们这样做的目的也仅仅是基于商业竞争的考虑。
Lucas Lee 2006-10-23
ozzzzzz 写道
Lucas Lee 写道
我刚学编程的时候也不会命名,随便搞个字母就好了,或者什么a1,a2的。
后来也用过一阵子拼音。
在后来还是觉得应该用英语,比较cool。哈哈

其实这种方式并没有什么问题,至少我以前指导的几个公司都用这个方法。
当然我会维护一个程序数据字典,里面对a1、a2这些名称都有对应的中文或者英文名字,如果愿意还可以有简单的介绍(不过我强烈建议这个介绍就免了,因为我相信名字就应该自己说明自己)。并且有小工具可以直接替换这些名字。其实这样也是一种测试的方法。


局部变量如果生存范围很小的话,用a1,a2的命名方式影响不大,比如在只有两三行的method里这么用(即便是这样我还是宁愿使用带意义的命名,比如result)。

如果在instant,class 变量里这么用,危害比较大了。维护一个数据字典不如自己说明自己的命名,省去了翻字典的过程。易读性好多了。
runes 2006-10-23
ozzzzzz 写道
Lucas Lee 写道
我刚学编程的时候也不会命名,随便搞个字母就好了,或者什么a1,a2的。
后来也用过一阵子拼音。
在后来还是觉得应该用英语,比较cool。哈哈

其实这种方式并没有什么问题,至少我以前指导的几个公司都用这个方法。
当然我会维护一个程序数据字典,里面对a1、a2这些名称都有对应的中文或者英文名字,如果愿意还可以有简单的介绍(不过我强烈建议这个介绍就免了,因为我相信名字就应该自己说明自己)。并且有小工具可以直接替换这些名字。其实这样也是一种测试的方法。


敢问用啥写的程序阿? 如果a1 a2这种的,从类名到局部变量名,到函数名,到..... 都有的话,怎莫对应呢?

不知道是啥样的小工具,“直接替换这些名字“,是文本形式的呢,还是语义形式的呢?

语义形式的的话,基本上就等价 rename的refactor了,CDT可是折腾了半天才出来一个rename的refactor的。
ozzzzzz 2006-10-23
Lucas Lee 写道
我刚学编程的时候也不会命名,随便搞个字母就好了,或者什么a1,a2的。
后来也用过一阵子拼音。
在后来还是觉得应该用英语,比较cool。哈哈

其实这种方式并没有什么问题,至少我以前指导的几个公司都用这个方法。
当然我会维护一个程序数据字典,里面对a1、a2这些名称都有对应的中文或者英文名字,如果愿意还可以有简单的介绍(不过我强烈建议这个介绍就免了,因为我相信名字就应该自己说明自己)。并且有小工具可以直接替换这些名字。其实这样也是一种测试的方法。
ctwu 2006-10-23
adamzhao 写道
simohayha 写道
唉,我们公司 就差不多,整个全是拼音,数据库命名,变量命名,类命名,全是拼音,nnd每次猜得我都郁闷了.


你可曾见过拼音+英文的命名方式? 呵呵,一个变量名足足让人猜了半年才明白是什么意思。



呵呵,说不定还能练本领。可以参加天才gogogo
itfkn 2006-10-23
我就是啊 命名规则=英文_拼音缩写
Lucas Lee 2006-10-19
gigix 写道
simohayha 写道
唉,我们公司 就差不多,整个全是拼音,数据库命名,变量命名,类命名,全是拼音,nnd每次猜得我都郁闷了.

有没有见过“test_0601221453”这样的命名?
名字是写这个测试案例的时间……


这个也够有创意的...这样搞的话,都可以自动命名了。
Lucas Lee 2006-10-19
Julien 写道
我还搞过一大堆PB里面的数据处理程序要转事务过程
完全傻了,一大堆几乎完全一摸一样的script,但是又不是这个等于那个,数据表处理的部分肯定不同,此外还有一些很细微的赋值转换之类
感情他们写程序就是从一个拷贝成另外一个然后稍微改一下……
于是扔掉eclipse,扎进ultraedit的文本比较器里头泡了泡一个星期,最后大概把整个的规模合并到原来的1/4了


是的!这种情况看来比较普遍。
这种情况下代码逻辑的冗余非常大。
但是(N年前)当我那个同事第一次编写这类程序时,他觉得很爽,这样又快又有成就感(代码量迅速上升),我还记得他经典的一句"我觉得我的代码可移植性还不错。",敢情他的可移植性就是利于Copy & Paste & 改动一点。也不是嘲笑人家,谁不经历成长期?觉得挺有趣的。

近两年搞了一个项目,里面有很复杂的报表。其中好几个是类似和相关的,我的同事做的就跟上面说得差不多。大段的代码是相似但绝不相同,改动了少量地方。我数了一下,这样的大段有12处,大约是由于3x4的变化引起的。即第一个因素有3种可能,第二种因素有4种可能。可以推断,再加一个变化因素,会以倍数增加!

(重构谈得多了,我们这里举一些大家亲身体会的例子更有效果。)

后来我重构了一把,花了一周整理和测试,代码量也是成倍减少,但适应变化的能力提高了。不用担心用户再加一个因素。而且,出错的机会减少了,都是用一套代码,而不是看上去差不多,但各有不同的代码。
adamzhao 2006-10-19
simohayha 写道
唉,我们公司 就差不多,整个全是拼音,数据库命名,变量命名,类命名,全是拼音,nnd每次猜得我都郁闷了.


你可曾见过拼音+英文的命名方式? 呵呵,一个变量名足足让人猜了半年才明白是什么意思。
Lucas Lee
搜索本博客
最近加入圈子
存档
最新评论