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:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

华为编程规范

华为编程规范

华为编程规范华为是一家世界知名的信息通信技术(ICT)解决方案供应商,为全球超过170个国家和地区的企业和消费者提供产品和服务。

在华为的软件开发过程中,编程规范起着至关重要的作用。

良好的编程规范有助于提高代码的质量和可维护性,减少错误和调试时间,提高开发效率。

以下是华为编程规范的一些核心要点:1. 命名规范:变量、函数、类等命名应具有清晰的含义,并遵循驼峰命名法。

变量和函数名应尽量简短明了,避免使用无意义的名字。

同时,要避免使用拼音或缩写,提高代码的可读性。

2. 注释规范:良好的注释是代码可读性的重要组成部分。

应在需要解释的地方进行注释,对于复杂的算法和逻辑,要详细解释思路和实现方法。

此外,对于代码片段的用途,也可以加上简短的注释。

注释应使用英文,避免使用拼音或其他不常见的语言。

3. 缩进和空格:合理的缩进和空格可以提高代码的可读性。

在华为的编程规范中,使用四个空格作为一个缩进层级。

在运算符和逗号等地方留有适当的空格,使代码更易于阅读。

4. 函数规范:函数应尽量简短,一个函数应有一个明确的目的。

函数命名要具有清晰的语义,能够准确描述函数的功能。

参数应尽量避免过多,遵循最小化设计原则。

5. 异常处理:在代码中应该考虑到可能出现的异常情况,并进行相应的处理。

捕获异常后,应该写明异常类型,并书写明确的处理逻辑。

6. 安全性考虑:在编写代码时,应始终考虑安全性。

避免使用已知存在安全漏洞的函数和方法,对于输入的数据进行合理的校验和过滤,防止代码被恶意攻击者利用。

7. 代码格式化:代码格式化可以提高代码的可读性,使代码更易于维护。

在华为的编程规范中,要求使用一致的缩进和空格,合理分行和对齐,并采用一致的命名风格。

8. 可移植性:考虑到不同平台和操作系统的差异,编写代码时应注重可移植性。

避免使用与操作系统和平台相关的特性和函数,尽量使用标准库和接口。

9. 性能优化:在编写代码时,应注重性能优化。

避免不必要的计算和内存开销,合理选择数据结构和算法。

Java语言编程规范(华为公司)

Java语言编程规范(华为公司)

Java语言编程规范(华为公司)DKBA华为技术有限公司企业技术规范DKBAXXXX-2001.12代替(DKBA200106-003)Java语言编程规范2001-12-XX发布2001-12-XX实施华为技术有限公司发布VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X 目次前言 .............................................................................. .. (3)1 范围112 规范性引用文件113 术语和定义114 排版规范124.1 规则121.*程序块要采用缩进风格编写,缩进12的空格数为4个。

122.*分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。

在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。

133.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

134.*不允许把多个短语句写在一行中,即一行只写一条语句5.*if, for, do, while, case,13switch, default 等语句自占一行,且if, for, do, while等语句的执行语句无论多少都要加括号{}。

6.*相对独立的程序块之间、变量说明13之后必须加空行。

7.*对齐只使用空格键,不使用TAB键。

14VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X 8.*在两个以上的关键字、变量、常量14进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。

Java编程规范

Java编程规范

Java编程规范Java编程规范是一种约定俗称的规范,旨在使Java代码易于理解、维护和调试。

它使得多人合作开发更加容易,可以避免一些常见的错误和问题。

以下是一些常见的Java编程规范:1.类命名和包命名:类名使用驼峰式命名,包名使用小写字母。

类名和包名应该是有意义的,具有描述性。

2.变量命名:变量名使用驼峰式命名,尽量使用有意义的名字,避免使用单个字符作为变量名。

3.常量命名:常量名使用大写字母和下划线命名,使用final修饰。

4.缩进:使用4个空格进行缩进,不要使用制表符。

5.行长度:每行代码应该尽量控制在80个字符以内,可以在需要的地方使用换行符(\)。

6.注释:代码应该有足够的注释,包括类、方法和变量的注释。

注释应该清晰、简洁,并且易于理解。

7.引入包:只引入需要使用的包,避免通配符导入。

8.类成员的声明顺序:类成员的声明顺序应该按照以下顺序:公有静态常量、私有静态常量、私有静态变量、私有常量、私有变量、构造函数、公有方法、私有方法。

