文档库 最新最全的文档下载
当前位置:文档库 › 代码书写规范

代码书写规范

代码书写规范
代码书写规范

代码书写规范

空白

1.关键字if, while, for与其后的控制表达式的括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。

例如:while (1);

2.双目运算符的两侧插入一个空格分隔,单目运算符和操作数之间不加空格。

例如:i=i+1、++i、!(i<1)、-x、&a[1]等。

3.后缀运算符和操作数之间也不加空格。

例如:取结构体成员s.a、函数调用foo(arg1)、取数组成员a[i]。

4. 、,号和;号之后要加空格,这是英文的书写习惯。

例如:for(i=1; i<10; i++)、foo(arg1, arg2)。

5.以上关于双目运算符和后缀运算符的规则不是严格要求,有时候为了突出优先级也可以写得更紧凑一些.

例如:for(i=1;i<10;i++)、distance=sqrt(x*x+y*y)等。但是省略的空格一定不要误导了读代码的人,例如a||b&&c 很容易让人理解成错误的优先级。

6.接近或大于80个字符的较长语句要折行写,折行后用空格和上面的表达式或参数对齐。

例如:if(sqrt(x*x+y*y) > 5.0

&&x<0.0

&&y>0.0)

缩进

1.要用缩进体现出语句块的层次关系,使用Tab字符缩进,不能用空格代替Tab。函数里面的代码,也称为代码块或复合代码,要求进行缩进。遇到循环和分支结构的处理,循环和分支下的代码块要求再进行缩进,假设循环和分支里又嵌套了循环和分支,代码块应该层层缩进

2.if/else、while、do/while、for、switch这些可以带语句块的语句,

If (…)

{

→语句列表

}

else if (…)

{

→语句列表

}

3.函数定义的{和}单独占一行,这一点和语句块的规定不同.

例如:

int sum(int a, int b)

{

语句列表;

}

5.一行只写一条语句

6.代码中每个逻辑段落之间应该用一个空行分隔开。例如每个函数定义之间应该插入一个空行,头文件、全局变量定义和函数定义之间也应该插入空行.

7.在分支和循环中不管有一条还是多条语句建议都要加上"{}"

注释

1.注释应采用/*姓名2010-06-20 comment*/的形式,用空格把界定符和文字分开。

标识符的命名规范

标识符的命名要清晰明了,可以使用完整的单词和大家易于理解的缩写。短的单词可以通过去元音形成缩写,较长的单词可以取单词的头几个字母形成缩写,也可以采用大家基本认同的缩写。例如count写成cnt,block 写成blk,length写成len,window写成win,message写成msg,temporary可以写成temp,也可以进一步写成tmp。

变量、函数和类型采用全小写加下划线的方式命名,常量(宏定义和枚举常量)采用全大写加下划线的方式命名。如函数名radix_tree_insert、类型名struct radix_tree_root。

常量的命名规范:每一个英文字符大写,每个单词之间可以用'_'连接RADIX_TREE_MAP_SHIFT等。

全局变量和全局函数的命名一定要详细,不惜多用几个单词多写几个下划线,例如函数名radix_tree_insert,因为它们在整个项目的许多源文件中都会用到,必须让使用者明确这个变量或函数是干什么用的。局部变量和只在一个源文件中调用的内部函数的命名可以简略一些,但不能太短,不要使用单个字母做变量名,只有一个例外:用i、j、k做循环变量是可以的。

针对中国程序员的一条特别规定:禁止用汉语拼音作为标识符名称,可读性极差。

函数的编码风格

每个函数都应该设计得尽可能简单,简单的函数才容易维护。应遵循以下原则:

实现一个函数只是为了做好一件事情,不要把函数设计成用途广泛、面面俱到的,这样的函数肯定会超长,而且往往不可重用,维护困难。

函数内部的缩进层次不宜过多,一般以少于4层为宜。如果缩进层次太多就说明设计得太复杂了,应该考虑分割成更小的函数来调用。

