当前位置:文档之家› 开发规范与要求

开发规范与要求

开发规范与要求1.目的1)养成良好的编程习惯。

2)写出清楚、易懂、易维护的程序代码。

3)提高软件质量与生产率。

4)减少软件编码中的不必要的错误。

5)提供完整的软件产品编码和文档。

2.要求1)必须严格执行本规范以确保源代码的可读性及可维护性。

2)所有的程序文件都必须有注释文字,并严格按照本规范中的“注释规范”书写。

3)编码必须使用标准英文单词,不允许使用中文拼音。

4)如果有名词,必须使用单数形式。

5)使用大小写混合格式,将连接的几个单词首字母大写,除常数变量和模块级变量(m_*)外避免使用下划线。

6)命名必须在3至20个字母以内。

7)尽量避免使用缩写,如果必须使用,请参考本规范附录的缩写范例。

3.开发工作要求1)每天下班前必须签入所有代码,签入的代码必须是可编译通过的。

2)每天早上必须获取全部最新VSS。

3)为项目添加后文件后必须立即签入项目,再把新建的文件签出进行编码。

添加注释,注明创建时间、作者、功能,类的注释如下:/// <summary>/// 时间:2010-10-23/// 作者:XXX/// 功能:用于枚举项的属性说明/// 更新记录:/// 1、2011-10-23,XXX,增加Text属性/// </summary>public class TextAttribute:Attribute4)界面风格必须保持统一,如页面、css、按钮风格,位置等等5)文件目录,凡在OA基础上开发的项目,要用独立的目录存放,如HR在OA基础上开发,建立HR独立的目录HRWeb,并将images.css,js等目录独立于OA相关目录存放在该目录下。

6)各模块下的模块目录,详细拆分到各子模块功能目录。

7)文件命名采用主谓结构,首字母大写,文件和文件夹的名称应该精确地说明它们的用途,类名和文件名尽量保持完全相同。

8)命名空间:命名空间参考具体开发产品的命名规则,一般由以下几部分构成:Part1:LinkPower (固定前缀)Part2:产品缩写,如:PduOA5/PduOA6/PduEip 等Part3:功能类型,分为模块功能、公用接口、公用页面、用户控件等Part4:功能名称简写。

例如:LinkPower.PduOA6.Mod.WorkFlow9)常量的命名(Constant names),常量用c_*开头,如:c_intNumDaysInWeek等10)字段名标签放到html的label中,不能用td直接控制,页面中不能直接写css,js统一放到css,js目录下的文件中,textbox,button,table等控件样式用统一的css控制,无特殊情况外不能直接写到页面中。

11)变量与控件命名方法:4.书写排版规范1)空格缩进不要在源代码中使用TAB字符,这是因为TAB字符会随着不同用户的不同设置和不同的资源管理工具(打印、文档、版本控制等)而代表不同的宽度。

在函数体的开始、结构的定义、枚举的定义以及循环、判断等语句中的代码都要采用缩行。

更改的默认设置,使所有语言设置的缩进均为4个空格(如下图)。

在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图,可以使程序更清晰。

2)Html标记和属性为了使页面文档与XHTML 兼容,所有HTML标记和属性全部小写,并且属性要加双引号(””);(遵守级别3)如<table width="300" border="1">请更改的默认设置(工具-选项-文本编辑器-HTML/XML,选取属性值引号复选框及格式中的大小写定义)。

Dreamwear也需要根据其做工具配置修改。

(如下图)3)空行使用空白为源代码提供结构线索。

这样做会创建代码“段”,有助于读者理解软件的逻辑分段。

⏹在一个函数体内,变量定义与函数语句之间要加空行。

(遵守级别2)⏹逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

(遵守级别2)示例:private bool Validate(DataRow customerRow){bool isValid;customerRow.ClearErrors();isValid = IsValidEmail(customerRow);isValid &= IsValidField(customerRow, CustomerData.PASSWORD_FIELD, 15);isValid &= IsValidField(customerRow, _FIELD, 40);isValid &= IsValidField(customerRow, CustomerData.ADDRESS_FIELD, 255);isValid &= IsValidField(customerRow, CustomerData.COUNTRY_FIELD, 40);isValid &= IsValidField(customerRow, CustomerData.PHONE_FIELD, 30);if ( !isValid ){customerRow.RowError = CustomerData.INVALID_FIELDS;}return isValid;}4)对齐程序的分界符{’和‘}’永远都单独成行并且位于同一列,同时与引用它们的语句左对齐。

