[Java基础知识] [Java高级编程] [Java网络编程] [J2EE]
 [开发工具] [中间件] [Web开发] [J2ME] [JSP] [Web开发]
 [Java与数据库] [Java开源] [设计模式] [在线文档]
下载中心
[Java教程] [开发工具] [代码源码]
[Oracle数据库] [视频教程]

Java开发人员的十大戒律

发布时间:2007-5-14 22:01:07     来源:佚名    作者:Aleksey …

5.    不要发明你自己的frameworks

已经推出了几千种frameworks,而且它们中的大多数是开源的。这些frameworks中间有很多是极好的解决方案,被应用到成千上万的应用中。你们需要跟上这些新frameworks的步伐,最起码是肤浅的。在这些极好的、应用广泛的frameworks中间,一个最好的、最直接的例子是Struts。在你所能想象到的frameworks中,这个开源的web frameworks对于基于web的应用是一个完美的候选者。但是你必须记住第二条规则——不要让事情复杂化。如果你开发的应用只有三个页面—请,不要使用Struts,对于这样一个应用,没有什么“控制”请求的。
 
6.    不要打印行和字符串相加
我知道,为了调试的目的,开发人员喜欢在每一个我们认为适合的地方添加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();
 }
}
在下面的表格中,你能够看到calculationWithOutPrint()方法的运行花了0.001204秒。相比较而言,运行calculationWithPrint()方法花了令人惊讶的10.52秒。
(如果你不知道怎么得到一个像这样的表格,请参阅我的文章“Java Profiling with WSAD Java Profiling with WSAD
避免这样一个CPU浪费的最好方法是引入一个包装器方法,就象下面这样
public class BadCode {
               
                               public static final int DEBUG_MODE = 1;
                               public static final int PRODUCTION_MODE = 2;
               
               public static void calculationWithPrint(int logMode){           
                               double someValue = 0D;
                               for (int i = 0; i < 10000; i++) {
                                              someValue = someValue + i;
                                              myPrintMethod(logMode, someValue);
                               }
               }
                                              
               public static void myPrintMethod(int logMode, double value) {
                    

上一页  [1] [2] [3] 下一页


发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  相关文章
   
  • 上一个JAVA文章:

  •  
  • 下一个JAVA文章:
  •        
      网友评论
      精彩友情推荐  

  • 关于我们 | 版权申明 | 网站地图 | 广告指南 | 友情链接 | 联系我们
  • Copyright (C) 2003-2008 Javafan.net, All Rights Reserved 版权所有 Java爱好者 京ICP备05010995号