华为代码规范文档

华为代码规范文档
华为代码规范文档

代码规范文档

目录

1概述 (3)

1.1编写目的 (3)

1.2文档约定 (3)

1.3预期的读者和阅读建议 (3)

1.4参考文献 (3)

2排版要求 (4)

2.1程序块缩进 (4)

2.2程序块之间空行 (4)

2.3长语句和长表达式 (4)

2.4循环、判断等长表达式或语句 (5)

2.5短语句 (6)

2.6条件、循环语句 (6)

2.7语句对齐 (6)

2.8函数、过程和结构等语句块 (7)

2.9程序块分界符 (7)

2.10说明性文件 (8)

2.11源文件头 (8)

2.12变量、常量注释 (9)

2.13数据结构的注释 (9)

2.14全局变量 (10)

2.15其他 (10)

2.16命名规范与系统风格一致 (12)

2.17其他 (12)

3可读性 (14)

3.1运算符优先级 (14)

3.2避免直接使用数字作为标识符 (14)

4函数、过程 (16)

4.1对所调用函数的错误返回码要仔细、全面地处理。 (16)

4.2明确函数功能,精确(而不是近似)地实现函数设计。 (16)

4.3局部变量 (16)

4.4全局变量 (16)

5可测性 (17)

5.1调测开关 (17)

5.2打印信息 (17)

5.3单元测试 (17)

5.4集成测试 (17)

5.5断言使用 (18)

5.6使用宏时,不允许参数发生变化 (20)

1概述

1.1编写目的

为规范软件开发人员的代码编写提供参考依据和统一标准。

1.2文档约定

说明本文档中所用到的专用术语定义或解释,缩略词定义。

1.3预期的读者和阅读建议

本文档适用于所有软件开发人员。

1.4参考文献

列出有关的参考文件,如:

a.属于本项目的其他已发表文件;

b.本文件中各处引用的文档资料。

列出这些文件的标题、作者,说明能够得到这些文件资料的来源。

2排版要求

2.1程序块缩进

程序块要采用缩进风格编写,缩进的空格数为4个。

说明:对于由开发工具自动生成的代码可以有不一致。

2.2程序块之间空行

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

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

if (!valid_ni(ni))

{

... epssn_index;

repssn_ni = ssn_data[index].ni;

应如下书写

if (!valid_ni(ni))

{

... epssn_index;

repssn_ni = ssn_data[index].ni;

2.3长语句和长表达式

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

示例:

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

2.4循环、判断等长表达式或语句

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

示例:

if ((taskno < max_act_task_number)

&& (n7stat_stat_item_valid (stat_item)))

{

... ord_length)

&& (j < ; i++, j++)

{

... . tat_object),

sizeof (_STAT_OBJECT));

n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER

+ index, stat_object );

2.5短语句

不允许把多个短语句写在一行中,即一行只写一条语句。

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

= 0; = 0;

应如下书写

= 0;

= 0;

2.6条件、循环语句

if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。

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

if (pUserCR == NULL) return;

应如下书写:

if (pUserCR == NULL)

{

return;

}

2.7语句对齐

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

说明:以免用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐,不要使用BC作为编辑器合版本,因为BC会自动将8个空格变为一个TAB键,因此使用BC合入的版本大多会将缩进变乱。

2.8函数、过程和结构等语句块

函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。

2.9程序块分界符

程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。

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

for (...) {

... .)

{

... . .)

{

... .)

{

... . 前后不加空格。

p->id = pid; All manufacturing, reproduction, use,*/

/* and sales rights pertaining to this subject matter are governed by the */

/* license agreement. The recipient of this software implicitly accepts */

/* the terms of the

license.

*/

/* 本软件文档资料是xxx公司的资产,任何人士阅读和使用本资料必须获得 */

/* 相应的书面授权,承担保密责任和接受相应的法律约

束. */

/*

*/

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

2.10说明性文件

说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。

示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。

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

Copyright (C), 1996-1998, xxxxx. Co., Ltd.

File name: ....

History: Date:

Author:

Modification:

2. ...

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

2.11源文件头

源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。

示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。

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

Copyright (C), 1988-1999, Xxxxxx Tech. Co., Ltd.

FileName:

Author: Version : Date:

Description: -------

History: 96/10/12epssn_index;

repssn_ni = ssn_data[index].ni;

例2:

repssn_ind = ssn_data[index].repssn_index;

repssn_ni = ssn_data[index].ni;

/* get replicate sub system index and net indicator */

应如下书写

/* get replicate sub system index and net indicator */

repssn_ind = ssn_data[index].repssn_index;

repssn_ni = ssn_data[index].ni;

2.12变量、常量注释

对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。

示例:

/* active statistic task number */

#define MAX_ACT_TASK_NUMBER 1000

#define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */

2.13数据结构的注释

数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。

示例:可按如下形式说明枚举/数据/联合结构。

/* sccp interface with sccp user primitive message name */

enum SCCP_USER_PRIMITIVE

{

N_UNITDATA_IND, /* sccp notify sccp user unit data come */

N_NOTICE_IND, /* sccp notify user the network can not */

/* transmission this message */

N_UNITDATA_REQ, /* sccp user's unit data transmission request*/

};

2.14全局变量

全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。

示例:

/* The ErrorCode when SCCP translate */

/* Global Title failure, as follows */ .)

{

...

break;

}

else

{

ProcessCFW_B(); .

2.15其他

2.15.1避免在一行代码或表达式的中间插入注释。

说明:除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差。

2.15.2通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的

结构,使代码成为自注释的。

说明:清晰准确的函数、变量等的命名,可增加代码可读性,并减少不必要的注释。

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

说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。

示例:如下注释意义不大。

/* if receive_flag is TRUE */

if (receive_flag)

而如下的注释则给出了额外有用的信息。

/* if mtp receive a message from links */

if (receive_flag)

2.15.4在程序块的结束行右方加注释标记,以表明某程序块的结束。

说明:当代码段较长,特别是多重嵌套时,这样做可以使代码更清晰,更便于阅读。

示例:参见如下例子。

if (...)

{

.)*/ .),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。

