zoukankan      html  css  js  c++  java
  • Java编码规范

    命名规范

    包名:小写,命名有意义

    类名,接口:首字母大写(caml风格)

    方法:首字母小写,后面的各单词首字母大写。使用有意义的单词或单词简写

    属性、变量:同方法名

    常量:全部大写,使用_分割

    形参:要与变量名一致

    数组:方括号放在变量类型后面

    文档注释:

    文件注释:

    /********************************************************************

    * 文件名:Test.java

    * 版权:Copyright (C) 2016 XXX. All Rights Reserved.

    * 修改人:XXX

    * 修改时间:2016-8-22

    * 修改内容:添加toString方法

    *******************************************************************/

     

    类注释:

    /**

    * 该类是对日志的处理类(功能职责)

    * @author

    * @since JDK1.8

    * @history 2016-8-16 XX 新建

    */

     

    方法注释;

    /**

    * 功能说明

    * @param context 应用上下文

    * @param bean

    * @return DataBean

    * @throws Exception 如果在转换过程中出错,则抛出Exception

    */

     

    属性注释:

    /** 说明字段的含义 */

     

    特殊注释:

    //TODO

    没有完成但必须完成的地方

    //FIXME

    用于必须修改bug的地方

     

    如果一个方法是对接口的实现,那么详细的方法文档注释应该写在接口类的方法中,实现类方法应该通过 @see 指引过去。

     

    代码优化:

    1.避免“上帝类”

    2.尽量将一些逻辑实现,尤其是可复用的逻辑实现,分离到不同的方法中

    3.严格的依照JavaBean的统一方式来写属性访问getter、setter方法,否则在java的反射机制实现时,会有问题

    4.方法调用的速度比较,从快到慢排列: static < final < instance method < interface method < synchronized。

    5.finalize方法尽可能避免使用

    6.尽可能的使用静态变量。如果类中的变量不会随他的实例而变化,就可以定义为静态变量,从而使他所有的实例都共享这个变量

    7.不要在代码中进行具体数值硬编码,把它定义为静态常量,然后在代码中引用

    8.尽量使用接口申明属性和变量:

    如:List<String> list=new ArrayList<~>();

    Map map = new HashMap();

    9.在方法中使用局部变量,一定要确定变量赋值的唯一性。否则,代码将难以维护,形成歧义,而且是隐含bug的温床。

     

    代码风格:

    每行申明一个变量

    int a;

    int b;

    每一行至多包含一个Statement

    argv++; // Correct

    argc++; // Correct

    argv++; argc--; // AVOID!

     

    关于字符串的处理的方式:

    1.避免在字符串中使用“+”,尽量使用StringBuffer 进行连接;

    2.在使用equals和equalsIgnoreCase方法判断两个字符串类型操作数是否相等时,如果两个操作数之中有一个为字符串常量,应该将它置于点操作符“.”的左边,将变量放在点操作符的右边。这样做的好处在于,程序员在使用equals和equalsIgnoreCase方法时,可以不必先判断变量操作数是否为null

    Switch:

    在任何的情况下,必须在最后写default语句。

    关于异常:

    1.避免对应用程序的逻辑使用try/catch ,如果可以用if、while等逻辑语句来处理,那么就尽可能的不用try/catch语句

    2.重用异常,在必须要进行异常的处理时,要尽可能的重用已经存在的异常对象。以为在异常的处理中,生成一个异常对象要消耗掉大部分的时间

    关于日志信息的调试:

    不要直接的使用System.out或者System.err或者Exception的printStackTrace()方法打印出调试信息或Exception

    资源释放:

    手动使用的资源要及时释放,比如文件资源、数据库资源等。(虽然这个类可能实现了atupCloseable接口)

     

    针对java.util包的使用注意事项:

    避免使用java.util包里面的java.util.Vector和java.util.Hashtable,因为这两个类是synchronized的,比不是synchronized的容器类速度会慢很多,当在单线程的情况下请使用java.util.ArrayList(接口是:java.util.List)和java.util.HashMap(接口是java.util.Map)。

     

    工具类的命名:

    工具描述 + Util

    模块专用常量的统一管理命名

    模块名 + Constants

     

    各层代码分工:

    页面:

    展示数据

    Ø 进行页面数据验证

    Ø 不处理与应用程序相关的业务逻辑

    Ø 不进行事务管理

    Ø 复杂的逻辑,请交给工具类来处理

     

    web层:

    Ø 管理用户界面层发出的请求,做出相应的响应

    Ø 从页面取得相应的用户输入数据

    Ø 将数据提供给业务层,委派调用业务逻辑和其它上层处理

    Ø 统一处理异常,包括持久层和业务层抛出的异常

    Ø 为页面显示提供数据模型

    Ø 用户身份和操作权限验证

    Ø 不进行事务管理

    biz业务层:

    Ø 处理应用程序的业务逻辑和业务校验

    统一管理事务

    不直接与数据库通信

    Ø 不直接与JSP、Session等进行通信

  • 相关阅读:
    AngularJs的UI组件ui-Bootstrap分享(十三)——Progressbar
    AngularJs的UI组件ui-Bootstrap分享(十二)——Rating
    AngularJs的UI组件ui-Bootstrap分享(十一)——Typeahead
    AngularJs的UI组件ui-Bootstrap分享(十)——Model
    AngularJs的UI组件ui-Bootstrap分享(九)——Alert
    AngularJs的UI组件ui-Bootstrap分享(八)——Tooltip和Popover
    AngularJs的UI组件ui-Bootstrap分享(七)——Buttons和Dropdown
    AngularJs的UI组件ui-Bootstrap分享(六)——Tabs
    Xamarin Error:Could not find android.jar for API Level 23.
    nodejs文件压缩-使用gulp命令(安装过程)
  • 原文地址:https://www.cnblogs.com/xu-xiang/p/5983158.html
Copyright © 2011-2022 走看看