9.异常处理:避免使用异常捕获的通配符,应该只捕获需要处理的异常。

10.不要使用魔法数字:避免在代码中使用未经解释的魔法数字,应该使用常量或者枚举类型来代替。

11.使用自定义异常:当需要抛出异常时,应该使用自定义的异常类型,而不是Java提供的通用异常类型。

12.避免使用过时的API:使用最新的API,避免使用已经过时的API。

13.使用适当的命名规范:方法名应该以动词开头,变量名应该以名词或者名词短语开头。

14.避免使用嵌套过深的代码:控制代码的嵌套层次,避免代码过于复杂。

15.避免代码重复:尽量将重复的代码提取为方法或者函数,以提高代码的复用性和可维护性。

这些编程规范只是一些常见的规范,具体的规范可以根据个人或者团队的需求自行调整和约定。

遵循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编程规范试题

华为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 排版 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:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

华为编程规范

华为编程规范

〔一〕=====[排版] ]=======......................................................................... 〔二〕======[注释]=======......................................................................... 〔三〕=====[标识符命名]======= .................................................................. 〔四〕=====[可读性]====== .......................................................................... 〔五〕=====[变量、结构]=====....................................................................... 〔六〕=====[函数、过程]=====....................................................................... 〔七〕=====[可测性]=====............................................................................. 〔八〕=====[程序效率]=====.......................................................................... 〔九〕=====[质量保证]=====.......................................................................... 〔十〕=====[代码编辑、编译、审查]=====......................................................... 〔十一〕=====[代码测试、维护]=====............................................................... 〔十二〕=====[宏]===== ...............................................................................〔一〕=====[排版]¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个说明:对于由开发工具自动生成的代码可以有不一致。

java编码规范(华为)

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语句中的程序都要采用如上的缩进方式。

2024版年度Verilog编程规范(华为)

2024版年度Verilog编程规范(华为)

通过定期的培训、分享和宣传活动,提高开 发人员对Verilog编程规范的认识和重视程度。
引入自动化检查工具
建立持续改进机制
研究和引入自动化检查工具,对Verilog代码 进行静态分析和规范检查,进一步提高代码 质量和开发效率。
建立规范的持续改进机制,收集开发人员的 反馈和建议,及时调整和优化规范内容。
同步/异步通信
根据实际需求选择同步或异步通信方式,确保子模块间的协同工 作。
20
时钟域划分及时序收敛策略
时钟域划分
根据系统时钟需求,将设计划分为不同的时钟域, 避免跨时钟域操作带来的问题。
时序收敛策略
采用合适的时序收敛方法,如时钟同步、异步 FIFO等,确保数据在不同时钟域间正确传输。
时序约束与验证
2024/2/2
01 注释应清晰明了,准确描述代码的功能和 实现方法。
02 注释应与代码同步更新,避免注释与代码 不一致。
03
注释应使用中文或英文,避免使用其他语 言。
04
对于重要的函数、模块和算法,应在文件 开头添加注释说明。
14
空格和换行使用原则
关键字与括号之间应加空 格,如`if (`、`for (`等。
开发效率提高
规范的编码风格使得开发人员能够更快速地理解和修改代码,提高 了开发效率。
团队协作更加顺畅
统一的编程规范促进了团队成员之间的协作,减少了因代码风格不同 而产生的沟通成本。
2024/2/2
31
未来改进方向
持续优化规范内容
加强规范培训和宣传
根据业界最佳实践和团队实际经验,持续优 化Verilog编程规范的内容,以适应新的技术 和应用场景。
一种硬件描述语言 (Hardware Description Language,HDL),用于 描述数字电路和系统。

java 华为软件开发规范(完整)

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 );

华为编程规范

华为编程规范

华为编程规范华为编程规范是指在华为公司内部进行软件开发时所遵守的一套规范和标准,旨在提高代码的质量和可维护性。

下面是华为编程规范的主要内容。

一、命名规范: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. 添加性能测试用例,确保代码在大数据量和高并发情况下的性能表现。

华为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() 方法。

华为Android平台Java编程规范

华为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 排版
¹1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低 优先级操作符处划分新行,操作符放在新行之首。 示例: if ((taskno < max_act_task_number) && (n7stat_stat_item_valid (stat_item))) { ... // program code }
act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state( stat_item );
report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)
仅供内部使用
2
Simpo PDF Merge and Split Unregistered Version -