说明:变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。

示例:下面所示的局部变量名的定义方法可以借鉴。

int liv_Width

其变量名解释如下:

l 局部变量(Local)(其它:g 全局变量(Global)...)

i 数据类型(Interger)

v 变量(Variable)(其它:c 常量(Const)...)

Width 变量含义

这样可以防止局部变量与全局变量重名。

2.16命名规范与系统风格一致

命名规范必须与所使用的系统风格保持一致,并在同一项目中统一,比如采用UNIX的全小写加下划线的风格或大小写混排的方式,不要使用大小写与下划线混排的方式,用作特殊标识如标识成员变量或全局变量的m_和g_,其后加上大小写混排的方式是允许的。

示例: Add_User不允许,add_user、AddUser、m_AddUser允许。

2.17其他

2.17.1除非必要,不要用数字或较奇怪的字符来定义标识符。

示例:如下命名,使人产生疑惑。

#define _EXAMPLE_0_TEST_

#define _EXAMPLE_1_TEST_

void set_sls00( BYTE sls );

应改为有意义的单词命名

#define _EXAMPLE_UNIT_TEST_

#define _EXAMPLE_ASSERT_TEST_

void set_udt_msg_sls( BYTE sls );

2.17.2在同一软件产品内,应规划好接口部分标识符(变量、结构、函数

及常量)的命名,防止编译、链接时产生冲突。

说明:对接口部分的标识符应该有更严格限制,防止冲突。如可规定接口部分的变量与常量之前加上“模块”标识等。

2.17.3用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

说明:下面是一些在软件中常用的反义词组。

add / remove begin / end create / destroy

insert / delete first / last get / release

increment / decrement put / get

add / delete lock / unlock open / close

min / max old / new start / stop

next / previous source / target show / hide

send / receive source / destination

cut / paste up / down

示例:

int min_sum;

int max_sum;

int add_user( BYTE *user_name );

int delete_user( BYTE *user_name );

3.6.4 除了编译开关/头文件等特殊应用,应避免使用_EXAMPLE_TEST_之类以下划线开始和结尾的定义。

3可读性

3.1运算符优先级

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

说明:防止阅读程序时产生误解,防止因默认的优先级与设计思想不符而导致程序出错。

示例:下列语句中的表达式

word = (high << 8) | low (1)

if ((a | b) && (a & c)) (2)

if ((a | b) < (c & d)) (3)

如果书写为

high << 8 | low

a |

b && a & c

a |

b <

c & d

由于

high << 8 | low = ( high << 8) | low,

a |

b && a &

c = (a | b) && (a & c),

(1)(2)不会出错,但语句不易理解;

a |

b <

c &

d = a | (b < c) & d,(3)造成了判断条件出错。

3.2避免直接使用数字作为标识符

避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的枚举或宏来代替。

示例:如下的程序可读性差。

if (Trunk[index].trunk_state == 0)

{

Trunk[index].trunk_state = 1;

... runk_state == TRUNK_IDLE)

{

Trunk[index].trunk_state = TRUNK_BUSY;

... . . (从低到高,以字节为单位)

exam exam低字节 exam高字节

内存: 0 bit 1 bit 2 bit ... (字节的各“位”)

EXAM_BIT A1 A2 A3

如下是68360 CPU生成短整数及位域的方式。

内存: 0 1 2 ... (从低到高,以字节为单位)

exam exam高字节 exam低字节

内存: 7 bit 6 bit 5 bit ... (字节的各“位”)

EXAM_BIT A1 A2 A3

说明:在对齐方式下,CPU的运行效率要快得多。

示例:如下图,当一个long型数(如图中long1)在内存中的位置正好与内存的字边界对齐时,CPU 存取这个数只需访问一次内存,而当一个long型数(如图中的long2)在内存中的位置跨越了字边界时,CPU存取这个数就需要多次访问内存,如i960cx访问这样的数需读内存三次(一个BYTE、一个SHORT、一个BYTE,由CPU的微代码执行,对软件透明),所有对齐方式下CPU的运行效率明显快多了。

1 8 16 24 32

------- ------- ------- -------

| long1 | long1 | long1 | long1 |

------- ------- ------- -------

| | | | long2 |

------- ------- ------- --------

| long2 | long2 | long2 | |

------- ------- ------- --------

| ....

4函数、过程

4.1对所调用函数的错误返回码要仔细、全面地处理。

4.2明确函数功能,精确(而不是近似)地实现函数设计。

4.3局部变量

编写可重入函数时,应注意局部变量的使用(如编写C/C++语言的可重入函数时,应使用auto即缺省态局部变量或寄存器变量)。

说明:编写C/C++语言的可重入函数时,不应使用static局部变量,否则必须经过特殊

处理,才能使函数具有可重入性。

4.4全局变量

编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。

说明:若对所使用的全局变量不加以保护,则此函数就不具有可重入性,即当多个进程调

用此函数时,很有可能使有关全局变量变为不可知状态。

示例:假设Exam是int型全局变量,函数Squre_Exam返回Exam平方值。那么如下

函数不具有可重入性。

unsigned int example( int para )

{

unsigned int temp;

Exam = para; . . . . . yDataPtr,

则可以通过以下宏定义来代替:

# define pSOCKDATA TheReceiveBuffer[FirstScoket].byDataPtr

5可测性

5.1调测开关

在同一项目组或产品组内,要有一套统一的为集成测试与系统联调准备的调测开关及相应打印函数,并且要有详细的说明。

说明:本规则是针对项目组或产品组的。

5.2打印信息

在同一项目组或产品组内,调测打印出的信息串的格式要有统一的形式。信息串中至少要有所在模块名(或源文件名)及行号。

说明:统一的调测信息格式便于集成测试。

5.3单元测试

编程的同时要为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给出明确的注释说明。测试代码部分应作为(模块中的)一个子模块,以方便测试代码在模块中的安装与拆卸(通过调测开关)。

说明:为单元测试而准备。

5.4集成测试

在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细分析并优化测试用例,以提高测试效率。

说明:好的测试用例应尽可能模拟出程序所遇到的边界值、各种复杂环境及一些极端情况等。

5.5断言使用

5.5.1使用断言来发现软件问题,提高代码可测性。

说明:断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),

它可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。

示例:下面是C语言中的一个断言,用宏来设计的。(其中NULL为0L)

#ifdef _EXAM_ASSERT_TEST_ . . . . . indindind++indindindind++indindindind++indindength;

rect_width_sum += rect[ind].width;

}

}

