华为JAVA编程规范
华为的编程规范和范例
目录1 排版62 注释113 标识符命名184 可读性205 变量、结构226 函数、过程287 可测性368 程序效率409 质量保证4410 代码编辑、编译、审查5011 代码测试、维护5212 宏531 排版¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
¹1-2:相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;应如下书写if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;¹1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN+ STAT_SIZE_PER_FRAM * sizeof( _UL );act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied= stat_poi[index].occupied;act_task_table[taskno].duration_true_or_false= SYS_get_sccp_statistic_state( stat_item );report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)&& (n7stat_stat_item_valid (stat_item))&& (act_task_table[taskno].result_data != 0));¹1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
java编码规范(建议稿,修改自华为规范)(1)解析
武汉中软卓越科技有限公司Java语言编码规范Table of Contents 目录1. 范围 (3)2. 术语和定义 (3)3. 排版规范 (4)3.1. 规则 (4)3.2. 建议 (6)4. 注释规范 (7)4.1. 规则 (7)4.2. 建议 (12)5. 命名规范 (14)5.1. 规则 (14)5.2. 建议 (15)6. 编码规范 (17)6.1. 规则 (17)6.2. 建议 (20)7. JTEST规范 (22)7.1. 规则 (22)7.2. 建议 (23)1.范围本规范规定了使用Java语言编程时排版、注释、命名、编码和JTest的规则和建议。
本规范适用于使用Java语言编程的案例、产品和项目。
2.术语和定义规则:编程时强制必须遵守的原则。
建议:编程时必须加以考虑的原则。
格式:对此规范格式的说明。
说明:对此规范或建议进行必要的解释。
示例:对此规范或建议从正、反两个方面给出例子。
3.排版规范3.1.规则3.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
3.1.2.*语句块分隔符左括号‘{’应与语句块引用代码在同一行,右括号‘}’应另起一行并与语句块引用代码左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
示例:如下例子不符合规范。
for (...){... // program code}if (...){... // program code}void example_fun( void ){... // program code}应如下书写:for (...){... // program code}if (...){... // program code}void example_fun( void ){... // program code}3.1.3.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
华为-编程规范和范例
目录1排版6 2注释11 3标识符命名18 4可读性20 5变量、结构22 6函数、过程28 7可测性36 8程序效率40 9质量保证44 10代码编辑、编译、审查50 11代码测试、维护52 12宏531排版¹1-11-1:程序块要采用缩进风格编写,缩进的空格数为:程序块要采用缩进风格编写,缩进的空格数为:程序块要采用缩进风格编写,缩进的空格数为44个。
说明:对于由开发工具自动生成的代码可以有不一致。
¹1-21-2:相对独立的程序块之间、变量说明之后必须加空行。
:相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if (!valid_ni(ni)){...//program code }repssn_ind =ssn_data[index].repssn_index;repssn_ni=ssn_data[index].ni;应如下书写if (!valid_ni(ni)){...//program code }repssn_ind =ssn_data[index].repssn_index;repssn_ni =ssn_data[index].ni;¹1-31-3:较长的语句(:较长的语句(:较长的语句(>80>80>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:perm_count_msg.head.len =NO7_TO_STAT_PERM_COUNT_LEN+STAT_SIZE_PER_FRAM *sizeof(_UL );act_task_table[frame_id *STAT_TASK_CHECK_NUMBER +index].occupied=stat_poi[index].occupied;act_task_table[taskno].duration_true_or_false=SYS_get_sccp_statistic_state(stat_item);report_or_not_flag=((taskno<MAX_ACT_TASK_NUMBER)&&(n7stat_stat_item_valid(stat_item))&&(act_task_table[taskno].result_data!=0));:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要¹1-41-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
华为JAVA编程规范试题
JAVA编程规范试题一、判断题(每题2分,共28分)1、if, for, do, while, case, switch, default 等语句自占一行,且if, for,do, while, switch, case等语句的执行语句无论多少都要加括号{}。
2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权、生成日期等。
3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者、新版本号和当天的日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。
4、对于方法内部用throw语句抛出的异常,必须在方法的注释中标明;对于所调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
6、com.huawei.四级部门名称.项目名称,符合包命名规范。
7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。
8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样化。
9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异常根据分类组织成继承关系。
10、switch 语句中的 case 关键字要和后面的常量保持一个空格;如果有特殊的需要要在switch语句中定义case以外的标签,需要在注释中说明。
11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。
12、简单的类可以通过名字比较两个对象的类,推荐使用 getClass()或者instanceof()。
13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。
java编码规范(华为)
Java语言编码规范Prepared by拟制Date日期yyyy-mm-ddReviewed by 评审人Date日期yyyy-mm-ddApproved by批准Date日期yyyy-mm-ddRevision Record 修订记录Table of Contents 目录1.范围 (4)2.规范性引用文件 (4)3.术语和定义 (4)4.排版规范 (5)4.1.规则 (5)4.2.建议 (7)5.注释规范 (8)5.1.规则 (8)5.2.建议 (12)6.命名规范 (15)6.1.规则 (15)6.2.建议 (16)7.编码规范 (17)7.1.规则 (17)7.2.建议 (20)8.JTEST规范 (22)8.1.规则 (22)8.2.建议 (23)1.范围本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。
本规范适用于使用Java语言编程的产品和项目。
2.规范性引用文件下列文件中的条款通过本规范的引用而成为本规范的条款。
凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。
凡是不注日期的引用文件,其最新版本适用于本规范。
3.术语和定义规则:编程时强制必须遵守的原则。
建议:编程时必须加以考虑的原则。
格式:对此规范格式的说明。
说明:对此规范或建议进行必要的解释。
示例:对此规范或建议从正、反两个方面给出例子。
4.排版规范4.1.规则4.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
4.1.2.*分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
java 华为软件开发规范(完整)
¹1-6:不允许把多个短语句写在一行中,即一行只写一条语句。 示例:如下例子不符合规范。 rect.length = 0; rect.width = 0;
应如下书写
仅供内部使用
4
PDF Page Organizer - Foxit Software
软件编程规范总则
1 排版
rect.length = 0; rect.width = 0; ¹1-7:if、for、do、while、case、switch、default等语句自占一行,且 if、for、 do、while等语句的执行语句部分无论多少都要加括号{}。 示例:如下例子不符合规范。 if (pUserCR == NULL) return;
应如下书写: if (pUserCR == NULL) { return; } ¹1-8:对齐只使用空格键,不使用TAB键。 说明: 以免用不同的编辑器阅读程序时, 因 TAB 键所设置的空格数目不同而造成程序布局 不整齐,不要使用 BC 作为编辑器合版本,因为 BC 会自动将 8 个空格变为一个 TAB 键, 因此使用 BC 合入的版本大多会将缩进变乱。 ¹1-9:函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求。 ¹1-10:程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一 列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以 及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 示例:如下例子不符合规范。 for (...) { ... // program code }
act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state( stat_item );
华为JAVA编程规范试题-推荐下载
第 2 页, 共 16 页
2、下面说法或者语句不符合公司编程规范的排版要求的是:
A.逗号、分号只在后面加空格; 比较操作符, 赋值操作符"="、 "+=",算术操
作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符
的前后加空格; "!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符
C. if ( writeToFile ) { writeFileThread.interrupt(); }
D. if (a >= b && c > d) { //program code }
E. 在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局 部不加空格。给操作符留空格时不要连续留两个以上空格
文档密级:
JAVA 编程规范试题
一、判断题(每题 2 分,共 28 分)
1、if, for, do, while, case, switch, default 等语句自占一行,且 if, for, do, while, switch, case 等语句的执行语句无论多少都要加括号{}。
2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块
性。不再有用的注释不要删除,使用@deprecated 表示此注释无效。
B.避免在注释中使用缩写,特别是不常用缩写;但是,注释也是可使用缩写,
java编码规范(建议稿,修改自华为规范) (1)
武汉中软卓越科技有限公司Java语言编码规范Table of Contents 目录1. 范围 (3)2. 术语和定义 (3)3. 排版规范 (4)3.1. 规则 (4)3.2. 建议 (6)4. 注释规范 (7)4.1. 规则 (7)4.2. 建议 (12)5. 命名规范 (14)5.1. 规则 (14)5.2. 建议 (15)6. 编码规范 (17)6.1. 规则 (17)6.2. 建议 (20)7. JTEST规范 (22)7.1. 规则 (22)7.2. 建议 (23)1.范围本规范规定了使用Java语言编程时排版、注释、命名、编码和JTest的规则和建议。
本规范适用于使用Java语言编程的案例、产品和项目。
2.术语和定义规则:编程时强制必须遵守的原则。
建议:编程时必须加以考虑的原则。
格式:对此规范格式的说明。
说明:对此规范或建议进行必要的解释。
示例:对此规范或建议从正、反两个方面给出例子。
3.排版规范3.1.规则3.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。
说明:对于由开发工具自动生成的代码可以有不一致。
3.1.2.*语句块分隔符左括号‘{’应与语句块引用代码在同一行,右括号‘}’应另起一行并与语句块引用代码左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
示例:如下例子不符合规范。
for (...){... // program code}if (...){... // program code}void example_fun( void ){... // program code}应如下书写:for (...){... // program code}if (...){... // program code}void example_fun( void ){... // program code}3.1.3.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
华为JAVA编程规范
说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) {
说明:异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注 Runtime异常,@throws标注非Runtime异常。异常的注释必须说明该异常的含义及什么条件下抛 出该异常。
Page 5 , Total 19
密级:内部公开
规则7 注释应与其描述的代码相近,对代码的注释应放在其上方,并与其上面的代码用空行隔 开,注释与所描述内容进行同样的缩排。(1.42+)
规则12 对重载父类的方法必须进行@Override声明(5.0+)
Page 6 , Total 19
密级:内部公开
说明:可清楚说明此方法是重载父类的方法,保证重载父类的方法时不会因为单词写错而造成错 误(写错方法名或者参数个数,类型都会编译无法通过) 示例: @Override public void doRequest(SipServletRequest req) throws ServletException,
分配对应日志类型的logreader指定类型查询时间段条件和反复器缓冲数查询时间为左包含原则即starttimeendtimeparamlogtypename日志类型名在配置文件中定义的paramstarttime查询日志的开始时间paramendtime查询日志的结束时间paramloglevel查询日志的级别paramusername查询该用户的日志parambuffernum日志反复器缓冲记录数return结果集日志反复器since12publicstaticlogiteratorreadstringlogtypedatestarttimedateendtimeintloglevelstringusernameintbuffernum规则6对于方法内部用throw语句抛出的异常必须在方法的注释中标明对于所调用的其他方法所抛出的异常选择主要的在注释中说明
华为JAVA编程规范试题
华为JAVA编程规范试题JAVA编程规范试题一、判断题(每题2分,共28分)1、if, for, do, while, case, switch, default 等语句自占一行,且if, for,do, while, switch, case等语句的执行语句无论多少都要加括号{}。
2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权、生成日期等。
3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者、新版本号和当天的日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。
4、对于方法内部用throw语句抛出的异常,必须在方法的注释中标明;对于所调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
6、com.huawei.四级部门名称.项目名称,符合包命名规范。
7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。
8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样化。
9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异常根据分类组织成继承关系。
10、switch 语句中的case 关键字要和后面的常量保持一个空格;如果有特殊的需要要在switch语句中定义case以外的标签,需要在注释中说明。
11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。
12、简单的类可以通过名字比较两个对象的类,推荐使用getClass()或者instanceof()。
13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。
华为编程规范
华为编程规范华为编程规范是指在华为公司内部进行软件开发时所遵守的一套规范和标准,旨在提高代码的质量和可维护性。
下面是华为编程规范的主要内容。
一、命名规范:1. 变量和函数名应采用有意义的名称,尽量避免使用缩写或简写。
2. 变量名和函数名应使用小驼峰命名法,即首字母小写,后续单词首字母大写。
3. 常量名应使用大写字母和下划线,以增加可读性。
4. 类名应使用大驼峰命名法,即每个单词首字母大写。
5. 文件名应与其中的公共类名一致。
二、注释规范:1. 在每个函数的开头添加函数的功能说明,参数说明和返回值说明。
2. 在关键性代码部分添加注释,说明代码的逻辑。
3. 在需要修正或改进的代码部分添加TODO注释,以便后续修复。
三、代码风格:1. 缩进使用4个空格而不是Tab键。
2. 每行代码的长度不能超过80个字符。
3. 在二元操作符两边添加空格,例如 a + b。
4. 大括号应另起一行,不应与关键字在同一行。
5. 每个语句结束后都应该添加分号。
四、异常处理:1. 捕获异常时应尽量具体,不应捕获顶层异常。
2. 异常处理代码应与正常逻辑代码分离,以提高代码的可读性。
3. 异常处理代码块应添加注释,说明捕获的异常类型和处理的方法。
五、函数规范:1. 函数的长度应控制在100行以内,避免函数过长和复杂。
2. 函数的参数应尽量少,可以通过封装成结构体或类的方式来减少参数数量。
3. 函数应只完成一个功能,不应既完成数据处理又完成界面显示等功能。
六、代码复用:1. 尽量使用现有的类和框架来实现功能,避免重复造轮子。
2. 重复的代码应抽取成函数或方法来复用,提高代码的可维护性。
3. 提高代码的可移植性,使其可以在不同的平台和环境下复用。
七、测试规范:1. 添加单元测试用例,覆盖所有的代码分支,确保代码的正确性。
2. 针对不同的输入情况,测试代码的边界问题和异常情况。
3. 添加性能测试用例,确保代码在大数据量和高并发情况下的性能表现。
华为软件编程规范和范例
华为软件编程规范和范例1 排版1-1:程序块要采用缩进风格编写,缩进的空格数为4个。
1-2:相对独立的程序块之间、变量说明之后必须加空行。
示例:如下例子不符合规范。
if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;应如下书写if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例:perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN+ STAT_SIZE_PER_FRAM * sizeof( _UL );act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied= stat_poi[index].occupied;act_task_table[taskno].duration_true_or_false= SYS_get_sccp_statistic_state( stat_item );report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)&& (n7stat_stat_item_valid (stat_item))&& (act_task_table[taskno].result_data != 0));1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
华为Android平台Java编程规范
Android平台Java编程规范(文档编号/ IPD-CMMI V1.3 / 仅供内部使用)Huawei Technologies Co., Ltd.华为技术有限公司All rights reserved版权所有侵权必究DKBA华为技术有限公司企业技术规范DKBA1040-2008.12 Android平台Java编程规范2008-12-24发布2008-12-25实施Revision record 修订记录目录前言 (7)1范围 (8)2规范性引用文件 (8)3术语和定义 (8)4排版规范 (8)4.1.规则 (8)4.1.1*缩进风格 (8)4.1.2分界符‘{’和‘}’ (9)4.1.3*较长的语句、表达式或参数 (10)4.1.4*不允许把多个短语句写在一行中 (10)4.1.5*if, for, do, while, case, switch, default 等语句自占一行, (10)4.1.6*相对独立的程序块之间、变量说明之后必须加空行。
(11)4.1.7*对齐只使用空格键,不使用TAB键。
(11)4.1.8*关键字、变量、常量进行对等操作 (11)4.2建议 (12)4.2.1交叉放置 (12)5注释规范 (13)5.1规则 (13)5.1.1注释量 (13)5.1.2包的注释 (13)5.1.3包注释内容 (13)5.1.4文件注释 (14)5.1.5类和接口注释 (14)5.1.6类和接口的注释内容 (15)5.1.7类属性、公有和保护方法注释 (16)5.1.8成员变量注释内容 (16)5.1.9异常抛出 (18)5.1.10*注释与代码放置 (18)5.1.11*注释与描述内容的缩排 (19)5.1.12* 将注释与其上面的代码用空行隔开 (19)5.1.13* 对变量的定义和分支语句(条件分支、循环语句等)必须编写注释 (20)5.1.14* switch语句下的case语句 (20)5.1.15* 注释的管理 (20)5.1.16*注释的内容 (20)5.1.17* 注释中的缩写 (20)5.1.18注释语言 (21)5.1.19删除代码的注释 (21)删除代码,特别是删除多行代码、删除方法、成员变量等需要有明确注释,便于版本升级;删除android原始代码必须要求有明确注释。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 Java 编程规范1.1 排版1.1.1 规则规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。
(1.42+)说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。
规则2分界符(如大括号‘{’和‘}’)应各独占一行,同时与引用它们的语句左对齐。
在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序或者static、,synchronized等语句块中都要采用如上的缩进方式。
(1.42+) 示例:if (a>b){doStart();}规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
(1.42+)示例:if (logger.isDebugEnabled()){logger.debug("Session destroyed,call-id"+ event.getSession().getCallId());}规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+)说明:阅读代码更加清晰示例:如下例子不符合规范。
Object o = new Object(); Object b = null;规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。
(1.42+)说明:阅读代码更加清晰,减少错误产生示例:if (a>b){doStart();}case x:{int i = 9;}规则6相对独立的程序块之间、变量说明之后必须加空行。
(1.42+)说明:阅读代码更加清晰示例:if(a > b){doStart();}//此处是空行return;规则7在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。
(1.42+)说明:阅读代码更加清晰示例:if (a == b){objectA.doStart();}a *= 2;1.1.2 建议建议1类属性和类方法不要交叉放置,不同存取范围的属性或者方法也尽量不要交叉放置。
(1.42+)格式:类定义{类的公有属性定义类的保护属性定义类的私有属性定义类的公有方法定义Page 2 , Total 19类的保护方法定义类的私有方法定义}建议2修饰词按照指定顺序书写:[访问权限][static][final] 。
(1.42+)示例:public static final String str = “abc”;1.2 注释1.2.1 规则规则1源程序注释量必须在30%以上。
(1.42+)说明:由于每个文件的代码注释不一定都可以达到30%,建议以一个系统内部模块作为单位进行检查规则2包的注释:写入一个名为package.html的HTML格式的说明文件放入包所在路径。
包的注释内容:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。
(1.42+)说明:方便JavaDoc收集,方便对包的了解示例:com/huawei/iin/websmap/comm/package.html<html><body><p>一句话简述。
<p>详细描述。
<p>产品模块名称和版本<br>公司版权信息</body></html>示例:<html><body><P>为 WEBSMAP 提供通信类,上层业务使用本包的通信类与 SMP-B 进行通信。
<p>详细描述。
<p>IIN V100R001 WEBSMAP<br>(C) 版权所有 2000-2001 华为技术有限公司</body></html>Page 3 , Total 19规则3类和接口的注释放在class或者interface 关键字之前,import 关键字之后。
注释主要是一句话功能简述与功能详细描述。
类注释使用“/** */”注释方式(1.42+)说明:方便JavaDoc收集,没有import可放在package之后。
注释可根据需要列出:作者、内容、功能、与其它类的关系等。
功能详细描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。
/*** 〈一句话功能简述〉* 〈功能详细描述〉* @author [作者](必须)* @see [相关类/方法](可选)* @since [产品/模块版本] (必须)* @deprecated (可选)*/示例:package m;import java.util.*;/*** LogManager 类集中控制对日志读写的操作。
* 全部为静态变量和静态方法,对外提供统一接口。
分配对应日志类型的读写器,* 读取或写入符合条件的日志纪录。
* @author 张三,李四,王五* @see LogIteraotor* @see BasicLog* @since CommonLog1.0*/public class LogManager规则4类属性(成员变量)、公有和保护方法注释:写在类属性、公有和保护方法上面,注释方式为“/** */”.(1.42+)示例:/*** 注释内容*/private String logType;/*** 注释内容*/public void write()Page 4 , Total 19规则5公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、异常等。
(1.42+)格式:/*** 〈一句话功能简述〉* 〈功能详细描述〉* @param [参数1] [参数1说明]* @param [参数2] [参数2说明]* @return [返回类型说明]* @exception/throws [异常类型] [异常说明]* @see [类、类#方法、类#成员]* @since [起始版本]* @deprecated*/说明:@since 表示从那个版本开始就有这个方法,如果是最初版本就存在的方法无需说明;@exception或throws 列出可能仍出的异常;@deprecated 表示不建议使用该方法。
示例:/*** 根据日志类型和时间读取日志。
* 分配对应日志类型的LogReader,指定类型、查询时间段、条件和反复器缓冲数,* 读取日志记录。
查询条件为null或0的表示没有限制,反复器缓冲数为0读不到日志。
* 查询时间为左包含原则,即 [startTime, endTime) 。
* @param logTypeName 日志类型名(在配置文件中定义的)* @param startTime 查询日志的开始时间* @param endTime 查询日志的结束时间* @param logLevel 查询日志的级别* @param userName 查询该用户的日志* @param bufferNum 日志反复器缓冲记录数* @return 结果集,日志反复器* @since 1.2*/public static LogIterator read(String logType, Date startTime, Date endTime, int logLevel, String userName, int bufferNum)规则6对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。
对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
(1.42+)说明:异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注Runtime异常,@throws标注非Runtime异常。
异常的注释必须说明该异常的含义及什么条件下抛出该异常。
Page 5 , Total 19规则7注释应与其描述的代码相近,对代码的注释应放在其上方,并与其上面的代码用空行隔开,注释与所描述内容进行同样的缩排。
(1.42+)说明:可使程序排版整齐,并方便注释的阅读与理解。
示例:/** 注释*/public void example2( ){// 注释CodeBlock One// 注释CodeBlock Two}/** 注释*/public void example( ){// 注释CodeBlock One// 注释CodeBlock Two}规则8对于switch语句下的case语句,必须在每个case分支结束前加上break语句。
(1.42+)说明:break才能真正表示该switch执行结束,不然可能会进入该case以后的分支。
至于语法上合法的场景“一个case后进入下一个case处理”,应该在编码设计上就避免。
规则9修改代码同时修改相应的注释,以保证注释与代码的一致性。
不再有用的注释要删除。
(1.42+)规则10注释的内容要清楚、明了,含义准确,防止注释二义性。
(1.42+)说明:错误的注释不但无益反而有害。
规则11避免在注释中使用缩写,特别是不常用缩写。
(1.42+)说明:在使用缩写时或之前,应对缩写进行必要的说明。
规则12对重载父类的方法必须进行@Override声明(5.0+)Page 6 , Total 19说明:可清楚说明此方法是重载父类的方法,保证重载父类的方法时不会因为单词写错而造成错误(写错方法名或者参数个数,类型都会编译无法通过)示例:@Overridepublic void doRequest(SipServletRequest req) throws ServletException, IOException1.2.2 建议建议1避免在一行代码或表达式的中间插入注释。
(1.42+)说明:除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差。
建议2在代码的功能、意图层次上进行注释,提供有用、额外的信息。
(1.42+)说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。