函数不要写得太长,建议在24行的标准终端上不超过两屏,太长会造成阅读困难,如果一个函数超过两屏就应该考虑分割函数了。

执行函数就是执行一个动作,函数名通常应包含动词,例如get_current、radix_tree_insert。

比较重要的函数定义上面必须加注释,说此函数的功能、参数、返回值、错误码等。

另一种度量函数复杂度的办法是看有多少个局部变量,5到10个局部变量就已经很多了,局部变量再多就很难维护了,应该考虑分割函数。

函数参数的防错设计

在编写函数时,要进行反复的考查,并且自问:"我打算做哪些假定?"一旦确定了的假定,就要使用断言对假定进行检查。使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。

在函数的入口处,使用断言检查参数的有效性(合法性)。

编程好习惯

初始化变量

尽可能使用局部变量

一个函数只有一个紧凑的职责

避免函数过长避免函数嵌套过深

不要拘泥于小节

代码编写规范

知识管理系统代码编写规范 一、介绍 本文档为《知识管理系统》代码编写规范,为保证代码风格的一致性和后期的可维护性,文档讲述的内容要求所有开发人员必须遵守。 本规范主要参考了Google Java Style,包括了其他一些业界约定俗成的公约和普遍采用的标准。本规范并非最终标准,一些规定还需再做商讨。 1.1 术语说明 本文档除非特殊说明,否则: 1. 类(class)统指普通类、枚举类、接口和注解类型。 2. 注释(comment)只用来指实现注释(implementation comments)。我们不使用“文 档注释”这样的说法,而会直接说Javadoc。 其他“术语说明”,将在文档中需要说明的地方单独说明。 1.2 文档说明 本文档中的代码并不一定符合所有规范。即使这些代码遵循本规范,但这不是唯一的代码方式。例子中可选的格式风格也不应该作为强制执行的规范。