因为判断语句与循环变量无关,故可如下改进,以减少判断次数。

if (data_type == RECT_AREA)

{

for (ind = 0; ind < MAX_RECT_NUMBER; ind++)

{

area_sum += rect_area[ind];

}

}

else

{

for (ind = 0; ind < MAX_RECT_NUMBER; ind++)

{

rect_length_sum += rect[ind].length;

rect_width_sum += rect[ind].width;

}

}

5.5.2尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。

说明:浮点运算除法要占用较多CPU资源。

示例:如下表达式运算可能要占较多CPU资源。

#define PAI

radius = circle_length / (2 * PAI);

应如下把浮点除法改为浮点乘法。

#define PAI_RECIPROCAL (1 / ) .

/* global title length error */

if (gt_len > MAX_GT_LENGTH)

{

return GT_LENGTH_ERROR; . .

/* global title length error */

if (gt_len > MAX_GT_LENGTH)

{

free( gt_buf ); . . . );

}

}

}

... . . . . , rect[index].b );

}

5.6使用宏时,不允许参数发生变化

示例:如下用法可能导致错误。

#define SQUARE( a ) ((a) * (a))

int a = 5;

int b;

b = SQUARE( a++ ); // 结果:a = 7,即执行了两次增1。

正确的用法是:

b = SQUARE( a );

a++; // 结果:a = 6,即只执行了一次增1。

(完整word版)WEB前端开发代码使用要求规范

WEB前端代码规范 规范目的 为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档。本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发。本文档如有不对或者不合适的地方请及时提出,经讨论决定后方可更改。 基本准则 符合web标准;语义化html;结构、表现、行为分离;兼容性优良。页面性能方面,代码要求简洁明了有序,尽可能的减小服务器负载,保证最快的解析速度。 文件规范

3.jsp文件命名:英文驼峰式命名,文件名.jsp。按实际模块需求命名。 4.css文件命名:英文驼峰式命名,文件名.css。共用base.css,首页index.css,其他 页面按实际模块需求命名。 5.js文件命名:英文驼峰式命名,文件名.js。共用common.js,其他依实际模块需求命 名。 html书写规范 1.文档类型声明及编码:统一为html5的声明类型;编码统一为 ,书写时利用IDE实现层次分明的缩进。 2.非特殊情况下css文件必须在...之间引入,选择link方式引入而非 @import形式。 3.非特殊情况下js文件必须在页面底部引入。 4.引入样式文件或JavaScript文件时,须略去默认类型声明,写法如下:

11.语义化html,如标题根据重要性用h1-h6(同一页面只能有一个h1),段落标记用p,列表 用ul,内联元素中不可嵌套块状元素。 12.尽可能减少div的嵌套层数。 13.在页面中尽量避免使用内嵌样式表,即在标签内使用style="…"。 14.以背景形式呈现的图片,尽量写入css样式中;重要图片必须加上alt属性; 15.特殊符号使用:尽可能使用代码替代:比如<(<)、>(>)、空格( )、&(&)、 ”(")等等; 16.尽量避免使用过度复杂的HTML结构。 css书写规范 1.编码统一为utf-8。 2.为了避免一些浏览器兼容性问题以及增加样式重用性,每个页面必须引入base.css(详见 附件一),此文件不可随意修改。 3.class与id的使用:id是唯一的并是父级的,class是可以重复的并是子级的,所以id 仅使用在大的模块上,class可用在重复使用率高及子级中。 4.为JavaScript预留钩子的命名,请以js_起始,比如:js_hide,js_show。 5.class与id命名:使用英文命名,命名要语义化,简明化,但不要使用诸如first,last 之类的命名。使用驼峰式和下划线分隔相结合的命名规则,即命名应以父级加子级的命名规范,如:父级的类为simple 子级的类应该为simple_first,以此类推,但是尽量避免出现超过四级的类命名。 6.css属性书写顺序,建议遵循:自身属性-->布局定位属性-->文本属性-->其他属性。此条 可根据自身习惯书写,但尽量保证同类属性写在一起。

华为软件编程规范

华为软件编程规范Revised on November 25, 2020

目录 1 排版 6 2 注释11 3 标识符命名18 4 可读性20 5 变量、结构22 6 函数、过程28 7 可测性36 8 程序效率40 9 质量保证44 10 代码编辑、编译、审查50 11 代码测试、维护52 12 宏53

1 排版 11-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 11-2:相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例子不符合规范。 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 应如下书写 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 11-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: + 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));

华为JAVA编程规范

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

XX技术有限公司内部技术规范DKBA04000190-E华为图纸说明规范手册49p

华为技术有限公司内部技术规范 华为图纸说明规范 【最新资料,WORD文档,可编辑修改】

