程序的层次

1引言 1.1编写目的 在软件开发过程中,编码的工作量是相当大的,同一项目参与编程的人可能有各自编程的经验和习惯,不同风格的程序代码使维护工作变得复杂和困难。为了提高代码的可读性、系统的稳定性及降低维护和升级的成本,特编写本规范以统一各开发人员的编程工作。 1.2 适用对象本规范适用于所有开发人员,包括应用程序、网页及数据库开发人员,及有关的程序测试人员。 1.3 引用标准 GB/T 11457 软件工程术语 GB 8566 计算机软件开发规范 GB 8567 计算机软件产品开发文件编制指南 2.编写要求 2.1一般代码规则 可读性原则,这是评价程序质量的首选指标,宁可不要一些技巧也要保证程序的易读特性,不要因过分追求技巧而牺牲程序的可读性。 功能独立性原则。每一程序块只完成一个独立的功能,反过来,每一独立的功能只在一程序块内完成,尽量低耦合、高内聚。 提示说明应当简短且避免产生歧义。 提示或警告信息应当具有向导性,能准确告诉用户错误原因及恢复方法。提示和警告对话框应当使用标准规范。 快捷键的定义必须符合用户操作习惯。 程序需要长时间处理或等待时,应当显示进度条并提示用户等待。 一些敏感操作,如删除等操作在执行前必须提示用户确认。 2.2变量、函数、过程、控件等命名规则 2.2.1 变量命名变量命名采用[作用范围][数据类型][自定义名称]规则定义,并遵循匈牙利命名法。要求看到变量名就能直观的看出其范围和数据类型。 匈牙利命名规则: a Array 数组 b BOOL (int) 布尔(整数) by Unsigned Char (Byte) 无符号字符(字节) c Char 字符(字节) cb Count of bytes 字节数 cr Color reference value 颜色(参考)值 cx Count of x (Short) x的集合(短整数) dw DWORD (unsigned long) 双字(无符号长整数) f Flags (usually multiple bit values) 标志(一般是有多位的数值) fn Function 函数 g_ global 全局的 h Handle 句柄 i Integer 整数 l Long 长整数 lp Long pointer 长指针 m_ Data member of a class 一个类的数据成员 n Short int 短整数 p Pointer 指针 s String 字符串 sz Zero terminated String 以0结尾的字符串 tm Text metric 文本规则 u Unsigned int 无符号整数 ul Unsigned long (ULONG) 无符号长整数 w WORD (unsigned short) 无符号短整数 x,y x, y coordinates (short) 坐标值/短整数 v void 空 作用范围:范围 前缀 例子全局作用域 g_ g_Servers 成员变量 m_ m_pDoc 局部作用域 无 strName  数据类型 VC常用前缀列表前缀 类型 描述 例子 ch char 8位字符 chGrade ch TCHAR 16位UNICODE类型字符 chName b BOOL 布尔变量 bEnabled n int 整型(其大小由操作系统决定) nLength n UINT 无符号整型(其大小由操作系统决定) nLength w WORD 16位无符号整型 wPos l LONG 32位有符号整型 lOffset dw DWORD 32位无符号整型 dwRange p * 内存模块指针,指针变量 pDoc l p FAR* 长指针 lpDoc lpsz LPSTR 32位字符串指针 lpszName lpsz LPCSTR 32位常量字符串指针 lpszName lpsz LPCTSTR 32位UNICODE类型常量指针 lpszName h handle Windows对象句柄 hWnd lpfn (*fn)() 回调函数指针 Callback Far pointer to CALLBACK function lpfnAbort 2.2.2 函数、过程命名函数或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如 InitNameArray 或 CloseDialog。对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过 32 个字符的变量名在 VGA 显示器上读起来就困难了。当使用缩略语时,要确保它们在整个应用程序中的一致性。在一个工程中,如果一会儿使用 Cnt, 一会儿使用 Count,将导致不必要的混淆。对于自行编写的函数,若是系统关键函数,则须在函数实现部分的上方标明该函数的信息,格式如下: //====================================================== // 函 数 名:InsureHasOutputInfo // 功能描述:确保有适当的输出信息 // 输入参数:nProductID:相应的产品ID // 输出参数:void // 创建日期:00-2-21 // 修改日期:00-2-21 // 作 者:*** // 附加说明: //====================================================== 2.2.3 用户定义类型在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以 "u" 开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli 可以被用来作为一个用户定义的客户类型变量的前缀。 注:对于非通用的变量,请在定义时加以注释说明,变量定义尽可能放在最开始处。 2.2.4 控件命名应该用一致的前缀来命名对象,使人们容易识别对象的类型。 VC常用宏定义命名列表前缀 符号类型 符号例子 范围 IDR_ 标识多个资源共享的类型 IDR_MAINFRAME 1~0x6FFF IDD_ 对话框资源(Dialog) IDD_SPELL_CHECK 1~ 0x6FFF HIDD_ 基于对话框的上下文帮助 HIDD_SPELL_CHECK 0x20001~0x26FF IDB_ 位图资源(Bitmap) IDB_COMPANY_LOGO 1~0x6FFF IDC_ 光标资源(Cursor) IDC_PENCIL 1~0x6FFF IDI_ 图标资源(Icon) IDI_NOTEPAD 1~0x6FFF ID_、IDM_ 工具栏或菜单栏的命令项 ID_TOOLS_SPELLING 0x8000~0xDFFF HID_ 命令上下文帮助 HID_TOOLS_SPELLING 0x18000~0x1DFFF IDP_ 消息框提示文字资源 IDP_INVALID_PARTNO 8~0xDFFF HIDP_ 消息框上下文帮助 HIDP_INVALID_PARTNO 0x30008~0x3DFFF IDS_ 字符串资源(String) IDS_COPYRIGHT 1~0x7FFF IDC_ 对话框内的控制资源 IDC_RECALC 8~0xDFFF 2.3源代码规则 2.3.1风格约定:采用缩进的格式保存程序的层次结构。要求能直观的看出循环、判断等层次结构。 每一个嵌套的函数块,使用一个TAB缩进(可以设定为4个空格),大括号必须放在条件语句的下一行,单独成一行,便于匹对反大括号应该在单独的一行,在大多数情况下反扩号应有注释内容。举例如下: if(condition1) { while(condition2) { ….. ….. }//end while(condition2) }//end if (condition1) 或者 if(condition1){ while(condition2){ …. …. }//end while(condition2) }//end if(conditionl) 2.3.2在操作符的前后必须使用空格。 2.3.3在分隔数组下标和函数参数的逗号后面必须添上空格。 2.3.4严禁使用go to 语句。 2.3.5对数据库操作只能使用标准SQL语句,关键字必须使用大写(如SELECT、WHERE等),数据元素(表、字段、视图等)必须按照数据字典书写。 2.3.6程序代码中要有足够的容错处理功能。对可能发生的异常统一采用C++抛出格式: try { //可能引发异常的代码 throw t; //手工抛出异常 } catch(type_1 e) // type_1为类型定义符、如int、CException、_com_error { // type_1类型异常处理 } catch(type_2 e) { // type_2类型异常处理 } 2.3.7程序代码结构必须层次清楚,适当使用空行分段。 2.3.8工程的版本控制要严格,版本格式为.me.ae.yy.mmdd,其中:[me]表示主版本号;[ae]表示辅版本号;[yy.mmdd]表示版本建立日期。高版本尽量兼容低版本的用法、数据或协议。 2.4文件的命名规则 2.4.1根据系统设计所规定的结构,建立相应的文件夹,根据需要建立子文件夹。 2.4.2文件夹和文件的名称应尽量能够表达其意义,尽量使用英文命名,绝对不能汉字。 2.4.3文件名称一般采用“xxx_yyy.ext”格式,xxx(3-4个字母)表示分类,yyy(字母数自定)表示操作 (如 “ /example/exp_edit.htm ”) /

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值