二、源码文件基础 2.1 文件名 源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。 2.2 文件编码:UTF-8 源码文件使用UTF-8编码。 2.3 特殊字符 2.3.1 空格字符 除了换行符外,ASCII 水平空白字符(0x20)是源码文件中唯一支持的空格字符。这意味着: 1. 其他空白字符将被转义。 2. Tab字符不被用作缩进控制。 2.3.2 特殊转义字符串 任何需要转义字符串表示的字符(例如\b, \t, \n, \f, \r, \", \'和\\等),采用这种转义字符串的方式表示,而不采用对应字符的八进制数(例如\012)或Unicode 码(例如\u000a)表示。 2.3.3 非ASCII 字符 对于其余非ASCII字符,直接使用Unicode字符(例如∞),或者对应的Unicode 码(例如\u221e)转义都是允许的。唯一需要考虑的是,何种方式更能使代码容易阅读和理解。

程序代码注释编写规范

百度文库- 让每个人平等地提升自我 1 程序代码注释编写规范 为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 常规注释有以下两种方式。 单行:以"文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************* (C), MicTiVo International. Co., Ltd. 1.File : . History: Date: Author: Modification: 2. .. *************************************************/ 一、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************ (C), MicTiVo International. Co., Ltd. FileName: Author: Version : Date: : / /*receive _process() */ 意:与溢出中断写初值不同}

SAP开发规范

目录 目录 (1) SAP开发规范 (3) 1说明 (3) 1.1内容说明 (3) 1.2规范目的 (3) 1.3使用说明 (3) 1.4使用对象 (3) 2一般规则 (3) 3代码管理 (4) 3.1程序标题 (4) 3.2子程序、模块标题 (5) 3.3编辑器设置 (5) 3.4代码格式 (7) 3.4.1使用规范化打印机 (7) 3.4.2查询SQL语句的写法 (7) 3.5变更记录管理 (7) 3.6代码注释 (8) 3.7子程序与函数模块 (9) 3.8其它注意事项 (9) 4数据库查询 (9) 4.1不要在L OOP循环中使用S ELECT语句 (9) 4.2取数的时候不能使用S ELECT......E NDSELECT语句循环操作 (9) 4.3尽量多使用内表 (9) 4.4S ELECT 与S ELECT*比较 (10) 4.5外部检查 (10) 4.6S ELECT SINGLE语句使用注意 (10) 4.7S ELECT 语句中排序与ABAP语句中排序比较 (10) 4.8S ELECT DISTINCT语句使用 (11) 4.9批量更新数据库表 (11) 4.10F OR A LL E NTRIES 语句 (11) 4.11O PEN SQL与N ATIVE SQL比较 (12) 4.12表连接 (12) 5内表使用注意 (12) 5.1内表定义 (12)

5.2内表使用 (12) 5.2.1修改内表中的字段值 (12) 5.2.2把一个内表附加到另一个内表后面 (12) 5.2.3删除内表中重复行 (13) 5.2.4根据条件删除内表中的行 (13) 5.2.5内表是否为空的判断 (13) 5.2.6读取内表行 (13) 5.2.7通过LOOP AT it_tab ASSIGNING 循环内表 (14) 5.2.8通过平行光标来连接两个内表 (14) 5.2.9释放内表 (15) 6数据字典对象 (15) 6.1建表规则 (15) 6.2创建数据元素/域的基本规则 (15) 6.3添加客户化字段到SAP表中 (16) 6.4索引维护 (16) 7文件处理 (16) 8SMART FORM (17) 9权限 (17) 10其它注意事项 (17) 10.1消息类使用 (17) 10.2子程序参数传递 (17) 10.3局部变量与全局变量的使用比较 (18) 11代码检查 (19) 12ABAP性能例子 (19)

VERILOG语言编写规范

VERILOG语言编写规范 1 目的 本规范的目的是提高书写代码的可读性可修改性可重用性,优化代码综合和仿真结果,指导设计工程师使用VerilogHDL规范代码和优化电路,规范化公司的ASIC设计输入从而做到 1. 逻辑功能正确 2.可快速仿真 3. 综合结果最优如果是hardware model) 4. 可读性较好。 2 范围 本规范涉及Verilog HDL编码风格,编码中应注意的问题, Testbench的编码等。 本规范适用于Verilog model的任何一级( RTL behavioral, gate_level),也适用于出于仿真,综合或二者结合的目的而设计的模块。 3 定义 Verilog HDL : Verilog 硬件描述语言 FSM :有限状态机 伪路径:静态时序分析( STA)认为是时序失败,而设计者认为是正确的路径 4 引用标准和参考资料 下列标准包含的条文通过在本标准中引用而构成本标准的条文在标准出版时所示版本 均为有效所有标准都会被修订使用本标准的各方应探讨使用下列标准最新版本的可能性 Actel HDLCoding Style Guider Sun Microsystems Revision 1.0 VerilogStyle and Coding Guidelines 5 规范内容 5.1 Verilog 编码风格

本章节中提到的Verilog编码规则和建议适应于 Verilog model的任何一级( RTL behavioral,gate_level) 也适用于出于仿真,综合或二者结合的目的而设计的模块。 5.1.1 命名规范 选择有意义的信号和变量名,对设计是十分重要的。命名包含信号或变量诸如出处,有效状态等基本含义下面给出一些命名的规则。 1. 用有意义而有效的名字 有效的命名有时并不是要求将功能描述出来如 For ( I = 0; I < 1024; I = I + 1 ) Mem[I]<= #1 32’b0; For 语句中的循环指针I 就没必要用loop_index作为指针名。 2. 用连贯的缩写 长的名字对书写和记忆会带来不便,甚至带来错误采用缩写时应注意同一信号在模块中的一致性。缩写的例子如下: Addr address Pntr pointer Clk clock Rst reset 3. 用名字前加小写n表示低电平有效高电平有效的信号不得以下划线表示短暂 的引擎信号建议采用高有效 如 nRst, nTrdy, nIrdy nIdsel. 4. 大小写原则 名字一般首字符大写,其余小写(但parameter, integer 定义的数值名可全部用大写),两个词之间要用下划线连接(或第二个单词首字母大写) 如 :Packet_addr, Data_in, Mem_wr , Mem_ce_ Or: PacketAddr, DataIn, MemWr , MemCe 5.全局信号名字中应包含信号来源的一些信息 如: D_addr[7:2] 这里的 D 指明了地址是解码模块(Decoder module)中的地址.