修订声明Revision declaration 本规范拟制与解释部门:华为技术有限公司整机工程部 本规范的相关系列规范或文件:无 相关国际规范或文件一致性:无 替代或作废的其它规范或文件:DKBA 0.400.0190 REV.D 相关规范或文件的相互关系:无 规范号主要起草 部门专家主要评审部门专 家 修订情况 DKBA0.400.0190.V. A基础平台 部:郭天次 00140571结构基础平台部: 肖春秀53994/潘建 军00118387/黄涛 00121968/郑玲 00119690/詹傲芳 62070/朱光胜 67118/郑光明 00115376/邓顺庆 61647 采购认证管理部: 张卫国00174583 供应链管理部物料品 质部: 蒙光忠38711 第一版,整合DKBA0.400.0160结构材料 表示法和DKBA0.400.0002表面处理代 码,增加了对图框各部分内容说明 DKBA0.400.0190.V. B基础平台 部:郭天次 00140571结构基础平台部: 胡邦红00216370 肖春秀53994 潘建军00118387 黄涛00121968 郑玲00119690 詹傲芳62070 朱光胜67118 郑光明00115376 邓顺庆61647 采购认证管理部: 孟庆伟00145066 供应链管理部物料品 质部: 蒙光忠38711 1、增加槽钢和角钢的标注说明; 2、增加表面处理代码:F226、G017、 G018、G161、G226、L015_3、L016、 L017、L226、X009;X226; 3、Film代号含义由“薄膜材料”改为“面 膜” 4、T001的生产质量要求英文版由 DKBA04000065改为DKBA04500067 5、所有“无色化学转化”改为“化学转 化” 6、X127和X202前处理由“锌钝化”改 为“预处理” 7、增加压铸件中1级面的标注说明 8、3.1、4.3、5.1小节增加标题。 9、删除表面处理代码:G016_3、G158_3、 G159_3、L158_3、L159_3 10、热浸涂的生产质量要求由: DKBA0.400.0177改为DKBA0.450.0065

Web前端开发规范手册参考

Web前端开发规范 参考手册 一、规范目的 1.1 概述 为提高团队协作效率,便于后台人员添加功能,及前端后期优化维护,输出高质量的文档,特制订此文档。本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发。本文档如有不对或者不合适的地方请及时提出,经讨论决定后可以更改。 1.2 基本准则 符合web标准,语义化HTML,结构表现行为分离,兼容性优良。页面性能方面,代码要求简洁明了有序,尽可能的减小服务器负载,保证最快的解析速度。 二、规范细则 2.1 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符。命名原则的指导思想: ●一是使得工作组的每一个成员能够方便的理解每一个文件的意义。 ●二是当在文件夹中使用“按名称排例”的命令时,同一种大类的文件能够排列在一 起,以便查找、修改、替换、计算负载量等等操作。 1. HTML命名原则 ●引导文件统一使用index.htm、index.html、ndex.asp文件名(小写)。 ●各子页命名的原则首先应该以栏目名的英语翻译取单一单词为名称。例如: ?关于我们\ aboutus ?信息反馈\ feedback ?产品\ product ●如果栏目名称多而复杂并不好以英文单词命名,则统一使用该栏目名称拼音或拼音 的首字母表示;每一个目录中应该包含一个缺省的html 文件,文件名统一用 index.htm、index.html、index.asp。

2. 图片命名原则 ●图片的名称分为头尾两部分,用下划线隔开,头部分表示此图片的大类性质。例如: 广告、标志、菜单、按钮等。 ●放置在页面顶部的广告、装饰图案等长方形的图片取名:banner。 ●标志性的图片取名:logo。 ●在页面上位置不固定并且带有链接的小图片取名:button 。 ●在页面上某一个位置连续出现,性质相同的链接栏目的图片取名:menu。 ●装饰用的照片取名:pic。 ●不带链接表示标题的图片取名:title。 例如: banner_sohu.gif banner_sina.gif menu_aboutus.gif menu_job.gif title_news.gif logo_police.gif logo_national.gif pic_people.jpg ●鼠标感应效果图片命名规范为"图片名+_+on/off"。 例如: menu1_on.gif menu1_off.gif 3. Javascript命名原则 例如: ●广告条的javascript文件名为ad.js ●弹出窗口的javascript文件名为pop.js 4. 动态语言文件命名原则 以性质_描述,描述可以有多个单词,用“_”隔开,性质一般是该页面得概要。例如:register_form.asp register_post.asp topic_lock.asp 2.2 文件存放位置规范 HTML、CSS、js、images文件均归档至<系统开发规范>约定的目录中。 _Root cn 存放中文HTML文件 en 存放英文HTML文件 flash 存放Flash文件 images 存放图片文件 imagestudio 存放PSD源文件

华为Java语言编码规范标准

Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by 批准Date 日期 yyyy-mm-dd

Revision Record 修订记录

Table of Contents 目录 1. 范围 (4) 2. 规范性引用文件 (4) 3. 术语和定义 (4) 4. 排版规范 (5) 4.1. 规则 (5) 4.2. 建议 (7) 5. 注释规范 (9) 5.1. 规则 (9) 5.2. 建议 (15) 6. 命名规范 (17) 6.1. 规则 (17) 6.2. 建议 (18) 7. 编码规范 (20) 7.1. 规则 (20) 7.2. 建议 (24) 8. JTEST规范 (26) 8.1. 规则 (26) 8.2. 建议 (27)

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

华为钣金设计规范

DKBA 华为技术有限公司企业技术规范 DKBA4031-2003.06 钣金结构件可加工性设计规范 2003-06-30发布2003-07-XX实施 华为技术有限公司发布

目次 前言 (5) 1范围和简介 (6) 1.1范围 (6) 1.2简介 (6) 1.3关键词 (6) 2规范性引用文件 (6) 3冲裁 (6) 3.1冲裁件的形状和尺寸尽可能简单对称,使排样时废料最少。 . 6 3.2冲裁件的外形及内孔应避免尖角。 (6) 3.3冲裁件应避免窄长的悬臂与狭槽 (7) 3.4冲孔优先选用圆形孔,冲孔有最小尺寸要求 (7) 3.5冲裁的孔间距与孔边距 (8) 3.6折弯件及拉深件冲孔时,其孔壁与直壁之间应保持一定的距离8 3.7螺钉、螺栓的过孔和沉头座 (8) 3.8冲裁件毛刺的极限值及设计标注 (9) 3.8.1冲裁件毛刺的极限值 (9) 3.8.2设计图纸中毛刺的标注要求 (9) 4折弯 (10) 4.1折弯件的最小弯曲半径 (10) 4.2弯曲件的直边高度 (10) 4.2.1一般情况下的最小直边高度要求 (10)

