- 浏览: 536404 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
飞天奔月:
public List<String> gener ...
实践中的重构30_不做油漆匠 -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道public class A {
...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在世界的中心呼喚愛 写道在classB ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在classB的finalize上打断 ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
iteye比较少上,如果可以的话,可以发e-mail交流:ch ...
深入理解ReferenceQueue GC finalize Reference
这两天一直做code review,经常看着看着就有一种要死的冲动。
好的代码,一个老生常谈的问题。结合最近的实践,总结一下常见的问题。
1 了解你的代码
很多程序员并不了解自己的代码。
比如null!=Object,很多人已经不知道为什么会有这样一个编码规范,怕if(Object!=null)写成Object=null通过判断。我并不喜欢这个规范,因为读起来不自然。
2 不要盲从
一段程序catch一个RuntimeException,把这个RuntimeException封装成一个新的RuntimeException又抛出来,问他为什么这么做,他说上层的程序catch不到这个RuntimeException,要自己构建一个RuntimeException才能catch住。而且他还咨询了别人的意见,参考了其他的代码。
我问他这样合理吗,这样可以解决问题吗,一段程序catch不到原生的RuntimeException,凭什么就能catch住你封装又抛出的RuntimeException。他的最大理由是别人这么说,所以就这么做了。同学,坚持一下自己。你应该知道这是不可能的。
后来发现问题在于打日志的程序写错了,打的是原生的toString方法,所以导致他以为没有catch到异常。
别人的代码catch是为了加入一些自定义错误消息。
3 不要产生无用的对象
A a=new A();
if(condition){
a=getAFrom();
}else{
a=getAFrom();
}
这样的new有什么用,唯一的用处就是产生垃圾。
4 不要轻易怀疑类库,先怀疑自己
一段js返回一个日期的7天前的日期,结果多了一天。结果理由就是类库出错,需要java程序员计算该值,然后传入。
当然不能这么搞了,仔细研究了代码之后,发现是js写错了。
5 命名
这个基本所有的编程书都讲了,但是估计很多的程序员对这个东西并没有足够的重视。变量,方法,类的命名一定要想一些时间再命名,不要贪图一时之快。
6 去除重复代码
这个应该算是最著名的bad code smell了。但是看代码的时候还是会不时发现一大堆重复code。
该重构了,今天重构的时候就发现了一个简单的常量两处设置不一样,但是程序的内容和意义都是一样。如果这个拖到以后,又是一个坑。
7 遵循习惯
java的实例变量的默认值大家都是知道的。请不要在一个有20-30个实例变量的类中,突然有一个boolean设成true。我一般一看这么多的实例变量,都是默认认为它们的初始值是java默认初始值。当然,一个类本身有20-30实例变量本身就是一个很扯的事情。
8 不要无用的代码
系统总是有一些历史原因,永远不会执行到的代码,发现了就删掉吧。程序员已经很辛苦了,不要让大家把时间浪费在没有用的事情上。而且,这个东西,很有可能引起读着对程序的误读。
9 没有小事
别催了。让我专业的写程序,哪怕你觉的只是加一个变量的问题,我还有很多东西需要考虑呢。这个变量加在什么地方,叫什么名字,什么类型,如何使用,测试怎么办。一大堆问题等着我呢。
10 态度
这两天看代码,总结就是如下:
前人拉屎,后人擦屁。
你不想擦屁吧,那么不要到处。。。。。。。
现在对楼主的话深有感触啊!
我做过一个系统,主页面上JS代码 平均1000以上,
有些人写的一个java类中的方法有上千行,还么有注释
程序要朗读出来,你就会发现不同在哪里了。
很多情况是很搞笑的,比如有好些人特意不写注释,为的就是让这块代码只有自己懂,然后别人搞不定只能找他。
太高估他们的记忆了,到时候其实他们自己也看不懂。
自己的烂摊子基本都还要自己来收拾,只是这种事情他本人也不好意思向别人抱怨什么。
“免死金牌”这类情况即使存在,也是很少见的。
更多的情况是,他们其实压根不知道,程序应该写成什么样。
高手和入门者的主要区别不在了解语法的多少,而是在对于惯用法“idioms”,知道得多少。
要写好代码,态度只是一小部分,大多数是水平和能力的问题。
我以前有个同事,然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,其他组员有时候也说这些玩意儿究竟是啥意思。
这就是个惯用法的例子。惯用法不仅是命名,更多是在代码逻辑中,虽然也能达到功能,但一看就不太讲究。
举个例子:
很多人喜欢写 if (userList.size()==0){
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
这个例子的问题我一直在犯,刚注意到。。。
很多情况是很搞笑的,比如有好些人特意不写注释,为的就是让这块代码只有自己懂,然后别人搞不定只能找他。
太高估他们的记忆了,到时候其实他们自己也看不懂。
自己的烂摊子基本都还要自己来收拾,只是这种事情他本人也不好意思向别人抱怨什么。
“免死金牌”这类情况即使存在,也是很少见的。
更多的情况是,他们其实压根不知道,程序应该写成什么样。
高手和入门者的主要区别不在了解语法的多少,而是在对于惯用法“idioms”,知道得多少。
要写好代码,态度只是一小部分,大多数是水平和能力的问题。
我以前有个同事,然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,其他组员有时候也说这些玩意儿究竟是啥意思。
这就是个惯用法的例子。惯用法不仅是命名,更多是在代码逻辑中,虽然也能达到功能,但一看就不太讲究。
举个例子:
很多人喜欢写 if (userList.size()==0){
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
这样的代码你真的能忍?
哈哈 我是受不了
如果程序员连简单的单词都不知道,那还是去种菜吧。做程序员不懂英语,以后的路会很苦。
用拼音做名字,实际上很屎
我以前有个同事,英语不行(我也一般)。然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,为这事我们还辩论了一番,后来也是查字典才知道,这单词中文意思也是该死的‘标题’。
这种事情那同事做了不少,让我印象深刻,其他组员有时候也说这些玩意儿究竟是啥意思。
也许他以后会很NB,但是在和你工作的时间段,他可能就是很屎。
用拼音是很怪,但是后来我的方法是让他加注释,几个字就行。总比搞些生僻英文强
这样的代码你真的能忍?
不如用中文.....
ps 中文不支持代码提示.
难怪楼主有一种要死的冲动。还有人以用拼音命名的方法为荣?
“这样客户和英语不好的都可以看懂。”
这是给那些人看的吗?何况还有注释、文档。这也是理由?!
这样的代码你真的能忍?
哈哈 我是受不了
如果程序员连简单的单词都不知道,那还是去种菜吧。做程序员不懂英语,以后的路会很苦。
用拼音做名字,实际上很屎
其实,java用汉字做函数名也是可以的。
我之前做过一个生成报表方面的程序,因为翻译太麻烦了,用报表编码也看不懂,最后干脆用:编码_报表名(xxxxx)做函数名了
这样的代码你真的能忍?
不如用中文.....
ps 中文不支持代码提示.
这样的代码你真的能忍?
哈哈 我是受不了
如果程序员连简单的单词都不知道,那还是去种菜吧。做程序员不懂英语,以后的路会很苦。
用拼音做名字,实际上很屎
请问这是“程序员杀手”教程么?
这样的代码你真的能忍?
哈哈 我是受不了
好的代码,一个老生常谈的问题。结合最近的实践,总结一下常见的问题。
1 了解你的代码
很多程序员并不了解自己的代码。
比如null!=Object,很多人已经不知道为什么会有这样一个编码规范,怕if(Object!=null)写成Object=null通过判断。我并不喜欢这个规范,因为读起来不自然。
2 不要盲从
一段程序catch一个RuntimeException,把这个RuntimeException封装成一个新的RuntimeException又抛出来,问他为什么这么做,他说上层的程序catch不到这个RuntimeException,要自己构建一个RuntimeException才能catch住。而且他还咨询了别人的意见,参考了其他的代码。
我问他这样合理吗,这样可以解决问题吗,一段程序catch不到原生的RuntimeException,凭什么就能catch住你封装又抛出的RuntimeException。他的最大理由是别人这么说,所以就这么做了。同学,坚持一下自己。你应该知道这是不可能的。
后来发现问题在于打日志的程序写错了,打的是原生的toString方法,所以导致他以为没有catch到异常。
别人的代码catch是为了加入一些自定义错误消息。
3 不要产生无用的对象
A a=new A();
if(condition){
a=getAFrom();
}else{
a=getAFrom();
}
这样的new有什么用,唯一的用处就是产生垃圾。
4 不要轻易怀疑类库,先怀疑自己
一段js返回一个日期的7天前的日期,结果多了一天。结果理由就是类库出错,需要java程序员计算该值,然后传入。
当然不能这么搞了,仔细研究了代码之后,发现是js写错了。
5 命名
这个基本所有的编程书都讲了,但是估计很多的程序员对这个东西并没有足够的重视。变量,方法,类的命名一定要想一些时间再命名,不要贪图一时之快。
6 去除重复代码
这个应该算是最著名的bad code smell了。但是看代码的时候还是会不时发现一大堆重复code。
该重构了,今天重构的时候就发现了一个简单的常量两处设置不一样,但是程序的内容和意义都是一样。如果这个拖到以后,又是一个坑。
7 遵循习惯
java的实例变量的默认值大家都是知道的。请不要在一个有20-30个实例变量的类中,突然有一个boolean设成true。我一般一看这么多的实例变量,都是默认认为它们的初始值是java默认初始值。当然,一个类本身有20-30实例变量本身就是一个很扯的事情。
8 不要无用的代码
系统总是有一些历史原因,永远不会执行到的代码,发现了就删掉吧。程序员已经很辛苦了,不要让大家把时间浪费在没有用的事情上。而且,这个东西,很有可能引起读着对程序的误读。
9 没有小事
别催了。让我专业的写程序,哪怕你觉的只是加一个变量的问题,我还有很多东西需要考虑呢。这个变量加在什么地方,叫什么名字,什么类型,如何使用,测试怎么办。一大堆问题等着我呢。
10 态度
这两天看代码,总结就是如下:
前人拉屎,后人擦屁。
你不想擦屁吧,那么不要到处。。。。。。。
评论
32 楼
J-catTeam
2010-11-05
在一个公司中出现不规范的代码常常都是由于
1.程序员的水平和自我要求。
2.紧张的工时和不完善的review环节。
3.系统经手太多,开发人员太杂。
我理解的好的代码是
流程清晰,注释友好,命名规范,格式合理,异常处理恰当。==多种
1.程序员的水平和自我要求。
2.紧张的工时和不完善的review环节。
3.系统经手太多,开发人员太杂。
我理解的好的代码是
流程清晰,注释友好,命名规范,格式合理,异常处理恰当。==多种
31 楼
116427
2010-11-05
现在对楼主的话深有感触啊!
我做过一个系统,主页面上JS代码 平均1000以上,
有些人写的一个java类中的方法有上千行,还么有注释
30 楼
116427
2010-11-05
代码如此,
情何以堪啊?
情何以堪啊?
29 楼
tuti
2010-11-05
yuyue618 写道
很多人喜欢写 if (userList.size()==0){
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
意思很大吗?
源码:
public synchronized boolean isEmpty() {
return elementCount == 0;
}
难道不同吗?
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
意思很大吗?
源码:
public synchronized boolean isEmpty() {
return elementCount == 0;
}
难道不同吗?
程序要朗读出来,你就会发现不同在哪里了。
28 楼
hijude
2010-11-05
垃圾人在垃圾公司,谁叫你生在中国,认命吧。
27 楼
gh_aiyz
2010-11-05
对楼主的看法深有同感。公司的一个项目,一份代码存在四五份的情况到处都是,很多代码看了半天才发现根本不会使用。原来,这几位写代码的仁兄都是这样做的:发现A需要某个功能,发现这在B不是写过了吗,于是CTRL+C,CTRL+V,再改吧改吧。甚至一个类里面有两个功能相似度达到99%的方法。这样的代码就是一个噩梦。
最近对这个项目进行重构,其中一个子项目重构完之后代码从9000行变成不到3500行。
最近对这个项目进行重构,其中一个子项目重构完之后代码从9000行变成不到3500行。
26 楼
yuyue618
2010-11-05
很多人喜欢写 if (userList.size()==0){
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
意思很大吗?
源码:
public synchronized boolean isEmpty() {
return elementCount == 0;
}
难道不同吗?
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
意思很大吗?
源码:
public synchronized boolean isEmpty() {
return elementCount == 0;
}
难道不同吗?
25 楼
凤舞凰扬
2010-11-05
如何确保项目团队写好代码,如何让自己的代码提高,以下步骤可以参考:
1. 代码格式化检查文件(或者说编程规范,但不要是文档型的,可以是checkstyle,可以是PMD)
2. 明确的结构和明确的第三方包依赖(同样是工具类,有的人用spring,有的人用apache,有的人干脆自己写),避免项目组的歧义。
3. 消除代码中所有的警告(包括eclipse的警告),这是代码质量变好的基础。
4. 可自动检查的代码检查工具(包括Jdepend, PMD, metric, findbugs),并修复检查出来的问题。
5. 不定期的人为抽查及比较说明。
1. 代码格式化检查文件(或者说编程规范,但不要是文档型的,可以是checkstyle,可以是PMD)
2. 明确的结构和明确的第三方包依赖(同样是工具类,有的人用spring,有的人用apache,有的人干脆自己写),避免项目组的歧义。
3. 消除代码中所有的警告(包括eclipse的警告),这是代码质量变好的基础。
4. 可自动检查的代码检查工具(包括Jdepend, PMD, metric, findbugs),并修复检查出来的问题。
5. 不定期的人为抽查及比较说明。
24 楼
cs_man
2010-11-05
tuti 写道
paranoid945 写道
很多情况是很搞笑的,比如有好些人特意不写注释,为的就是让这块代码只有自己懂,然后别人搞不定只能找他。
太高估他们的记忆了,到时候其实他们自己也看不懂。
自己的烂摊子基本都还要自己来收拾,只是这种事情他本人也不好意思向别人抱怨什么。
“免死金牌”这类情况即使存在,也是很少见的。
更多的情况是,他们其实压根不知道,程序应该写成什么样。
高手和入门者的主要区别不在了解语法的多少,而是在对于惯用法“idioms”,知道得多少。
要写好代码,态度只是一小部分,大多数是水平和能力的问题。
楼上 写道
我以前有个同事,然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,其他组员有时候也说这些玩意儿究竟是啥意思。
这就是个惯用法的例子。惯用法不仅是命名,更多是在代码逻辑中,虽然也能达到功能,但一看就不太讲究。
举个例子:
很多人喜欢写 if (userList.size()==0){
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
这个例子的问题我一直在犯,刚注意到。。。
23 楼
tuti
2010-11-05
paranoid945 写道
很多情况是很搞笑的,比如有好些人特意不写注释,为的就是让这块代码只有自己懂,然后别人搞不定只能找他。
太高估他们的记忆了,到时候其实他们自己也看不懂。
自己的烂摊子基本都还要自己来收拾,只是这种事情他本人也不好意思向别人抱怨什么。
“免死金牌”这类情况即使存在,也是很少见的。
更多的情况是,他们其实压根不知道,程序应该写成什么样。
高手和入门者的主要区别不在了解语法的多少,而是在对于惯用法“idioms”,知道得多少。
要写好代码,态度只是一小部分,大多数是水平和能力的问题。
楼上 写道
我以前有个同事,然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,其他组员有时候也说这些玩意儿究竟是啥意思。
这就是个惯用法的例子。惯用法不仅是命名,更多是在代码逻辑中,虽然也能达到功能,但一看就不太讲究。
举个例子:
很多人喜欢写 if (userList.size()==0){
...
}
惯用法应该写成
if (userList.isEmpty()){
...
}
22 楼
l4borland
2010-11-05
fool_leave 写道
dir_murong 写道
Zahir 写道
skzr.org 写道
Thanks!
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
public class YongHuGuanLiAction { public String tianJiaYongHu() { //.... } public String shanChuYongHu() { //.... } }
这样的代码你真的能忍?
哈哈 我是受不了
如果程序员连简单的单词都不知道,那还是去种菜吧。做程序员不懂英语,以后的路会很苦。
用拼音做名字,实际上很屎
我以前有个同事,英语不行(我也一般)。然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,为这事我们还辩论了一番,后来也是查字典才知道,这单词中文意思也是该死的‘标题’。
这种事情那同事做了不少,让我印象深刻,其他组员有时候也说这些玩意儿究竟是啥意思。
也许他以后会很NB,但是在和你工作的时间段,他可能就是很屎。
用拼音是很怪,但是后来我的方法是让他加注释,几个字就行。总比搞些生僻英文强
21 楼
l4borland
2010-11-05
第三条我看见很多次了。。有时候是这么个原因。
A a=new A();
if(condition){
a=getAFrom();
}else{
a=getAFrom();
}
在eclipse里面或者装了插件的地方,如果第一行只写
A a;
他会给个警告大概就是要初始化变量之类的,其实很多时候就写成A a = null;就可以了,但是很多人会直接new一个
A a=new A();
if(condition){
a=getAFrom();
}else{
a=getAFrom();
}
在eclipse里面或者装了插件的地方,如果第一行只写
A a;
他会给个警告大概就是要初始化变量之类的,其实很多时候就写成A a = null;就可以了,但是很多人会直接new一个
20 楼
fool_leave
2010-11-05
对,我也见过用汉字做名字的,好酷。
不过汉字就和编码有关系了。同样,不支持用汉字来写代码。用英语,这样你的代码让哪国人看都看得懂。
不过汉字就和编码有关系了。同样,不支持用汉字来写代码。用英语,这样你的代码让哪国人看都看得懂。
19 楼
chenlixun
2010-11-05
抛出异常的爱 写道
Zahir 写道
skzr.org 写道
Thanks!
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
public class YongHuGuanLiAction { public String tianJiaYongHu() { //.... } public String shanChuYongHu() { //.... } }
这样的代码你真的能忍?
不如用中文.....
ps 中文不支持代码提示.
难怪楼主有一种要死的冲动。还有人以用拼音命名的方法为荣?
“这样客户和英语不好的都可以看懂。”
这是给那些人看的吗?何况还有注释、文档。这也是理由?!
18 楼
cleanerje
2010-11-05
fool_leave 写道
dir_murong 写道
Zahir 写道
skzr.org 写道
Thanks!
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
public class YongHuGuanLiAction { public String tianJiaYongHu() { //.... } public String shanChuYongHu() { //.... } }
这样的代码你真的能忍?
哈哈 我是受不了
如果程序员连简单的单词都不知道,那还是去种菜吧。做程序员不懂英语,以后的路会很苦。
用拼音做名字,实际上很屎
其实,java用汉字做函数名也是可以的。
我之前做过一个生成报表方面的程序,因为翻译太麻烦了,用报表编码也看不懂,最后干脆用:编码_报表名(xxxxx)做函数名了
17 楼
抛出异常的爱
2010-11-05
Zahir 写道
skzr.org 写道
Thanks!
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
public class YongHuGuanLiAction { public String tianJiaYongHu() { //.... } public String shanChuYongHu() { //.... } }
这样的代码你真的能忍?
不如用中文.....
ps 中文不支持代码提示.
16 楼
zouzou
2010-11-05
code review总是或多或少有些问题
15 楼
fool_leave
2010-11-05
dir_murong 写道
Zahir 写道
skzr.org 写道
Thanks!
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
public class YongHuGuanLiAction { public String tianJiaYongHu() { //.... } public String shanChuYongHu() { //.... } }
这样的代码你真的能忍?
哈哈 我是受不了
如果程序员连简单的单词都不知道,那还是去种菜吧。做程序员不懂英语,以后的路会很苦。
用拼音做名字,实际上很屎
14 楼
langyu
2010-11-05
skzr.org 写道
Thanks!
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
请问这是“程序员杀手”教程么?
13 楼
dir_murong
2010-11-05
Zahir 写道
skzr.org 写道
Thanks!
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
总结的非常棒啊
自己的一点想法,打算尝试下:
对于命名一直在纠结中,取名太费时间了
A 通用命名规则大家都差不多
B 从Action到用户这一端,直接使用汉语拼音命名!
C 用户的数据表,表名和字段也用汉语拼音
这样客户和英语不好的都可以看懂。
public class YongHuGuanLiAction { public String tianJiaYongHu() { //.... } public String shanChuYongHu() { //.... } }
这样的代码你真的能忍?
哈哈 我是受不了
发表评论
-
编码知识ppt1.4
2013-01-15 17:13 1159编码知识的一个PPT,时隔1年重新更新一个版本。 检测编码的 ... -
CSV文件的一些注意点
2012-08-20 15:38 7533狭义的csv是comma separated ... -
编码简介
2011-11-20 21:18 1119梳理一下编码的知识,做一个ppt。 -
开发故事
2011-10-30 20:49 907故事1: 这段代码我没有找到被引用的地方,是不是有什么隐秘的用 ... -
用户体验的分层
2011-03-20 11:22 1188前两天开会的时候涉及到用户体验。突然想起了王国维的《人间词话》 ... -
系统故障分类以及对我们的启示
2010-11-13 00:58 1295最近关注了一下系统的故障。发现故障基本的原因可以分为以下几类: ... -
从scrum说敏捷
2010-09-09 00:47 1076最近又搞了一次scrum培训,整整搞了两天,加上以前也有参加过 ... -
衡量程序的质量
2010-08-21 22:44 1064本文介绍几个衡量代码质量的指标和工具 1 CAP篇 不好的程 ... -
我们要写怎么样的系统
2010-08-17 23:17 1005编程也好久了。越来越觉得一个做一个好的程序员不是一件简单的事情 ... -
使用反射提高单元测试的质量
2010-06-28 19:59 2253首先,单元测试以及单元测试覆盖率只是一个工具,很烂的代码一样可 ... -
文档的作用
2010-06-16 18:09 1167万事万物总是有其两面性的。 当瀑布模型把文档放在一个很重要的位 ... -
计算机数学基础 数论简要笔记
2010-03-26 17:59 1531基本概念:整除,因子,素数,合数,互质,公约数,最大公约数,欧 ... -
一个貌似失败的行业通用解决方案之旅
2010-03-11 10:53 1521公司于两年前计划研发一个行业的通用解决方案。 当时的外部环境是 ... -
《代码之美》第7章 漂亮的测试 的bad smell
2009-09-26 02:13 1088这章基于二分查找讨论了一个漂亮的测试应该怎么做。 先看看原文怎 ... -
好好的做程序员这份有前途的工作
2009-09-23 00:07 1271好好的做程序员这份有前途的工作!!! 凡是对我说这句话的人都 ... -
理论计算机的一些有启发的想法
2009-09-16 17:21 9221 门电路,自动机和图灵机。 门电路只能处理固定数目的输入 ... -
jar的混乱
2009-05-25 23:43 1251使用了一阵.net之后回到 ... -
面向过程,面向对象与程序设计
2009-04-28 23:55 1418有一种说法,说是一个长时间搞面向过程的人(搞c的人)很难理解O ... -
抽象简化了开发吗?
2009-03-29 16:10 1219都说抽象是简化了开发! 呵呵,我不这样认为,声明先,不是我的 ...
相关推荐
C#,深度好文,精致好码,文本对比(Text Compare)算法与源代码 在日常应用中,文本比较是一个比较常见的问题。文本比较算法也是一个老生常谈的话题。 文本比较的核心就是比较两个给定的文本(可以是字节流等)之间...
了解和掌握这些设计模式,有助于开发人员更好地组织代码,提高代码的可读性和可维护性,同时也有助于促进团队之间的合作和沟通。 注:本文格式为xmind,需要xmind软件(支持手机端、PC端)。助力读者利用碎片时间...
这些示例代码演示了JavaScript中实现继承的几种方式,每种方式都有其适用的场景和特点。理解这些继承方式,对于学习和使用JavaScript面向对象编程是非常重要的。在实际开发中,开发者可以根据具体需求选择合适的继承...
封装是面向对象编程的核心思想之一,它指的是将数据(或属性)和操作数据的代码(或方法)捆绑在一起形成一个对象,从而将对象的实现细节隐藏起来,外部代码通过对象提供的接口与其进行交互。封装可以减少编程错误,...
C#导出数据到EXCEL表格是个老生常谈的问题了,写这篇文章主要是给和我一样的新手朋友提供两种导出EXCEL的方法并探讨一下导出的效率问题,本文中的代码直接就可用,其中部分代码参考其他的代码并做了修改,抛砖引玉,...
我们知道,计算机只能识别二进制,我们平时写的代码都需要转成二进制才能被计算机识别。所以,我们写的字符怎么转换成二进制呢,这个过程实际就是通过一个标准使我们写的字符与特定数字一一对应,这个标准就称为字符...
当对象技术成为老生常谈之后,尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与...
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与...
在Android开发中,事件传递...理解这一机制能够帮助开发者更好地控制用户交互,提高应用的用户体验。通过不断实践和学习,开发者可以熟练掌握这个机制,并运用到日常开发中,从而编写出更加灵活、响应迅速的应用程序。
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与...
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,...
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,...
javascript中的this,constructor ,prototype,都是老生常谈的问题,深入理解他们的含义至关重要。在这里,我们再来复习一下吧,温故而知新! this this表示当前对象,如果在全局作用范围内使用this,则指代当前页面...
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与...
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与...
### 老生常谈Python之装饰器、迭代器和生成器 #### 一、装饰器 装饰器是Python中的一个重要特性,它提供了一种在不改变原函数代码的情况下为函数添加新功能的方法。这对于增强代码的灵活性和可维护性至关重要。 #...
多态性使得代码更具通用性和可扩展性,是面向对象编程的重要特性之一。Python 作为一种动态类型的语言,其多态性表现得尤为明显。 一、多态的定义与特点 1. 多态意味着一个类型可以表现出多种行为或形态。在面向...
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与...