Java代码编写规范(参考)

命名规范: 1.所有的标识都只能使用ASCII字母(A-Z或a-z)、数字(0-9)和 下划线”_”。 2.一个唯一包名的前缀总是用全部小写的字母。 3.类名是一个名词,采用大小写混合的方式,每个单词的首字母大 写。 4.接口的大小写规则与类名相似。 5.方法名是一个动词或是动词词组,采用大小写混合的方式,第一 个单词的首字母小写,其后单词的首字母大写。 6.变量名的第一个字母小写,任何中间单词的首字母大写,变量名 应简短且可以顾名思义,易于记忆。避免单个字符的变量名,除非是一次性的临时变量。 7.常量的声明应该全部大写,每个单词之间用”_”连接。 注释规范: 1.注释尽可能使用”//”,对于所有的Javadoc的注释使用/***/,而 临时对代码块进行注释应尽量使用/**/。 2.所有的源文件都应该在开头有一个注释,其中列出文件名、日期 和类的功能概述。每个方法必须添加文档注释(main除外)。 3.每个属性必须加注释。 4.代码中至少包含15%的注释。 5.注释使用中文。

缩进排版规范: 1.避免一行的长度超过60个字符。 2.使用Eclipse源代码的格式化功能完成代码的缩进排版。 文件名规范: 1.一个Java源文件只能储存一个Java类。 2.文件名与Java类相同。 3.一个类文件不超过200行。 声明规范: 1.一行声明一个变量。 2.不要将不同类型变量的声明放在同一行。 3.只在代块的开始处声明变量。 4.所有的变量必须在声明时初始化。 5.避免声明的局部变量覆盖上一级声明的变量。 6.方法与方法直接以空行分隔。 语句规范: 1.每行至少包含一条简单语句。 2.在return语句中,返回值不使用小括号”()”括起来。 3.If月总是用{和}括起来。 4.在for语句的初始化或者更新子句中,避免因使用3个以上变量, 而导致复杂度提高。 5.当switch的一个case顺着往下执行时(因为没有break),通常 应在break语句的位置添加注释。

VERYLOG编码规范

Verilog编码规范! 一. 强调Verilog代码编写风格的必要性。 强调Verilog代码编写规范,经常是一个不太受欢迎的话题,但却是非常有必要的。 每个代码编写者都有自己的编写习惯,而且都喜欢按照自己的习惯去编写代码。与自己编写风格相近的代码,阅读起来容易接受和理解。相反和自己编写风格差别较大的代码,阅读和接受起来就困难一些。 曾有编程大师总结说,一个优秀的程序员,能维护的代码长度大约在1万行数量级。代码的整洁程度,很大程度上影响着代码的维护难度。 遵循代码编写规范书写的代码,很容易阅读、理解、维护、修改、跟踪调试、整理文档。相反代码编写风格随意的代码,通常晦涩、凌乱,会给开发者本人的调试、修改工作带来困难,也会给合作者带来很大麻烦。 (实际上英文Coding Style有另一层涵义,更偏重的是,某一个电路,用那一种形式的语言描述,才能将电路描述得更准确,综合以后产生的电路更合理。本文更偏重的是,编写Verilog代码时的书写习惯。) 二. 强调编写规范的宗旨。 缩小篇幅 提高整洁度 便于跟踪、分析、调试 增强可读性,帮助阅读者理解 便于整理文档 便于交流合作 三. 变量及信号命名规范。 1. 系统级信号的命名。 系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号;系统信号以字符串Sys开头。 2. 低电平有效的信号后一律加下划线和字母n。如:SysRst_n;FifoFull_n; 3. 经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别。如CpuRamRd信号,经锁存后应命名为CpuRamRd_r。 低电平有效的信号经过锁存器锁存后,其命名应在_n后加r。如CpuRamRd_n信号,经锁存后应命名为CpuRamRd_nr 多级锁存的信号,可多加r以标明。如CpuRamRd信号,经两级触发器锁存后,应命名为CpuRamRd_rr。 4. 模块的命名。 在系统设计阶段应该为每个模块进行命名。命名的方法是,将模块英文名称的各个单词首字母组合起来,形成3到5个字符的缩写。若模块的英文名只有一个单词,可取该单词的前3个字母。各模块的命名以3个字母为宜。例如: Arithmatic Logical Unit模块,命名为ALU。 Data Memory Interface模块,命名为DMI。