4.2.2特殊要求的直边高度 (11) 4.2.3弯边侧边带有斜角的直边高度 (11) 4.3折弯件上的孔边距 (11) 4.4局部弯曲的工艺切口 (12) 4.4.1折弯件的弯曲线应避开尺寸突变的位置 (12) 4.4.2当孔位于折弯变形区内,所采取的切口形式 (12) 4.5带斜边的折弯边应避开变形区 (13) 4.6打死边的设计要求 (13) 4.7设计时添加的工艺定位孔 (13) 4.8标注弯曲件相关尺寸时,要考虑工艺性 (14) 4.9弯曲件的回弹 (14) 4.9.1折弯件的内圆角半径与板厚之比越大,回弹就越大。.. 14 4.9.2从设计上抑制回弹的方法示例 (14) 5拉伸 (15) 5.1拉伸件底部与直壁之间的圆角半径大小要求 (15) 5.2拉伸件凸缘与壁之间的圆角半径 (15) 5.3圆形拉伸件的内腔直径 (15) 5.4矩形拉伸件相邻两壁间的圆角半径 (15) 5.5圆形无凸缘拉伸件一次成形时,其高度与直径的尺寸关系要求 16 5.6拉伸件设计图纸上尺寸标注的注意事项 (16) 5.6.1拉伸件产品尺寸的标准方法 (16)

Web前端开发规范手册

Web前端开发规范手册 一、规范目的 1.1 概述 (1) 二、文件规范 2.1 文件命名规则 (1) 2.2 文件存放位置 (2) 2.3 css 书写规范 (3) 2.4 html书写规范 (7) 2.5 JavaScript书写规范 (11) 2.6 图片规范 (12) 2.7 注释规范 (13) 2.8 css 浏览器兼容 (13) 一、规范目的 1.1 概述 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本文档如有不对或者不合适的地方请及时提出, 经讨论决定后可以更改此文档. 二、文件规范 2.1 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是当我们在文件夹中使用“按名称排例”的命令时,同一种大类的文件能够排列在一起,以便我们查找、修改、替换、计算负载量等等操作。

a. HTML的命名原则 引文件统一使用index.htm index.html index.asp文件名(小写) 各子页命名的原则首先应该以栏目名的英语翻译取单一单词为名称。例如: 关于我们\ aboutus 信息反馈\ feedback 产品\ product 如果栏目名称多而复杂并不好以英文单词命名,则统一使用该栏目名称拼音或拼音的首字母表示; 每一个目录中应该包含一个缺省的html 文件,文件名统一用index.htm index.html index.asp; b. 图片的命名原则 图片的名称分为头尾两部分,用下划线隔开,头部分表示此图片的大类性质 例如:广告、标志、菜单、按钮等等。 放置在页面顶部的广告、装饰图案等长方形的图片取名:banner 标志性的图片取名为:logo 在页面上位置不固定并且带有链接的小图片我们取名为button 在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名:menu 装饰用的照片我们取名:pic 不带链接表示标题的图片我们取名:title 范例:banner_sohu.gif banner_sina.gif menu_aboutus.gif menu_job.gif title_news.gif logo_police.gif logo_national.gif pic_people.jpg 鼠标感应效果图片命名规范为"图片名+_+on/off"。 例如:menu1_on.gif menu1_off.gif c. javascript的命名原则 例如:广告条的javascript文件名为ad.js 弹出窗口的javascript文件名为pop.js d. 动态语言文件命名原则 以性质_描述,描述可以有多个单词,用“_”隔开,性质一般是该页面得概要。 范例:register_form.asp register_post.asp topic_lock.asp 2.2 文件存放位置规范 _Root cn 存放中文HTML文件 en 存放英文HTML文件 flash 存放Flash文件 images 存放图片文件 imagestudio 存放PSD源文件 flashstudio 存放flash源文件 inc 存放include文件 library 存放DW库文件 media 存放多媒体文件 project 存放工程项目资料

华为软件编程规范.doc

文档编号产品版本受控状态 DC-SB-2003-1005V 1.0 内部 产品名称:软件编程规范共页 软件编程规范 (仅供内部使用) 北京世纪百合科技有限公司 Beijing Centurial Lily Technology Co.,Ltd. 版权所有不得复制

文档修改记录

目录 1.引言 (4) 1.1 目的 (4) 1.2 范围 (4) 2.规范 (4) 2.1 文件 (4) 2.2版面风格 (8) 2.3 标识符命名 (12) 2.4 函数与宏 (14) 2.5 代码的可靠性 (18) 3.附录:通用类型的公共定义 (23)

1.引言 1.1目的 本规范的目的在于增加源代码的可读性,减少程序员对代码理解上的偏差,使程序员能够编写出可靠的代码,降低代码维护成本。 1.2范围 本规范内容涉及范围包括:文件、版面、注释、标识符、变量和结构、函数、宏以及可理解性等。本规范适用于公司开发的所有软件产品。在新软件的编码过程中本规范必须执行。 2.规范 2.1文件 2.1.1头文件的名称一律为小写,格式为“子系统名_文件名.h”。例如: ipf_protocol.h等。 2.1.2头文件的格式如下: ?注释头,格式参见软件编程规范; ?头文件预编译开关开始,格式为: #ifndef 预编译开关 #define 预编译开关 其中预编译开关格式为:“ _文件名_H”,其中文件名一律大写 ?头文件内容; ?头文件预编译开关结束,格式为: #endif 用来和头文件预编译开关的开始对应。 例如:以下为ipf_ip.h头文件的内容: /************************************************************ Copyright (c) Lily Of The Century Technology Co., LTD. ALL RIGHTS RESERVED Description: // 用于详细说明此程序文件完成的主要功能 *************************************************************/ #ifndef _IPF_IP_H #define _IPF_IP_H ...

华为员工行为规范

华为员工行为规范 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

