《团队项目开发编码规范》由会员分享,可在线阅读,更多相关《团队项目开发编码规范(19页珍藏版)》请在金锄头文库上搜索。
1、 团队项团队项团队项团队项 目开目开发发发发“ “编码规编码规编码规编码规 范范“ “之一:概述之一:概述为什么要制定编码规范:第一、能代码更加易于维护,程序并不是一次性的产品,它需要扩展和修改还有维护的。但是进行这次操作的人并一定就是你了,所以你为了你的接班人也要将规范编码进行到底!第二、可以提高代码质量,谁编程都不是一次性完成的,是需要不断的测试与调试,以各种状态来修改自己的代码,而将代码规范化,就能对程序本身有更加清晰的结构思路,从而减少调试而成为快捷高效的代码。第三、也是最为重要的,是将你本身个性化溶于团队化的过程,当你熟练运用编码规范了,就等于在以后的职场的道路上更加宽广。编码规范是
2、一种习惯,一开始习惯不养好,永远写不出工程型代码。团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之二:代之二:代码码码码外外观观观观1、列宽代码列宽控制在110字符左右。2、换行当表达式超出或即将超出规定的列宽,遵循以下规则进行换行1)在逗号后换行;2)在操作符前换行;3)规则1优先于规则2。 3、缩进 缩进应该是每行一个Tab(4个空格),不要在代码中使用Tab字符。团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之二:代之二:代码码码码外外观观观观4 、空行空行是为了将逻辑上相关联的代码分块,以便提高代码可阅读性。在
3、代码中,不能包含多个空行。 在以下情况下使用一个空行1)方法与方法、属性与属性之间。2)方法中变量声明与语句之间。3)方法与方法之间。4)方法中不同的逻辑块之间。5)方法中的返回语句与其他的语句之间。6)属性与方法、属性与字段、方法与字段之间。7)注释与它注释的语句间不空行,但与其他的语句间空一行。团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之二:代之二:代码码码码外外观观观观5、 空格在以下情况中要使用到空格1)关键字和左括符 “(” 应该用空格隔开。如while (true)注意:在方法名和左括符“(”之间不要使用空格,这样有助于辨认代码中的方法调用
4、与关键字。 2)多个参数用逗号隔开,每个逗号后都应加一个空格。3) 除了 .之外,所有的二元操作符都应用空格与它们的操作数隔开。一元操作符、+及-与操作数间不需要空格。如:a += c + d;a = (a + b) / (c * d);4)语句中的表达式之间用空格隔开。如 for (expr1; expr2; expr3)团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之二:代之二:代码码码码外外观观观观6、花括号 - 1)左花括号 “” 放于关键字或方法名的下一行并与之对齐。如if (condition)2)左花括号 “” 要与相应的右花括号 “”对齐。
5、3)通常情况左花括号 “”单独成行,不与任何语句并列一行。4) if、while、do语句后一定要使用,即使只有一条语句。如 if (somevalue = 1)somevalue = 2;团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之二:代之二:代码码码码外外观观观观6、花括号 - 5)右花括号 “” 后建议加一个注释以便于方便的找到与之相应的 。如while (1)if (valid)else / if / while团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之之三:程序注三:程序注释释释释1、注释概述1)在
6、每个例程的开始,提供标准的注释样本以指示例程的用途、假设和限制很有帮助。注释样本应该是解释它为什么存在和可以做什么的简短介绍。2) 避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的。3)避免在块注释的周围加上印刷框。这样看起来可能很漂亮,但是难于维护。4)在部署发布之前,移除所有临时或无关的注释,以避免在日后的维护工作中产生混乱。团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之之三:程序注三:程序注释释释释1、注释概述5)在编写注释时使用完整的句子。注释应该阐明代码,而不应该增加多义性。6)在编写代码时就注释,因为
7、以后很可能没有时间这样做。7)为了防止问题反复出现,对错误修复和解决方法代码总是使用注释,尤其是在团队环境中。8)在所有的代码修改处加上修改标识的注释。9)用空白将注释同注释分隔符分开。在没有颜色提示的情况下查看注释时,这样做会使注释很明显且容易被找到。团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之之三:程序注三:程序注释释释释2、 文件注释在每个文件头必须包含以下注释说明 / / Copyright (c) HP. All rights reserved. / / / yyyy-mm-dd / 文件功能描述 / / 修改人: / 修改时间:yyyy-m
8、m-dd / 修改描述: / 版本:1.0 /团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之之三:程序注三:程序注释释释释3、文档型注释1) 类、接口注释/ / 类功能的说明/ / / / 创建人:Zhangsan/ 创建日期:yyyy-mm-dd/ 修改人:Lisi/ 修改日期:yyyy-mm-dd/ 修改备注:无/ 版本:1.0/ 团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之之三:程序注三:程序注释释释释3、文档型注释2 )方法、事件注释/ / 根据员工编号获得员工信息/ / 员工编号/ 系统异常/ 员工姓名
9、/ / 创建人:Zhangsan/ 创建日期:yyyy-mm-dd/ 修改人:Lisi/ 修改日期:yyyy-mm-dd/ 修改备注:无/ 版本:1.1/ 团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之之三:程序注三:程序注释释释释3、文档型注释2 )方法、事件注释/ / 根据员工编号获得员工信息/ / 员工编号/ 系统异常/ 员工姓名/ / 创建人:Zhangsan/ 创建日期:yyyy-mm-dd/ 修改人:Lisi/ 修改日期:yyyy-mm-dd/ 修改备注:无/ 版本:1.1/ 团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规
10、编码规 范范” ”之四:声明之四:声明1 、每行声明数一行只作一个声明,如 int level; /推荐int size; /推荐int x, y; /不推荐2、初始化建议在变量声明时就对其做初始化。3、位置变量建议置于块的开始处,不要总是在第一次使用它们的地方做声明。 团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之五:命名之五:命名规规规规范范1 、命名概述名称应该说明“什么”而不是“如何”。提供人们可以理解的名称。1)避免容易被主观解释的难懂的名称,如方面名AnalyzeThis(),或者属性名xx8。这样的名称会导致多义性。2)在变量名中使用互补对
11、,如 min/max、begin/end和 open/close。3)布尔变量名应该包含Is,这意味着Yes/No或True/False值,如fileIsFound。4)即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如i或j。团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之五:命名之五:命名规规规规范范1 、命名概述5)用名词或名词词组来给类型命名,在少数情况下也可以用形容词词组来给类型命名6)用动词或动词词组来命名方法7)用名词、名词词组或形容词来命名属性8)要用动词或动词短语来命名事件9)要
12、用名词或名词短语来命名字段2、Pascal大小写将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal大小写。例如: BackColor团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之五:命名之五:命名规规规规范范3 、控件命名1) 命名方法控件名简写+英文描述,英文描述首字母大写2) 主要控件名简写对照表控件名简写控件名简写LabellblTextBoxtxtButtonbtnLinkButtonlnkbtnImageButtonimgbtnDropDownListddlListBoxlstDataGriddg
13、DataListdlCheckBoxchkCheckBoxListchklsRadioButtonrdoRadioButtonListrdoltImageimgPanelpnlCalendercldAdRotatorarTabletblRequiredFieldValidatorrfvCompareValidatorcvRangeValidatorrvRegularExpressionValidatorrevValidatorSummaryvsCrystalReportViewerrptvew团队项团队项团队项团队项 目目开开发发发发“ “编码规编码规编码规编码规 范范” ”之五:命名之五:命
14、名规规规规范范3 、控件命名1) 命名方法控件名简写+英文描述,英文描述首字母大写2) 主要控件名简写对照表控件名简写控件名简写LabellblTextBoxtxtButtonbtnLinkButtonlnkbtnImageButtonimgbtnDropDownListddlListBoxlstDataGriddgDataListdlCheckBoxchkCheckBoxListchklsRadioButtonrdoRadioButtonListrdoltImageimgPanelpnlCalendercldAdRotatorarTabletblRequiredFieldValidatorrfvCompareValidatorcvRangeValidatorrvRegularExpressionValidatorrevValidatorSummaryvsCrystalReportViewerrptvew谢谢