锁定老帖子 主题:老生常谈之如何写好的代码
精华帖 (3) :: 良好帖 (15) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-05
对,我也见过用汉字做名字的,好酷。
不过汉字就和编码有关系了。同样,不支持用汉字来写代码。用英语,这样你的代码让哪国人看都看得懂。 |
|
返回顶楼 | |
发表时间:2010-11-05
第三条我看见很多次了。。有时候是这么个原因。
A a=new A(); if(condition){ a=getAFrom(); }else{ a=getAFrom(); } 在eclipse里面或者装了插件的地方,如果第一行只写 A a; 他会给个警告大概就是要初始化变量之类的,其实很多时候就写成A a = null;就可以了,但是很多人会直接new一个 |
|
返回顶楼 | |
发表时间:2010-11-05
fool_leave 写道 dir_murong 写道 Zahir 写道 skzr.org 写道 Thanks!
总结的非常棒啊 自己的一点想法,打算尝试下: 对于命名一直在纠结中,取名太费时间了 A 通用命名规则大家都差不多 B 从Action到用户这一端,直接使用汉语拼音命名! C 用户的数据表,表名和字段也用汉语拼音 这样客户和英语不好的都可以看懂。 public class YongHuGuanLiAction { public String tianJiaYongHu() { //.... } public String shanChuYongHu() { //.... } } 这样的代码你真的能忍? 哈哈 我是受不了 如果程序员连简单的单词都不知道,那还是去种菜吧。做程序员不懂英语,以后的路会很苦。 用拼音做名字,实际上很屎 我以前有个同事,英语不行(我也一般)。然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,为这事我们还辩论了一番,后来也是查字典才知道,这单词中文意思也是该死的‘标题’。 这种事情那同事做了不少,让我印象深刻,其他组员有时候也说这些玩意儿究竟是啥意思。 也许他以后会很NB,但是在和你工作的时间段,他可能就是很屎。 用拼音是很怪,但是后来我的方法是让他加注释,几个字就行。总比搞些生僻英文强 |
|
返回顶楼 | |
发表时间:2010-11-05
最后修改:2010-11-05
paranoid945 写道 很多情况是很搞笑的,比如有好些人特意不写注释,为的就是让这块代码只有自己懂,然后别人搞不定只能找他。 太高估他们的记忆了,到时候其实他们自己也看不懂。 自己的烂摊子基本都还要自己来收拾,只是这种事情他本人也不好意思向别人抱怨什么。 “免死金牌”这类情况即使存在,也是很少见的。 更多的情况是,他们其实压根不知道,程序应该写成什么样。 高手和入门者的主要区别不在了解语法的多少,而是在对于惯用法“idioms”,知道得多少。 要写好代码,态度只是一小部分,大多数是水平和能力的问题。 楼上 写道 我以前有个同事,然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,其他组员有时候也说这些玩意儿究竟是啥意思。 这就是个惯用法的例子。惯用法不仅是命名,更多是在代码逻辑中,虽然也能达到功能,但一看就不太讲究。 举个例子: 很多人喜欢写 if (userList.size()==0){ ... } 惯用法应该写成 if (userList.isEmpty()){ ... } |
|
返回顶楼 | |
发表时间:2010-11-05
tuti 写道 paranoid945 写道 很多情况是很搞笑的,比如有好些人特意不写注释,为的就是让这块代码只有自己懂,然后别人搞不定只能找他。 太高估他们的记忆了,到时候其实他们自己也看不懂。 自己的烂摊子基本都还要自己来收拾,只是这种事情他本人也不好意思向别人抱怨什么。 “免死金牌”这类情况即使存在,也是很少见的。 更多的情况是,他们其实压根不知道,程序应该写成什么样。 高手和入门者的主要区别不在了解语法的多少,而是在对于惯用法“idioms”,知道得多少。 要写好代码,态度只是一小部分,大多数是水平和能力的问题。 楼上 写道 我以前有个同事,然后有个留言本模块的字段,叫‘标题’,一般人就起个名字叫'title'对吧,他不知道,然后查字典,起名叫’superscription‘,其他组员有时候也说这些玩意儿究竟是啥意思。 这就是个惯用法的例子。惯用法不仅是命名,更多是在代码逻辑中,虽然也能达到功能,但一看就不太讲究。 举个例子: 很多人喜欢写 if (userList.size()==0){ ... } 惯用法应该写成 if (userList.isEmpty()){ ... } 这个例子的问题我一直在犯,刚注意到。。。 |
|
返回顶楼 | |
发表时间:2010-11-05
如何确保项目团队写好代码,如何让自己的代码提高,以下步骤可以参考:
1. 代码格式化检查文件(或者说编程规范,但不要是文档型的,可以是checkstyle,可以是PMD) 2. 明确的结构和明确的第三方包依赖(同样是工具类,有的人用spring,有的人用apache,有的人干脆自己写),避免项目组的歧义。 3. 消除代码中所有的警告(包括eclipse的警告),这是代码质量变好的基础。 4. 可自动检查的代码检查工具(包括Jdepend, PMD, metric, findbugs),并修复检查出来的问题。 5. 不定期的人为抽查及比较说明。 |
|
返回顶楼 | |
发表时间:2010-11-05
很多人喜欢写 if (userList.size()==0){
... } 惯用法应该写成 if (userList.isEmpty()){ ... } 意思很大吗? 源码: public synchronized boolean isEmpty() { return elementCount == 0; } 难道不同吗? |
|
返回顶楼 | |
发表时间:2010-11-05
对楼主的看法深有同感。公司的一个项目,一份代码存在四五份的情况到处都是,很多代码看了半天才发现根本不会使用。原来,这几位写代码的仁兄都是这样做的:发现A需要某个功能,发现这在B不是写过了吗,于是CTRL+C,CTRL+V,再改吧改吧。甚至一个类里面有两个功能相似度达到99%的方法。这样的代码就是一个噩梦。
最近对这个项目进行重构,其中一个子项目重构完之后代码从9000行变成不到3500行。 |
|
返回顶楼 | |
发表时间:2010-11-05
垃圾人在垃圾公司,谁叫你生在中国,认命吧。
|
|
返回顶楼 | |
发表时间:2010-11-05
yuyue618 写道 很多人喜欢写 if (userList.size()==0){
... } 惯用法应该写成 if (userList.isEmpty()){ ... } 意思很大吗? 源码: public synchronized boolean isEmpty() { return elementCount == 0; } 难道不同吗? 程序要朗读出来,你就会发现不同在哪里了。 |
|
返回顶楼 | |