Java开发者需要注意的十条法则

发表于:2011-5-17 09:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  5、不要发明自己的框架结构

  有数以千计的框架结构而其大多数都是开放源。许多框架结构是被用在数以千计的应用程序中的优秀的解决方案。至少在表面我们需要用上新的框架结构。其中最好的也是广发应用的框架结构的例子就是Struts.这个开放源web结果框架是一个非常好的候选者来用于web-based 应用程序。请不要用自己版本的Strut,你将会在尝试中死去。但是你必须记住规则2—别把事情复杂化。如果你的应用程序要开发3个screen-请不要用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秒运行。相比之下,用了惊人的10.52秒去运行calculationWithPrint() method.

      (如果你想要知道如何制作这个的表格,请阅读我的文章题目是"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) {  
  • if (logMode > BadCode.DEBUG_MODE) { return; }  
  • System.out.println(value);  
  • }  
  • public static void main(String [] n) {  
  • BadCode.calculationWithPrint(BadCode.PRODUCTION_MODE);  
  • }  
  • }  
  • String concatenation is another CPU waster. Consider example below:  
  • public static void concatenateStrings(String startingString) {  
  • for (int i = 0; i < 20; i++) {  
  • startingString = startingString + startingString;  
  • }  
  • }  
  • public static void concatenateStringsUsingStringBuffer(  
  • String startingString) {  
  • StringBuffer sb = new StringBuffer();  
  • sb.append(startingString);  
  • for (int i = 0; i < 20; i++) {  
  • sb.append(sb.toString());}}
  • 32/3<123>
    精选软件测试好文,快来阅读吧~

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

    法律顾问:上海兰迪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪ICP备05003035号

    沪公网安备 31010102002173号