AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JAVA编程

Java开发者的十大戒律

51自学网 2015-09-03 http://www.51zixue.net

  有许多标准和实践准则可适用于Java开发者,但此处要说的,是每个Java开发者需坚守的基本原则。

  一、为代码加注释。虽然每个人都知道这点,但有时却不自觉忘了履行,今天你“忘了”加注释了吗?虽然注释对程序的功能没什么“贡献”,但过一段时间,比如说两星期之后或者更长,回过头来看看自己的代码,说不定已经记不住它是干什么的了。如果这些代码是你个人的,那还算是走运了,不幸的是,当然了,大多数时候都是别人的不幸,很多时候大家都是在为公司写代码,写代码的人也许早已经离开了公司,但别忘了一句古话,有来有往嘛,为他人,也为我们自己,请为你的代码加上注释。

  二、不要让事情复杂化。程序员有时候总是对简单问题想出复杂的解决方案,比如说,在只有五个用户的程序中引入EJB、对程序实现了并不需要的框架(framework),之类的还有属性文件、面向对象解决方案、多线程等等。为什么要这样做呢?也许我们并不知道是否这样会更好,但这样做也许可以学到一些新东西,或者让自己更感兴趣一些。如果是不知道为什么这样做,建议多请教经验丰富的程序员,如果是为了个人的目的,麻烦让自己更专业一点。

  三、始终牢记——“少即是好(Less is more)并不总是对的”。代码效率虽然很重要,但在许多解决方案中,编写更少的代码并不能改善这些代码的效率,请看下面这个简单的例子:

以下是引用片段:
  if(newStatusCode.equals("SD") && (sellOffDate == null ||
  todayDate.compareTo(sellOffDate)<0 || (lastUsedDate != null &&
  todayDate.compareTo(lastUsedDate)>0)) ||
  (newStatusCode.equals("OBS") && (OBSDate == null ||
  todayDate.compareTo(OBSDate)<0))){
  newStatusCode = "NYP";
  }

  能看明白if条件语句是干什么的吗?能想出来是谁写的这段代码吗?如果把它分成两段独立的if语句,是不是更容易理解呢,下面是修改后的代码:

以下是引用片段:
  if(newStatusCode.equals("SD") && (sellOffDate == null ||
  todayDate.compareTo(sellOffDate)<0 || (lastUsedDate != null &&
  todayDate.compareTo(lastUsedDate)>0))){
  newStatusCode = "NYP";
  }else
  if(newStatusCode.equals("OBS") && (OBSDate == null ||
  todayDate.compareTo(OBSDate)<0))
  {
  newStatusCode = "NYP";
  }

  是不是读起来容易多了呢,在此只是多加了一个if和两个花括号,但代码的可读性与可理解性就一下子提高了一大截。

  四、请不要硬编码。开发者经常有意“忘记”或忽略掉这点,因为有些时候开发日程逼得实在太紧。其实,多写一行定义静态变量的代码能花多少时间呢?

以下是引用片段:
  public class A {
  public static final String S_CONSTANT_ABC = "ABC";
  public boolean methodA(String sParam1){
  if (A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1)){
  return true;
  }
  return false;
  }
  }

  现在,每次需要将“ABC”与其他变量进行比较时,不必记住实际代码,直接引用A.S_CONSTANT_ABC就行了,而且在今后需要进行修改时,也可在一处修改,不会翻遍整个源代码逐个修改了。

  五、不要“创造”自己的框架(framework)。确切来说,有数以千计的各种框架存在,而且大多数是开源的,这些框架都是优秀的解决方案,可用于日常程序开发中,我们只需使用这些框架的最新版本就行了,至少表面上要跟上形势吧。被大家广为接受的最为明显的一个例子就是Struts了,这个开源web框架非常适合用在基于web的应用程序中。是不是想开发出自己的Struts呢,还是省点力气吧,回头看看第二条——不要让事情复杂化。另外,如果正在开发的程序只有3个窗口,就不要使用Struts了,对这种程序来说,不需要那么多的“控制”。

  六、不要使用println及字符串连接。通常为了调试方便,开发者喜欢在可能的所有地方都加上 System.out.println,也许还会提醒自己回过头来再来删除,但有些时候,经常会忘了删除或者不愿意删除它们。既然使用 System.out.println是为了测试,那么测试完之后,为什么还要留着它们呢,因为在删除时,很可能会删除掉真正有用的代码,所以不能低估 System.out.println危害啊,请看下面的代码:

以下是引用片段:
  public class BadCode {
  public static void calculationWithPrint(){
  double someValue = 0D;
  for (int i = 0; i < 10000; i++) {
  System.out.println(someValue = someValue + i);
  }
  }
  public static void calculationWithOutPrint(){
  double someValue = 0D;
  for (int i = 0; i < 10000; i++) {
  someValue = someValue + i;
  }
  }
  public static void main(String [] n) {
  BadCode.calculationWithPrint();
  BadCode.calculationWithOutPrint();
  }
  }

 

<

 

 

 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,51zixue.net不保证资料的完整性。
 
上一篇:Apache&nbsp;Tuscany&nbsp;SCA&nbsp;Java&nbsp;架构指南  下一篇:Eclipse设计实现可重用的SWT构件