华为JAVA编码规范.pdf
《华为JAVA编码规范.pdf》由会员分享,可在线阅读,更多相关《华为JAVA编码规范.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、密级:内部公开1.程序块采用缩进风格,空格为 4 个.说明:对于开发工具自动生成的代码可以不一致2.分界符(如大括号和)应各自占一行并且在同一列,同时与引用它们的语 句 左 对 齐,在 方 法 的 开 始,类 和 接 口 的 定 义,以 及if,for,do,while,switch,case 语句都要采用上述缩进说明:for()说明:if(filename!=null&new File(logPath+filename).length()()3.作符)说明:采用这种松散方式编写代码目的是让程序更加清晰,由于空格所产生的清晰性是相对的,所以在已经很清晰的语句中没有必要留空格,如果语句已足够清晰
2、,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为 java 中括号已经是很清晰的标志了.在长句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部密级:内部公开中不加空格,给操作符留空格时不要连续留两个以上空格4.类属性和方法不要交叉放置,不同存取范围的属性和方法也不要交叉放置说明:类定义:类公有属性定义;类保护属性定义;类私有属性定义;类公有方法定义;类保护方法定义;类私有方法定义;5.源程序的有效注释量必须在 30%以上6.包的注释写入一个名为的 html 格式的说明文件放入当前路径7.包的注释内容:本包作用,详细描述本包内容,产品模块名称及版本,公司
3、版本说明:一句话描述 详细描述密级:内部公开 产品模块 公司版本信息 8.文件注释:写入文件头部,包名之前9.文件注释内容:版本说明,描述信息,修改历史,生成日期说明:/*文件名 *版权 *描述 *修改人 *修改时间 *修改内容 *跟踪单号 *修改单号 */10.类和接口注释:放在 package 注释之后,class 或 interface 之前11.类和接口注释内容:类的注释要一句话功能描述,功能详细描述说明:密级:内部公开/*author*version*see 相关类/方法*since 产品/模块版本*deprecated(表示不建议使用该类或者接口)12.类属性,公有和保护方法注释:
4、写在类属性,公有和保护方法上面13.成员变量注释内容:成员变量的意义,目的,功能,可能被用到的地方14.公有和保护方法注释的内容:方法的一句话功能描述,功能详细描述,输入参数,输出参数,返回值,违例说明:/*param*return*exception/throws*/15.对于方法内部用 throw 抛出的异常,要在方法的注释中标明,对于调用其 他 方 法 抛 出 的 异 常,选 主 要 的 在 注 释 中 说 明,对 于 非RuntimeException,即 throws 子句声明会抛出的异常,必须在方法的注密级:内部公开释中标明16.注释应与描述的代码相近,对代码的注释应放在代码上方或
5、者右方(单行注释)相邻位置,不可放在下面,如放于上方则与上面代码用空行隔开17.注释与描述的内容进行同样的缩进18.对变量的定义和分支语句,必须加以注释19.对于 switch 下的 case 语句,如果处理完一个 case 要进入下一个 case,必须在该 case 处理完,下一个 case 前加上明确的注释说明:这样比较清楚程序编写者的意图,有效防止无故遗漏 break 语句20.边写代码边写注释,修改代码同时修改注释保证代码和注释一致,没用的注释要删除21.注释内容要清楚,明了,含义明确,防止二义性22.不要在注释中用缩写说明:除非必要,在使用缩写时或之前,应对缩写进行必要的说明23.不
6、要在一行代码或表达式中间加注释说明:除非必要,不应在代码或表达式中间插入注释,否则容易使代码可理解性变差。24.通过对函数,过程,变量,结构的正确命名,以及合理的组织代码,使代码密级:内部公开成为自注释的25.在代码的功能,意图层次上进行注释,提供有用的,额外的信息示例.如下注释意义不大。26.下来的部分可以详细描述说明:JavaDoc 工具收集简介的时候使用选取第一句话。27.顺序实现流程的说明使用 1,2,3,4.在每个实现步骤的代码前进行注释示例:如下是对设置属性的流程注释。断输入参数是否有效。置本地变量28.一些复杂的代码要说明示例:这里主要是对闰年算法的说明。果能被 4 整除,是闰年
7、;果能被 100 整除,不是闰年;果能被 400 整除,是闰年;29.包名采用域后缀倒置加上自定义包名,用小写字母,在部门内部要规划好包名的范围,防止冲突,部门内部产品使用部门的名称加上模块名称,产品线的产品使用产品的名称加上模块名称格式:.产品名.模块名称密级:内部公开 .部门名称.项目名称30.示例:融合 WEBSMAP 包名通用消息转发包名类名和接口使用完整意义的英文描述,英文首字母大写,其他使用小写和大写的混合示例:OrderInformation,CustomerList,LogManager,LogConfig,SmpTransation31.方法名使用完整意义的英文描述,首字母小
8、写,剩余字母首字母大写,其他字母小写示例:private void calculateRate();public void addNewOrder();32.方法中存取属性的方法用 setter 方法和 getter 方法,动作方法采用动词和动宾结构格式:get+非布尔属性名()set+属性名()is+布尔属性名()动词()动词+宾语()示例:public String getType();public boolean isFinished();public void setVisible(boolean);public void addKeyListener(Listener);密级:内部公
9、开33.属性名使用完整意义的英文描述,第一个单词字母小写,剩余单词首字母大写,其余字母小写,属性名不能和方法名相同示例:private customerName;private orderNumber;private smpSession;34.常量名使用全大写英文,英文单词之间用下划线隔开,并使用 finalstatic 修饰示例:public final static int MAX_VALUE=1000;publicfinalstaticStringDEFAULT_START_DATE=“2008-11-06”;35.属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态成员变量时
10、用 this,引用静态成员变量时用类名示例:public class Personprivate String name;private static List properties;public void setName(String name)=name;密级:内部公开public void setProperties(List properties)Person.Properties=properties;36.常用组件的命名以组件名加上组件类型名结尾示例:Application 类型的,命名以 App 结尾-MainApp;Frame 类型的,建议命名以 Frame 结尾-TopoFr
11、ame;Panel 类型的,建议命名以 Panel 结尾CreateCircuitPanel;Bean 类型的,建议命名以 Bean 结尾-DataAccessBean;EJB 类型的,建议命名以 EJB 结尾-DBProxyEJB;Applet类 型 的,建 议 命 名 以Applet结 尾-PictureShowApplet;37.函数名超过 15 个字母可采用去掉元音字母的方法或行业内约定俗成的缩写方式缩写函数名示例:getCustomerInformation()改为 getCustomerInfo()38.准确的确定成员函数的存取控制符,不是必须使用public 的请用protect
12、ed,不是必须用 protected 的请用 private示例:protected void setUserName()private void calculateRate()密级:内部公开39.含有集合意义的属性命名,尽量包含复数的意义示例:customes;orderItems40.明确方法功能,精确实现方法设计,一个函数完成一个功能,简单的功能也要编写方法实现说明:虽然为仅用一两行就可以完成的功能去编写方法好像没有必要,但用方法可使功能明确化,增加程序可读性,亦可方便维护、测试。41.明确规定对接口方法参数的合法性检查应由方法的调用者负责还是有接口方法本身负责,缺省由方法调用者负责说明
13、:对于模块间接口方法参数的合法性检查这一问题,往往有两个极端现象,即:要么是调用者和被调用者对参数均不作合法性检查,结果就遗漏了合法性检查这一必要的处理过程,造成问题隐患,要么就是调用者和被调用者均对参数进行合法性检查,这种情况虽不会造成问题,但产生了冗余代码,降低了效率。42.明确类的功能,精确实现类的设计,一个类仅实现一组相近功能说明:划分类的时候,应该尽量把逻辑处理、数据和显示分离。实现类功能的单一性。示例:数据类不能包含数组处理的逻辑通信类不能包含显示处理的逻辑43.所有的数据类必须重载 toString()方法,返回该类有意义的内容说明:父类如果实现了比较合理的 toString()
14、,子类可以继承不密级:内部公开必再重写。示例:public TopoNode private String nodeName;public String toString()Return“NodeName:”+nodeName;44.数据库操作,IO 操作要使用 close()的对象要在 try-catch-finally 的finally 中 close()示例:try45.往看不出出了什么错.46.一个方法不应抛出太多类型的异常47.异常捕获尽量不要直接 catch(Exception ex),要把异常细分处理48.如果多段代码重复做同一件事情,那么在方法划分上可能存在问题49.对于创建的
15、主要的类,最好置入 main()方法,包含用于测试那个类的代码50.集合中的数据如果不使用应及时释放,尤其是可重复使用的集合51.源程序中关系紧密的代码应尽可能相邻密级:内部公开52.不要使用难懂的技巧很高的语句,除非很有必要53.在 switch 中每个 case 后面要加上 return 或者 break54.在运算中不要减少数据精度55.switch 中的 case 要和后面的常量保持一个空格,switch 语句中不要定义 case 之外的无用标签56.不要在 if 中使用等号=进行赋值57.静态成员或方法使用类名访问,不使用句柄访问58.方法重载时,方法名一定要相同,避免类中使用两个相
16、似的方法名76.包的注释内容要求:简述本包的作用 详细描述本包的内容,产品模块名称和版本,公司版权77.不要在 Componentlisttener,componentResied()方法中调用serResize()方法.78.不要覆盖父类的静态方法和私有方法79.不要覆盖父类的属性80.不要使用二级以上的内部类81.把内部类定义成私有类82.去掉接口中多余的定义(不使用 public,abstaract,static,final等这是接口默认的)83.不要定义不会被用到得局部变量,类私有属性和私有方法和方法参数84.显示初始化所有的静态属性85.不要使用 System,getenv()方法8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 JAVA 编码 规范
限制150内