首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么让代码更加易读

2012-12-19 
如何让代码更加易读?以前看别人代码的时候,总觉得人家写的那些我看不懂的就是大牛或者结构使用上让我迷惑

如何让代码更加易读?
以前看别人代码的时候,总觉得人家写的那些我看不懂的就是大牛;或者结构使用上让我迷惑的 就觉得这个人肯定很牛
  但是,看了这上千万的大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(); 测试出效率
  也可以找本好书喵喵
  就说些基本的,程序代码并没有什么改变 但是效率 可读性 提高了 档次就高了点..
  应该还有很多很多.这里说点简单的 最常见的  改变这些至少代码能力提高不少哦.

热点排行