员工行为规范一、目的 为体现华为人积极向上的精神面貌,工作期间保持良好的仪表与风度,树立良好的企业形象,特制定本行为规范。 二、适用范围 本规范适用于公司所有员工。 三、细则 u 着装规定 1、员工在上班时间,男士上身不得穿无袖上衣,下身着长裤,或着西装套装;女士着职业套装或正规服装,不得着无袖上衣、超短裙、紧身衣,所有员工均不得着奇装异服;生产部及工程部员工在工作期间必须穿工作服,市场人员、保安及其它外协人员必须着职业服装。 2、上班时间必须正确佩戴工卡,男士用夹子别于左胸前,女士用卡链挂于胸前,不得随意丢置工卡于办公桌及公共场所。 3、男士头发不宜过长,应定期修剪;女士头发不宜过短,都应保持头发的清洁、整齐。 4、女士不宜佩戴过多或夸张的首饰,应以简洁、高雅为标准,不得浓装艳抹,不得涂艳色指甲或留过长指甲。 5、不得穿拖鞋、光脚上班。 u 行为规范 1、办公场所不准吸烟,不准大声喧哗。

2、工作时间打电话不使用免提键,不打私人电话,接听私人电话不得超过3分钟。 3、打电话要长话短说,电话铃响二声后必须接听电话,拿起电话要先说;“你好,华为”,注意语气热情,彬彬有礼。 4、上班时间不做与工作无关的事情,不串岗,不聊天,不随意谈笑,不吃零食。 5、举止庄重,礼貌待人,同事之间交谈要使用文明用语。 四、处罚规定 凡违反上述情况之一,第一次罚款50元,第二次罚款100元,累计三次以上将通报批评,并罚款200元,同时将处罚意见写入员工个人考核意见中。

Web前端开发规范手册

Web前端开发规范手册 修订历史记录 日期版本说明作者 2012年12月31日 1.0初稿施昀 2012年01月05日 1.1施昀、戴静2012年01月07日 1.2施昀 目录 修订历史记录 (1) 一、规范目的 (2) 1.1概述 (2) 二、基本准则 (2) 三、文件规范 (3) 2.1文件命名规则 (3) 2.1.1HTML的命名原则 (3) 2.1.2图片的命名原则 (3) 2.1.3.javascript的命名原则 (4) 2.1.4动态语言文件命名原则 (4) 2.2文件存放位置规范 (4) 2.3CSS书写规范 (4) 2.3.1基本原则 (4)

2.3.2注意细则 (5) 2.3.3命名规则 (6) 2.4html书写规范 (9) 2.4.1head区代码规范 (9) 2.4.2body区代码规范 (10) 2.5JavaScript书写规范 (10) 2.6图片规范 (10) 2.7注释规范 (11) 2.7.1html注释 (11) 2.7.2css注释 (11) 2.7.3JavaScript注释 (11) 四、执行模式 (12) 一、规范目的 1.1概述 提高团队协作效率 便于前端开发以及后期优化维护 方便新进的成员快速上手 输出高质量的代码 本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发。本文档如有不对或者不合适的地方请及时提出,经讨论决定后可以更新此文档。 二、基本准则 符合web标准,语义化html,结构表现行为分离,兼容性优良。 代码要求简洁明了有序,尽可能的减小服务器负载,保证最快的解析速度。

开发时需要遵循如上基本准则,特殊情况可以有所宽限,如一些老项目的页面改造。 三、文件规范 2.1文件命名规则 [使用场景:在新建网页、图片、脚本、CSS文件时,根据此规则给文件命名并放入指定位置] 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字空格和特殊字符。命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是当我们在文件夹中使用“按名称排例”的命令时,同一种大类的文件能够排列在一起,以便我们查找、修改、替换、计算负载量等等操作。 2.1.1HTML的命名原则 索引文件统一使用index.htm index.html index.asp文件名。 如果栏目名称多而复杂并不好以英文单词命名,则统一使用该栏目名称拼音或拼音的首字母表示。 每一个目录中应该包含一个缺省的html文件,文件名统一用index.htm index.html index.asp。 2.1.2图片的命名原则 图片的名称分为头尾两部分,用下划线隔开,头部分表示此图片的大类性质。 例如:广告、标志、菜单、按钮等等。 放置在页面顶部的广告、装饰图案等长方形的图片取名:banner 标志性的图片取名为:logo 在页面上位置不固定并且带有链接的小图片我们取名为button 在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名:menu 装饰用的照片我们取名:pic 不带链接表示标题的图片我们取名:title 范例:banner_sohu.gif banner_sina.gif menu_aboutus.gif menu_job.gif title_news.gif logo_police.gif logo_national.gif pic_people.jpg

华为公司招聘职位要求

华为公司招聘条件要求 软件研发工程师: 工作职责 : 负责通信系统软件模块的设计、编码、调试、测试等工作,参与相关质量活动,确保设计、实现、测试工作按时保质完成 职位要求: 1、计算机、通信或相关专业本科以上学历 2、熟悉C/C++、JAVA底层驱动软件编程,熟悉 TCP/IP 协议、 Internet 网的基本知识 3 、对通信知识有一定基础 4、能够熟练阅读和理解英文资料 2、硬件研发工程师 : 工作职责 : 从事单板硬件、光技术、逻辑、射频、装备、 机电、CAD器件可靠性等模块开发工作,参与相关质量活动, 确 保设计、实现、测试工作的按时保质完成。 职位要求: 1、电子、计算机、通信、自控、自动化相关专业本科以上学历 2、具备良好的数字、模拟电路基础 3、熟悉C/嵌入式系统开发/底层驱动软件编程/逻辑设计 4、能 够熟练阅读和理解英文资料芯片设计工程师: 工作职责 :