代码开发规范

代码开发规范 1 前言 1.1 为什么需要开发规范 编码规范对于程序员而言尤为重要,有以下几个原因: * 一个软件的生命周期中,80%的花费在于维护 * 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护* 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 * 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 1.2 开发规范的作用 * 减少维护花费 * 提高可读性 * 加快工作交接 * 减少名字增生 * 降低缺陷引入的机会

2 命名规范 2.1 常量命名规范 2.1.1 类型 常量命名规范 2.1.2 说明 常量用于保存需要常驻内存中并且经常使用变化不多的数据,定义常量的名称的时候需要遵循望文知意的原则; 2.1.3 规则 1.全部为大写字母; 2.中间以“_”连接; 3.望文知意原则; 2.1.4 备注 代码中涉及到直接使用某个字符串或者其他基本类型的值时,建议定义成常量,避免多处直接使用同样的值作为参数。 2.1.5 举例 ?如:定义一个常量表示最小屏幕宽度的常量,则可以定义一个int类型的常 量,该常量可以命名为:“MIN_SCREEN_WIDTH“; ?其他举例: ?例如:static final int MIN_SCREEN_WIDTH = 4;( √) ?例如:static final int min_screen_width = 4;(×) ?例如:static final int minScreenWidth = 4; (×) ?例如:static final int WIDTH = 4;(×)

安全代码编写规范

安全代码编写规范 一、编写目的 为加强武汉楚烟信息技术有限公司在软件开发中的安全规范要求,减少应用上线后带来潜在的安全风险,特拟定安全代码编写规范。二、使用范围 本规范适用于武汉楚烟信息技术有限公司承建的各类开发类的软件类项目。 三、应用安全设计 在总体架构设计阶段,需明确与客户方沟通确认甲方对于软件安全的相关要求,对于有明确安全要求的(例如授权管理要求、用户认证要求、日志审计要求等),须在设计文档中予以详细说明。对于互联网应用,务必明确网络安全、应用安全、数据安全相关的安全防护手段。 在技术架构上,应采用表现层、服务层、持久层分类的架构,实现对底层业务逻辑进行有效隔离,避免将底层实现细节暴露给最终用户。 在部署架构上,应采用应用服务器、数据库服务器的分离部署模式,在应用服务器被攻击时,不会导致核心应用数据的丢失。如软件产品具备有条件时,应优先采用加密数据传输方式(例如https协议)。 在外部接口设计方面,应采用最小接口暴露的原则,避免开发不必要的服务方法带来相关安全隐患,同时对于第三方接口,应共同商定第三方接入的身份认证方式和手段。