if(x==0){Response.Write("用户编号必须输入!");}(遵守级别2)5)长行拆分【规则2-4-1】代码行最大长度宜控制在120个字符以内,为了防止在阅读代码时不得不滚动源代码编辑器(1024*7684分辨率下,编辑器右侧展开默认大小的解决方案管理器情况下),较长的语句、表达式等要分成多行书写。

(遵守级别2)6)注释:只在需要的地方注释。

可读性强的代码需要很少的注释。

如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释(遵守级别3)请使用C# 的XML 文档功能(键入三个反斜线“///”, 会自动生成注释框架。

)来添加类、方法等注释(遵守级别3)项目说明<summary> 简介<param> 参数说明<returns> 返回值<remarks> 注释⏹修改代码时,总是使代码周围的注释保持最新。

⏹避免在代码行的末尾添加注释。

在批注变量声明时除外,但是需要将所有行尾注释在公共制表位处对齐。

⏹使用空白将注释同代码分开。

⏹在部署之前,移除所有临时或无关的注释。

⏹在编写注释时使用完整的句子。

注释应该阐明代码,而不应该增加多义性。

⏹避免多余的或不适当的注释,如幽默的不主要的备注。

⏹使用注释来解释代码的意图。

它们不应作为代码的联机翻译。

⏹注释代码中不十分明显的任何内容。

⏹为了防止问题反复出现,对错误修复和解决方法代码总是使用注释。

⏹对由循环和逻辑分支组成的代码使用注释。

7)其他⏹将大的复杂代码节分为较小的、易于理解的模块。

⏹避免使用大文件。

如果一个文件里的代码超过500行,请虑将代码分开到不同类中。

⏹避免写太长的方法。

一个典型的方法代码在1~50行之间。

如果一个方法发代码超过50行,应该考虑将其分解为不同的方法。

⏹当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。

⏹只要合适,每一行上放置的语句避免超过一条。

例外是C# 中的循环,如for (i = 0; i < 100; i++)。

⏹尽量减少使用缩写,而是使用以一致方式创建的缩写。

缩写应该只有一个意思;同样,每个缩写词也应该只有一个缩写。

例如,如果用min 作为minimum 的缩写,那么在所有地方都应这样做;不要将min 又用作minute 的缩写。

⏹在命名函数时包括返回值的说明,如GetCurrentWindowName()。

⏹与过程名一样,文件和文件夹的名称也应该精确地说明它们的用途。

⏹避免对不同的元素重用名称,如名为ProcessSales() 的例程和名为iProcessSales 的变量。

⏹在命名元素时避免同音异义词(如write 和right),以防在检查代码时发生混淆。

⏹在命名元素时,避免使用普遍拼错的词。

另外,应清楚区域拼写之间存在的差异,如color/colour 和check/cheque。

⏹避免用印刷标记来标识数据类型,如用$ 代表字符串或用% 代表整数。

5.测试工作关注要点1)项目测试开始首先用空库测试,清空数据库。

2)测试要关注页面排版是否整齐,样式是否统一,按钮摆放是否统一,间距是否一样,分页样式是否统一。

3)页面的标题与功能是否一致,包括页面的提示是否与功能一样。

4)操作是否便捷,在不同的分辨率下是否有滚动条,控件焦点是否支持tab键。

5)必填字段,字段长度(以数据库为准,截取方式),数据类型是否验证,输入超长是否有提示(弹出提示),列表字段显示内容,超过10字鼠标放上去提示详细内容(依据实际情况而定)。

6)各页面功能是否完整,齐备,页面中的图片是否显示。

7)页面中的js是否有脚本错误,css是否统一,如列表样式。

8)页面设计是否合理、便捷,如增加后页面刷新等等问题。

9)业务功能是否实现,整个业务逻辑是否正确完整,用例是否完整。

10)模拟正式数据,站到用户角度去测试。

相关主题