6 11 18 20 22 28 36 40 44 50 52 53
Simpo PDF Merge and Split Unregistered Version -
软件编程规范总则
1 排版
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 (...) { ... // program code }

华为编程规范

华为编程规范

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语音编码规范华为

Java语音编码规范华为

Java语音编码规范(华为)【最新资料,WORD文档,可编辑修改】Java语言编码规范Prepared by Dateyyyy-mm-dd 拟制日期Reviewed by Dateyyyy-mm-dd 评审人日期Approved by Dateyyyy-mm-dd 批准日期Revisi on Record 修订记录Table of Contents 目录1. 范围本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。

本规范适用于使用Java语言编程的产品和项目。

2. 规范性引用文件下列文件中的条款通过本规范的引用而成为本规范的条款。

凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。

凡是不注日期的引用文件,其最新版本适用于本规范。

3. 术语和定义规则:编程时强制必须遵守的原则。

建议:编程时必须加以考虑的原则。

格式:对此规范格式的说明。

说明:对此规范或建议进行必要的解释。

示例:对此规范或建议从正、反两个方面给出例子。

4. 排版规范4.1. 规则4.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个说明:对于由开发工具自动生成的代码可以有不一致。

4.12*分界符(如大括号‘ {'和‘ }')应各独占一行并且位于同一列,同时与引用它们的语句左对齐。

在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。

示例:如下例子不符合规范。

for (...) {{..){.){.ength() < ()){4.1.3. ...,后不应加空格。

说明:采用这种松散方式编写代码的目的是使代码更加清晰。

由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已经是最清晰的标志了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DKBA华为技术有限公司企业技术规范DKBAXXXX-2001.12代替(DKBA200106-003)Java语言编程规范2001-12-XX发布2001-12-XX实施华为技术有限公司发布VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X目次前言 .............................................................................. .. (3)1 范围112 规范性引用文件113 术语和定义114 排版规范124.1 规则121.*程序块要采用缩进风格编写,缩进12的空格数为4个。

122.*分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。

在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。

133.*较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

134.*不允许把多个短语句写在一行中,即一行只写一条语句5.*if, for, do, while, case,13switch, default 等语句自占一行,且if, for, do, while等语句的执行语句无论多少都要加括号{}。

6.*相对独立的程序块之间、变量说明13之后必须加空行。

7.*对齐只使用空格键,不使用TAB键。

14VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X8.*在两个以上的关键字、变量、常量14进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。

4.2 建议15151.类属性和类方法不要交叉放置,不同存取范围的属性或者方法也尽量不要交叉放置。

5 注释规范165.1 规则16161.一般情况下,源程序有效注释量必须在30%以上。

2.包的注释:包的注释写入一个名为16package.html的HTML格式的说明文件放入当前路径。

3.包的注释内容:简述本包的作用、详16细描述本包的内容、产品模块名称和版本、公司版权。

4.文件注释:文件注释写入文件头部,16包名之前的位置。

175.文件注释内容:版权说明、描述信息、生成日期、修改历史。

6.类和接口的注释:该注释放在18package 关键字之后,class 或者interface 关键字之前。

187.类和接口的注释内容:类的注释主要是一句话功能简述、功能详细描述,8.类属性、公有和保护方法注释:写在19类属性、公有和保护方法上面。

9. 成员变量注释内容:成员变量的意19义、目的、功能,可能被用到的地方。

10.公有和保护方法注释内容:列出方19法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。

VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X2011.对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。

对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。

12.*注释应与其描述的代码相近,对代20码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

13.*注释与所描述内容进行同样的缩20排。

2114.*将注释与其上面的代码用空行隔开。

15.*对变量的定义和分支语句(条件分21支、循环语句等)必须编写注释。

2116.*对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。

17.*边写代码边注释,修改代码同时修21改相应的注释,以保证注释与代码的一致性。

不再有用的注释要删除。

2118.*注释的内容要清楚、明了,含义准确,防止注释二义性。

2119.*避免在注释中使用缩写,特别是不常用缩写。

5.1 建议211.*避免在一行代码或表达式的中间插22入注释。

222.*通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。

223.*在代码的功能、意图层次上进行注释,提供有用、额外的信息。

VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X4.*在程序块的结束行右方加注释标22记,以表明某程序块的结束。

225.*注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。

6.方法内的单行注释使用 //。

22237.注释尽量使用中文注释和中文标点。

方法和类描述的第一句话尽量使用简洁明了的话概括一下功能,然后加以句号。

接下来的部分可以详细描述。

238.顺序实现流程的说明使用1、2、3、4在每个实现步骤部分的代码前面进行注释。

9. 一些复杂的代码需要说明。

23 6 命名规范246.1 规则241.包名采用域后缀倒置的加上自定义24的包名,采用小写字母。

在部门内部应该规划好包名的范围,防止产生冲突。

部门内部产品使用部门的名称加上模块名称。

产品线的产品使用产品的名称加上模块的名称。

2.类名和接口使用类意义完整的英文24描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。

3.方法名使用类意义完整的英文描述:24第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。

244.方法中,存取属性的方法采用setter和 getter方法,动作方法采用动词和动宾结构。

VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X5.属性名使用意义完整的英文描述:第25一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。

属性名不能与方法名相同。

256.常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用final static 修饰。

257.属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态成员变量时使用 this 引用,引用静态成员变量时使用类名引用。

6.2 建议25251.常用组件类的命名以组件名加上组件类型名结尾。

262.如果函数名超过15 个字母,可采用以去掉元音字母的方法或者以行业内约定俗成的缩写方式缩写函数名。

263.准确地确定成员函数的存取控制符号,不是必须使用 public 属性的,请使用 protected,不是必须使用protected, 请使用 private。

4.含有集合意义的属性命名,尽量包含26其复数的意义。

7 编码规范277.1 规则27271.*明确方法功能,精确(而不是近似)地实现方法设计。

一个函数仅完成一件功能,即使简单功能也应该编写方法实现。

2.应明确规定对接口方法参数的合法27性检查应由方法的调用者负责还是由接口方法本身负责,缺省是由方法调用者负责。

3.明确类的功能,精确(而不是近似)27地实现类的设计。

一个类仅实现一组相近的功能。

274.所有的数据类必须重载toString()方法,返回该类有意义的内容。

VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X5.数据库操作、IO操作等需要使用结束27close()的对象必须在try-catch-finally 的finally中close()。

286.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者ex.printStackTrace() 。

287.自己抛出的异常必须要填写详细的描述信息。

8.运行期异常使用RuntimeException29的子类来表示,不用在可能抛出异常的方法声明上加throws子句。

非运行期异常是从Exception继承而来的,必须在方法声明上加throws子句。

299.在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。

2910.*注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。

2911.*避免使用不易理解的数字,用有意义的标识来替代。

涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量来代替。

3012.数组声明的时候使用 int[]index ,而不要使用 intindex[] 。

3013.调试代码的时候,不要使用System.out 和 System.err 进行打印,应该使用一个包含统一开关的测试类进行统一打印。

3014.用调测开关来切换软件的DEBUG版和正式版,而不要同时存在正式版本和DEBUG版本的不同源文件,以减少维护的难度。

7.2建议30VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X301.记录异常不要保存exception.getMessage(),而要记录exception.toString()。

2.一个方法不应抛出太多类型的异常。

313.异常捕获尽量不要直接 catch31(Exception ex),应该把异常细分处理。

314.*如果多段代码重复做同一件事情,那么在方法的划分上可能存在问题。

5.对于创建的主要的类,最好置入31main()函数,包含用于测试那个类的代码。

316.集合中的数据如果不使用了应该及时释放,尤其是可重复使用的集合。

317.*源程序中关系较为紧密的代码应尽可能相邻。

318.*不要使用难懂的技巧性很高的语句,除非很有必要时。

8 JTEST规范328.1 规则(1-2 级)32321.在switch 中每个 case 语句都应该包含 break 或者 return 。

322.不要使用空的for 、if 、while 语句。

3.在运算中不要减小数据的精度。

32324.switch 语句中的 case 关键字要和后面的常量保持一个空格,switch 语句中不要定义case 之外的无用标签。

5.不要在if 语句中使用等号= 进行赋32值操作。

6.静态成员或者方法使用类名访问,不32使用句柄访问。

7.方法重载的时候,一定要注意方法名32相同,避免类中使用两个非常相似的方法名。

VVVVVVV VVVVVVVVVVVX。

XVX.X VX.X VX.X VX.XVX.X8.不要在32ponentResized() 方法中调用 serResize() 方法。

相关文档
最新文档