四、应用安全编码 4.1. 输入验证 对于用户输入项进行数据验证,除常见的数据格式、数据长度外,还需要对特殊的危险字符进行处理。特殊字符包括<> " ' % ( ) & + \ \' \"等 对于核心业务功能,除在客户端或浏览器进行数据验证外,还必须在服务器端对数据进行合法性检验,规避用户跳过客户端校验,直接将不合规的数据保存到应用中。 对于浏览器重定向地址的数据,需要进行验证核实,确认重定向地址是否在可信,并且需要对换行符(\r或\n)进行移除或者替换。 4.2. 数据输出 对需要输出到用户浏览器的任何由用户创造的内容,应在输出到浏览器之前或持久化存储之前进行转义(至少对<>转义为< >)以防止跨站攻击脚本(XSS)。对于无法规避的HTML片段提交,需对 嵌套的节点应该缩进; 在属性上使用双引号(字符串拼接除外); 属性名全小写,用“-”做分隔符; 自动闭合标签处不能使用斜线。 Page title Company Hello, world!

Verilog+HDL代码书写规范

1.目的 本规范的目的是提高书写代码的可读性、可修改性、可重用性,优化代码综合和仿真的结果,指导设计工程师使用VerilogHDL规范代码和优化电路,规范化可编程技术部的FPGA设计输入,从而做到:①逻辑功能正确,②可快速仿真,③综合结果最优(如果是hardware model),④可读性较好。 2.范围 本规范涉及Verilog HDL编码风格,编码中应注意的问题,Testbench的编码等。 本规范适用于Verilog model的任何一级(RTL,behavioral, gate_level),也适用于出于仿真、综合或二者结合的目的而设计的模块。 3.定义 Verilog HDL : Verilog 硬件描述语言 FSM :有限状态机 伪路径:静态时序分析(STA)认为是时序失败,而设计者认为是正确的路径。 4.规范内容 4.1.Verilog 编码风格 本章节中提到的Verilog编码规则和建议适应于 Verilog model的任何一级(RTL,behavioral, gate_level),也适用于出于仿真,综合或二者结合的目的而设计的模块。 4.1.1. 命名的习惯 选择有意义的信号和变量名,对设计是十分重要的。命名包含信号或变量诸如出处、有效状态等基本含义,下面给出一些命名的规则。 y用有意义而有效的名字 有效的命名有时并不是要求将功能描述出来,如 For ( I = 0; I < 1024; I = I + 1 ) Mem[I] <= 32’b0; For 语句中的循环指针I 就没必要用loop_index作为指针名。 y用连贯的缩写 长的名字对书写和记忆会带来不便,甚至带来错误。采用缩写时应注意同一信号在模块中的一致性。缩写的例子如下: Addr address Pntr pointer Clk clock reset

代码编写规范说明书

代码编写规范说明书(c#.net与https://www.wendangku.net/doc/bd13330146.html,)目录 1 目的 2 范围 3 注释规范 3.1 概述 3.2 自建代码文件注释 3.3 模块(类)注释 3.4 类属性注释 3.5 方法注释 3.6 代码间注释 4 命名总体规则 5 命名规范 5.1 变量(Variable)命名 5.2 常量命名 5.3 类(Class)命名 5.4 接口(Interface)命名 5.5 方法(Method)命名 5.6 名称空间Namespace)命名 6 编码规则 6.1 错误检查规则 6.2 大括号规则 6.3 缩进规则 6.4 小括号规则 6.5 If Then Else规则 6.6 比较规则 6.7 Case规则 6.8 对齐规则 6.9 单语句规则 6.10 单一功能规则 6.11 简单功能规则 6.12 明确条件规则 6.13 选用FALSE规则 6.14 独立赋值规则 6.15 定义常量规则 6.16 模块化规则 6.17 交流规则 7 编程准则 7.1 变量使用 7.2 数据库操作 7.3 对象使用 7.4 模块设计原则 7.5 结构化要求 7.6 函数返回值原则 8 代码包规范 8.1 代码包的版本号

8.2 代码包的标识 9 代码的控制 9.1 代码库/目录的建立 9.2 代码归档 10 输入控制校验规则 10.1 登陆控制 10.2 数据录入控制 附件1:数据类型缩写表 附件2:服务器控件名缩写表 1 目的 一.为了统一公司软件开发设计过程的编程规范 二.使网站开发人员能很方便的理解每个目录,变量,控件,类,方法的意义 三.为了保证编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。 四.编码规范和约定必须能明显改善代码可读性,并有助于代码管理、分类范围适用于企业所有基于.NET平台的软件开发工作 2 范围 本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。 3 注释规范 3.1 概述 a) 注释要求英文及英文的标点符号。 b) 注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。 c) 每行注释的最大长度为100个字符。 d) 将注释与注释分隔符用一个空格分开。 e) 不允许给注释加外框。 f) 编码的同时书写注释。 g) 重要变量必须有注释。 h) 变量注释和变量在同一行,所有注释必须对齐,与变量分开至少四个“空格”键。 如:int m_iLevel,m_iCount; // m_iLevel ....tree level // m_iCount ....count of tree items string m_strSql; //SQL i) 典型算法必须有注释。 j) 在循环和逻辑分支地方的上行必须就近书写注释。 k) 程序段或语句的注释在程序段或语句的上一行 l) 在代码交付之前,必须删掉临时的或无关的注释。 m) 为便于阅读代码,每行代码的长度应少于100个字符。 3.2 自建代码文件注释 对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释: /****************************************************** FileName: Copyright (c) 2004-xxxx *********公司技术开发部 Writer: create Date: Rewriter:

源代码编写规范

源代码编写规范 版本<1.0>

1简介 (4) 1.1目的 (4) 1.2范围 (4) 2代码格式规范 (4) 3代码注释规范 (5) 4命名规范 (9) 5异常处理规范 (11) 6其他规范 (11)

1简介 1.1目的 本文用于定义本公司程序编码规范。本文的目的在于规范和指导软件编程活动,作为考核标准。 1.2范围 本文仅用于指导软件编程工作,同时作为其他分析和设计工作的参考资料。本文的预期读者是:软件工程师/设计员、程序员。 本公司各项目可以采用不同的编程语言,并参照本规范和各语言的习惯定义各自的编程规范,但是必须经过评审通过。编程规范一旦通过评审,任何人在编程活动中都必须遵循。 2代码格式规范 【规范1】单行代码不得超过120字符。 【规范2】每行代码最多包含一个独立的语句。 【规范3】代码缩进两个空格。 说明:两个空格已经足够清晰了,缩进量过大会导致单行代码很长,反而影响阅读。 【规范4】不要使用TAB缩进代替空格缩进。 【规范5】如果单行代码过长,则应该遵循以下规则断行: ?在逗号的后面。 ?在操作符的前面。 ?断行的起始位置应该对其原行表达式的起始位置,如果无法满足,则缩进2个空格。 【规范6】每一个变量的声明独占一行。 【规范7】将变量的声明置于代码块的开始位置。 【规范8】在java中for、while、do-whil e循环,if、else if、else、switch-case分支,try-catch-finally块即使仅包含一个语句,也要用{}包含。其他语言参照执行。 【规范9】空行的位置: ?在逻辑代码段之间。 ?for、while、do-whil e循环,if、else if、else、switch-case分支,try-catch-finally块的前面。 ?在两个类或接口的定义之间。 ?在两个方法/函数/过程之间。 ?方法/函数/过程内部变量定义行和第一个非变量定义行之间。 ?包含(C++)/引入(Java)完毕之后。 【规范10】空格的位置:

verilog的代码规范和coding风格

