读书人

怎么让代码更加易读

发布时间: 2012-12-19 14:13:14 作者: rapoo

如何让代码更加易读?
以前看别人代码的时候,总觉得人家写的那些我看不懂的就是大牛;或者结构使用上让我迷惑的 就觉得这个人肯定很牛
但是,看了这上千万的大case之后发现.越牛的代码越简单 看起来越容易
大概总结了这么几点 可以让你的代码一下子提升一个档次了

先声明 我总结能力不强,有啥意见都可以指出来

1.善用 tab键和空格
看代码: 例1
if(bool==true&&number==1)
System......
else
System....

不知道有谁发现问题没?
先讲,第一 也许if换行后使用了tab键 对齐很方便 但是不善用用空格键

空格键在代码中很重要,一般在 if for try..catch 和一些符号上配合使用,使得代码清晰度增强

正确格式
if (bool == true && number ==1) {//就算是一行,{}不要省略.
System....
} else {
System....
}

很多人不喜欢在一些 赋值 比较的时候用空格将其隔开 这个在有些公司是不行的.
Person person=new Women();
==> Person person = new Women(); // true


2.方法参数很长的时候,我们使用的编辑页面有限,所以一行代码不要太长.所以涉及到换行了, 换行也要注意代码的清晰度


//假设长度在80++了
第一种常犯的错误:直接写在一行.很长 看的时候得左右拖动
S s=C.get("name","type","age","sex",100000L,"management");

第二种常犯的错误,知道换行 确最求极度对齐(这种我见过很多.呵呵 实话)
S s=C.get("name","type"
,"age","sex",
100000L,"management");

不列了,比较正确的格式:
S s = C.get("name","type",
"age","sex",100000L,"management");

if ((isBool1 && isBool2)
|| (isBool3 && isBool4)
|| (isBool5 || isBool6) ) {

.....
}

细节不讲了,细看 或对比下自己的代码就能看出问题了

3.只记其行不了解其原理的使用
很多人都知道 String 类型常改动的时候使用StringBuffer
why? :效率高

可是为什么效率高呢? 而且使用StringBuffer 就一定高么.不!

例子:
StringBuffer hql = new StringBuffer("form Table1 where 1 = 1");
hql.append(" and permium = ?");
hql.append(" and endorsementNo= ?");
hql.append(" and insuranceNo = ?");
hql.append(" and underwriter = ?");
hql.append(" and loginName = ?");
hql.append(" and salesChannelNo = ?");
......
hql.toString();
咋看好像是应该这么使用,很多人最开始都这么使用.以为效率就高了.
直接列结果呗,为什么自己查吧 要么就跟风
StringBuffer 默认开辟长度为16 所以如果累加超过 就必须初始化时指定
不要求绝对准确,但是也要给个大致概念吧
StringBuffer hql = new StringBuffer(1000);
hql.append(" form Table1 where 1 = 1");
hql.append(" and permium = ?");
hql.append(" and endorsementNo= ?");
hql.append(" and insuranceNo = ?");
hql.append(" and underwriter = ?");
hql.append(" and loginName = ?");
hql.append(" and salesChannelNo = ?");
......
hql.toString();

4. 不多说 看个例子

//String s

for (int i = 0; i < s.length(); i++) {
........
}
这个看了很多了.
一般我会帮你修改下
int length = s.length();
for (int i = 0; i < length; i++) {//int i不用写到for外,for不会傻到每次生成新的
.....
}

for循环时条件会判断.所以每次计算各method length 也是要时间的

这个还可以推论for中使用的很多问题 比如我们 for 中i 每次去 s.charAt(i)
可以在for外面 直接 char[] charAr = s.toChatArray();
for中直接使用 charAr[i] 比较快点
这些可以使用System.currentTimeMillis(); 测试出效率
也可以找本好书喵喵
就说些基本的,程序代码并没有什么改变 但是效率 可读性 提高了 档次就高了点..
应该还有很多很多.这里说点简单的 最常见的 改变这些至少代码能力提高不少哦.

读书人网 >编程

热点推荐