1、负责数字 / 模拟芯片开发和设计、验证、实现工作; 2、按照模块规格和芯片总体方案的要求,严格遵循开发流程、模板、标准和规范,承担 模块的详细设计和实施工作,确保开发工作按时按质完成; 3、及时编写各种设计文档和标准化资料,实现资源、经验共享。 职位要求: 1、微电子、计算机、通信工程等相关专业 2、了解或实际应用过 VHDL/Verilog 语言编程,掌握数字电路设计,或具有FPGA设计经验,或熟悉综合(SYN”时序分析(STA /布局布线(Place and routing ) /可测性设计(DFT,有相关工具应用的经验;或具有模拟 IC 设计项目经验 射频开发工程师: 工作职责 : 负责通讯设备射频模块的开发、设计和优化工作;从事无线基站通信设备天馈及其解决方案方面的研究和开发工作。 职位要求: 1、电子、通信、电磁场与微波、微电子半导体等专业本科及以上学历; 2、能够熟练阅读和理解英文资料; 3、掌握并有RF仿真经验(如ADS优先; 4、有射频产品开发经验优先。 云计算研发工程师:

华为代码规范文档

代码规范文档

目录 1 概述 (5) 1.1 编写目的 (5) 1.2 文档约定 (5) 1.3 预期的读者和阅读建议 (5) 1.4 参考文献 (5) 2 排版要求 (5) 2.1 程序块缩进 (5) 2.2 程序块之间空行 (5) 2.3 长语句和长表达式 (6) 2.4 循环、判断等长表达式或语句 (7) 2.5 长参数 (7) 2.6 短语句 (8) 2.7 条件、循环语句 (8) 2.8 语句对齐 (8) 2.9 函数、过程和结构等语句块 (9) 2.10 程序块分界符 (9) 2.11 操作符前后空格 (10) 2.12 其他 (11) 3 注释 (11) 3.1 有效注释量 (11) 3.2 公司标识 (11) 3.3 说明性文件 (12) 3.4 源文件头 (13) 3.5 函数头部说明 (13) 3.6 注释与代码一致 (14) 3.7 注释内容 (14) 3.8 注释缩写 (14) 3.9 注释位置 (14) 3.10 变量、常量注释 (15) 3.11 数据结构的注释 (15) 3.12 全局变量 (16) 3.13 注释缩排 (16) 3.14 注释与代码之间空行 (17) 3.15 变量定义、分支语句 (17) 3.16 其他 (19) 4 标识符命名 (20) 4.1 命名清晰 (20) 4.2 特殊命名需注释 (21) 4.3 命名风格保持一致 (21) 4.4 变量命名 (21) 4.5 命名规范与系统风格一致 (21) 4.6 其他 (22) 5 可读性 (23) 5.1 运算符优先级 (23)

5.2 避免直接使用数字作为标识符 (23) 5.3 其他 (24) 6 变量、结构 (25) 6.1 公共变量 (25) 6.2 公共变量说明 (25) 6.3 公共变量访问说明 (25) 6.4 公共变量赋值 (26) 6.5 防止局部变量与公共变量同名。 (26) 6.6 严禁使用未经初始化的变量作为右值。 (26) 6.7 其他 (26) 7 函数、过程 (34) 7.1 对所调用函数的错误返回码要仔细、全面地处理。 (34) 7.2 明确函数功能,精确(而不是近似)地实现函数设计。 (34) 7.3 局部变量 (34) 7.4 全局变量 (34) 7.5 接口函数参数 (35) 7.6 其他 (35) 8 可测性 (44) 8.1 调测开关 (44) 8.2 打印信息 (45) 8.3 单元测试 (45) 8.4 集成测试 (45) 8.5 断言使用 (45) 8.6 设置与取消有关测试手段时,不能影响软件功能功能 (48) 8.7 版本维护 (48) 8.8 其他 (48) 9 程序效率 (50) 9.1 编程时要经常注意代码的效率。 (50) 9.2 提高代码效率 (50) 9.3 全局效率高于局部效率 (51) 9.4 提高代码空间效率 (51) 9.5 循环体内工作量最小化 (52) 9.6 其他 (53) 10 质量保证 (56) 10.1 在软件设计过程中构筑软件质量。 (56) 10.2 代码质量保证优先原则 (56) 10.3 只引用属于自己的存贮空间。 (56) 10.4 防止引用已经释放的内存空间。 (56) 10.5 内存及时释放 (57) 10.6 文件句柄及时关闭 (57) 10.7 防止内存操作越界 (58) 10.8 认真处理程序所能遇到的各种出错情况 (59) 10.9 初始化变量 (59) 10.10 数据一致性检查 (59) 10.11 严禁随意更改其它模块或系统的有关设置和配置 (59) 10.12 不能随意改变与其它模块的接口 (59)

前端开发设计规范文档样本

前端开发设计规范 目录 前端开发设计规范 (1) 一、HTML使用规范 (1) 1.1、页面文件命名规范 (1) 1.2、页面head部分书写规范 (1) 1.3、HTML元素开发规范 (2) 1.3.1、HTML元素书写规范 (2) 1.3.2、HTML元素命名规范 (4) 二、WEB页面开发规范 (5) 2.1、错误跳转页面的处理 (5) 2.2、提示信息的处理 (5) 2.3、页面的返回 (5) 2.4、提交前数据的判断验证 (5) 2.5、删除操作 (6) 2.6、页面中java代码的使用 (6) 2.7、网站页面布局规范 (7) 2.7.1、前台页面尺寸 (7)

2.7.2、标准网页广告图标规格(参考) (7) 2.7.3、页面字体 (8) 2.7.4、字体颜色 (8) 三、javaScript开发规范 (9) 3.1、javaScript文件命名规范: (9) 3.2、javaScript开发规范 (9) 3.2.1、javaScript书写规范 (9) 3.2.2、javaScript命名规范 (10) 四、css样式规范 (12) 4.1、css样式文件命名规范 (12) 4.1.1、通用样式文件命名规范: (12) 4.1.2、业务类样式文件命名规范 (13) 4.1.3、css样式文件命名须知 (13) 4.2、css样式文件存放目录规范 (13) 4.3、css样式定义规范 (14) 4.3.1、css样式内容顶部注释规范 (14) 4.3.2、css样式内容注释规范 (14) 4.3.3、css样式定义规范 (15) 4.3.4、css样式常用id的命名 (17) 4.3.5、css样式常用class的命名 (18)

华为软件编程地要求规范

软件编程规范 (仅供内部使用) 北京世纪百合科技有限公司 Beijing Centurial Lily Technology Co.,Ltd. 版权所有不得复制

文档修改记录

目录 1.引言 (6) 1.1 目的 (6) 1.2 范围 (6) 2.规范 (6) 2.1 文件 (6) 2.2版面风格 (4) 2.3 标识符命名 (9) 2.4 函数与宏 (11) 2.5 代码的可靠性 (15) 3.附录:通用类型的公共定义 (21)

1.引言 1.1目的 本规范的目的在于增加源代码的可读性,减少程序员对代码理解上的偏差,使程序员能够编写出可靠的代码,降低代码维护成本。 1.2范围 本规范内容涉及范围包括:文件、版面、注释、标识符、变量和结构、函数、宏以及可理解性等。本规范适用于公司开发的所有软件产品。在新软件的编码过程中本规范必须执行。 2.规范 2.1文件 2.1.1头文件的名称一律为小写,格式为“子系统名_文件名.h”。例如: ipf_protocol.h等。 2.1.2头文件的格式如下: 注释头,格式参见软件编程规范; 头文件预编译开关开始,格式为: #ifndef 预编译开关 #define 预编译开关 其中预编译开关格式为:“ _文件名_H”,其中文件名一律大写 头文件内容; 头文件预编译开关结束,格式为: #endif 用来和头文件预编译开关的开始对应。 例如:以下为ipf_ip.h头文件的内容: /************************************************************ Copyright (c) Lily Of The Century Technology Co., LTD. ALL RIGHTS RESERVED Description: // 用于详细说明此程序文件完成的主要功能 *************************************************************/ #ifndef _IPF_IP_H #define _IPF_IP_H ...

硬件EMC 设计规范1_华为内部资料

本规范只简绍EMC的主要原则与结论,为硬件工程师们在开发设计中抛砖引玉。 电磁干扰的三要素是干扰源、干扰传输途径、干扰接收器。EMC 就围绕这些问题进行研究。最基本的干扰抑制技术是屏蔽、滤波、接地。它们主要用来切断干扰的传输途径。广义的电磁兼容控制技术包括抑制干扰源的发射和提高干扰接收器的敏感度,但已延伸到其他学科领域。 本规范重点在单板的EMC 设计上,附带一些必须的EMC 知识及法则。在印制电路板设计阶段对电磁兼容考虑将减少电路在样机中发生电磁干扰。问题的种类包括公共阻抗耦合、串扰、高频载流导线产生的辐射和通过由互连布线和印制线形成的回路拾取噪声等。在高速逻辑电路里,这类问题特别脆弱,原因很多: 1、电源与地线的阻抗随频率增加而增加,公共阻抗耦合的发生比较频繁; 2、信号频率较高,通过寄生电容耦合到布线较有效,串扰发生更容易; 3、信号回路尺寸与时钟频率及其谐波的波长相比拟,辐射更加显著。 4、引起信号线路反射的阻抗不匹配问题。 一、总体概念及考虑 1、五一五规则,即时钟频率到5MHz 或脉冲上升时间小于5ns,则PCB 板须 采用多层板。 2、不同电源平面不能重叠。 3、公共阻抗耦合问题。 模型: VN1=I2ZG 为电源I2 流经地平面阻抗ZG 而在1 号电路感应的噪声电压。 由于地平面电流可能由多个源产生,感应噪声可能高过模电的灵敏度或数电 的抗扰度。 解决办法: ①模拟与数字电路应有各自的回路,最后单点接地; ②电源线与回线越宽越好; ③缩短印制线长度; ④电源分配系统去耦。 4、减小环路面积及两环路的交链面积。 5、一个重要思想是:PCB 上的EMC 主要取决于直流电源线的Z 0

华为软件开发规范

软件开发规范 1 排版 11-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 11-2:相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例子不符合规范。 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 应如下书写 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 11-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: = 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));

华为JAVA编码规范

1.程序块采用缩进风格,空格为4个. 说明: 对于开发工具自动生成的代码可以不一致 2.分界符(如大括号{和})应各自占一行并且在同一列,同时与引用它们的语句左 对齐,在方法的开始,类和接口的定义,以及if,for,do,while,switch,case语句都要采用上述缩进 说明: for(…) { …//your code } 3.较长(>80字符)的语句,表达式和参数要分多行,长表达式要在低优先级操作符 划分新行,操作符放在行首,新行要适当缩进,整齐,语句可读. 说明: if(filename != null && new File(logPath+filename).length() < logConfig.getFileSize()) { …//your code } 4.一行只写一条语句 说明: LogFilename wow = null; LogFilename that = null; 5.if,for,do,switch,while,case,default各占一行,它们的执行语句无论多少都要加{} 说明: if(writeToFile) { writeFileThread.interrupt(); } 6.相对独立的程序块,变量,说明要加空行 说明: if(log.getLevel() < log.getRecord()) { return ; } //空行

LogWrite writer; 7.对齐只用空格键,不用TAB键 说明: 以免使用不同的编辑器阅读程序时,因TAB键所设置的空格数不同而造成程序布局不整齐,JBuildr,UltraEdit等编辑环境,支持行首TAB替换成空格,应将该选项打开 8.两个以上的关键字,变量,常量进行对等操作时,操作符之前,之后或前后要加空 格,进行非对等操作时,如果是关系密切的立即操作符,后面不加空格(如.操作符) 说明: 采用这种松散方式编写代码目的是让程序更加清晰,由于空格所产生的清晰性是相对的,所以在已经很清晰的语句中没有必要留空格,如果语句已足够清晰,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为java中括号已经是很清晰的标志了.在长句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部中不加空格,给操作符留空格时不要连续留两个以上空格 9.类属性和方法不要交叉放置,不同存取范围的属性和方法也不要交叉放置 说明: 类定义:{ 类公有属性定义; 类保护属性定义; 类私有属性定义; 类公有方法定义; 类保护方法定义; 类私有方法定义; } 10.源程序的有效注释量必须在30%以上 11.包的注释写入一个名为package.html的html格式的说明文件放入当前路径 12.包的注释内容:本包作用,详细描述本包内容,产品模块名称及版本,公司版本 说明: 一句话描述 详细描述 产品模块
公司版本信息

相关文档
最新文档