verilog的代码规范和coding风格 想要成为一名优秀的数字IC设计工程师需要哪些基本的专业知识呢?如下: 1.半导体物理学、半导体器件物理学、基本的固体物理、半导体工艺与制造等物理学知识; 2.电路分析、模拟电子线路、COMS模拟集成电路、专用 集成电路基础等模拟IC知识; 3.信号系统、数字信号处理、信道编码、通信原理等通 信知识; 4.C语言、汇编、C++、脚本(shell、tcl、perl)、Linux(我觉得如果懂kernel那就更好了)、体系结构、组成原理等计算机知识; 5.各种EDA和编程调试工具的使用Modelsim、Debussy、quartus ii、Cadence、DC、vim等等(就数字方向而言 用的最多的5种左右,模拟另当别论);另外虚拟机什么的总得玩得转吧! 6.当然最重要的还是我们亲爱的--verilog,不会 verilog(当然VHDL也是一样的)那你会别的也算不上优秀的 Digital IC Engineer!verilog语法并不复杂,只是初 学者容易犯一些“类C”错误,总会不经意

间将verilog写 成了C语言,或者是没有使用并行思想,或者就是多处 赋值等等问题。如果我们克服了之前的一些小毛病,在 这 些之外,我们想更近一步提升自己的写代码水平、研发 水平,而不是只做一个码农的话那么我们要做的就是: 第一步:提高代码规范性,每个企业、研究所可能都有 自己的一套代码书写规范,但是总的来说都有一些共性,而且往往这些共性的地方还特别多,一个没有代码规范 的程序员不可能写出非常漂亮和优秀的程序,当然有了 规 范的代码后也不一定就能写出漂亮和优秀的程序,这是 两码事。代码规范之后的一个境界我觉得是优良的编程 风 格,编程风格不同于代码规范,编程风格在verilog中 特别指代那些逻辑上的风格,同样的功能,使用不同的 编 程风格,代码综合面积可能是几倍的关系,这一点我深 有体会,另外,人们不经意间的编码习惯可能会导致许 多 冗余代码,在verilog综合之后,这些冗余就会成为实 实在在多出来的不必要的电路,他们或者是寄存器或者

安全代码编写规范

百马出行公司 安全代码编写规范 编号 密级:内 编制 审核 批准 发布日期 实施日期 分发人:分发号:受控状态:?受控□非受控 版本及修订历史 版本修订人审核人批准人生效日期备注 2018-06-29 V1.0 新建刘鹏何清熊小苹

一、编写目的 为加强百马出行公司在软件开发中的安全规范要求,减少应用上线后带来潜在的安全风险,特拟定安全代码编写规范。 二、使用范围 本规范适用于百马出行公司的软件开发类项目。 三、应用安全设计 在总体架构设计阶段,需明确与软件使用部门对于软件安全的相关要求,对于有明确安全要求的(例如授权管理要求、用户认证要求、日志审计要求等),须在设计文档中予以详细说明。对于互联网应用,务必明确网络安全、应用安全、数据安全相关的安全防护手段。 在技术架构上,应采用表现层、服务层、持久层分类的架构,实现对底层业务逻辑进行有效隔离,避免将底层实现细节暴露给最终用户。在部署架构上,应采用应用服务器、数据库服务器的分离部署模式,在应用服务器被攻击时,不会导致核心应用数据的丢失。如软件产品具备有条件时,应优先采用加密数据传输方式(例如https协议)。在外部接口设计方面,应采用最小接口暴露的原则,避免开发不必要的服务方法带来相关安全隐患,同时对于第三方接口,应共同商定第三方接入的身份认证方式和手段。. 四、应用安全编码 4.1. 输入验证 对于用户输入项进行数据验证,除常见的数据格式、数据长度外,还需要对特殊的危险字符进行处理。特殊字符包括< > ' % ( ) & + \

屜?尠屜等。 对于核心业务功能,除在客户端或浏览器进行数据验证外,还必须在服务器端对数据进行合法性检验,规避用户跳过客户端校验,直接将不合规的数据保存到应用中。 对于浏览器重定向地址的数据,需要进行验证核实,确认重定向地址是否在可信,并且需要对换行符(\r或\n)进行移除或者替换。 4.2. 数据输出 对需要输出到用户浏览器的任何由用户创造的内容,应在输出到浏览器之前或持久化存储之前进行转义(至少对<>转义为< >)以防止跨站攻击脚本(XSS)。对于无法规避的HTML片段提交,需对