ImageVerifierCode 换一换
格式:DOCX , 页数:89 ,大小:106.58KB ,
资源ID:4974385      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4974385.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件编程规范大全.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件编程规范大全.docx

1、软件编程规范大全软件编程规范大全产品编码规范书一、书写格式代码书写格式整齐统一、层次清晰便于阅读。 缩进TAB键统一为4个空格 赋值语句(=)及逻辑判断符( != & |.etc)左右各空一格 算术运算符左右各空一格 if/while/switch之类的语句右边空一格 每个成员函数内部各个子功能之间用一个空行 公用成员放在程序的最前面,私用成员在后。二、恰当地使用注释注释应简洁、清楚。 不提倡使用/* 和 */来注释, 最好使用/来注释。如果是对某一段程序(算法/结构)的注释, 在程序头直接用/再空一格来进行说明,一行不要超过80字符 注释就占程序的30%,如10行代码中就有不小于3行的注释。

2、三、关于命名1、变量的命名除了循环变量i,j,k.之外,文件、类、(成员)变量、(成员)函数的命名要有意义,大小写相间,一目了然;成员变量、函数(Method)的首字母小写全局变量名称以“g_”开头。2、.类的命名和定义自定义的类(包括Servlet、Bean)的首字母为大写。在程序中引用时,其对变量名的首字母小写Servlet、Bean定义名称时,其末尾应加上ServletBean后缀。以便于区分。如:(GetNewGuest.class)GetNewGuest getNewGuest = new GetNewGuest();ArticleBean articleBean = null;包(

3、package)名均为小写。格式为:com.founder.3、匈牙利命名法命名时可以遵循匈牙利命名法它通过在数据和函数名中加入额外的信息以增进程序员对程序的理解。 如字符串,前面加上str;.String strTemp = new String(“This is ”);如果定义两个实例,可以这样合起来写: MyClass myClassTemp1,myClassTemp2;四、局部变量一定要初始化如果你声明一个变量,不要以为编译器会自动将之赋零值!你随手给它赋个初值并不麻烦,却会使程序更可靠, float fTemp = 0.0;五、.成员函数:成员函数的功能一定要单一;实现其功能时不要过

4、分追求技巧,函数体不能过长六、.数组和缓冲区的使用对数组和缓冲区进行检查,防止越界,尤其是变长的情况下七、.尽量不要用goto语句特别谨慎使用goto语句,最好别用它尽管goto语句在某些特殊的情况下(比如编译器中)还很管用, 但它破坏了整个程序的结构,尤其使用goto嵌套时,更让人一头雾水(很久以前就有人提出取消它)。所以不到万不得已时刻不要用它,可以用break,continue之类的语句替代之。八、数应该是单人口、单出口的所有成员函数尽量是单入口,单出口也许多出口的程序写起来更简洁,意义也更明了。但出了问题调试时会很难定位,所以宁可多用一些BOOL变量,多加些判断,保证单出口:例如:pu

5、blic String getValue(int value) if (value 0)return “xxxxT”;return; “aaa”;可以写成: public String getValue(int value) String reault = null;if (ivalue 0) result = “xxxx”;else result = “aaaa”; return bRet;九、调用函数应合法调用函数时要严格按照接口规范严格按照函数的输入要求给它合适的参数十、.单元测试自己做代码内部(单元)测试时,必须做到语句覆盖,并且特别要注意边界值的覆盖要让每个语句都被执行过,并且边界值

6、(最大和最小)也被测试过。你在程序中写的各种情况都可能在用户那里出现十一、静态检查代码写完后要尽可能多的做一些静态检查(Debug调试可是很费神费时的)。尤其是对算法和数据管理(比如对文件存取)部分十二、文件存放 代码文件的存储位置固定,图片文件存放在统一的目录Picture下,如果各个模块有自己的图片文件,可以创建子目录来完成。 公用函数脚本文件放在统一的目录Scripts下。 每个功能模块创建一个JSP文件存放目录。结束语: 希望大家在遵守规范的前提下,通过自己的努力,开发出功能齐备、风格统一、性能稳定的一流软件产品。VB、VC编码规范1 VB部分1.1 控件前缀控件类型前缀例子3D Pa

7、nelpnlPnlGroupAnimated buttonaniAniMailBoxCheck boxchkChkReadOnlyCombo box, drop-down list boxcboCboEnglishCommand buttoncmdCmdExitCommon dialogdlgDlgFileOpenCommunicationscomComFaxControlctrCtrCurrentData controldatDatBiblioData-bound combo boxdbcboDbcboLanguageData-bound griddbgrdDbgrdQueryResultD

8、ata-bound list boxdblstDblstJobTypeDirectory list boxdirDirSourceDrive list boxdrvDrvTargetFile list boxfilFilSourceFormfrmFrmEntryForm Object VariablefrmOFrmOEntryFramefraFraLanguageGaugegauGauStatusGraphgraGraRevenueGridgrdGrdPricesHorizontal scroll barhsbHsbVolumeImageimgImgIconKey statuskeyKeyCa

9、psLabellblLblHelpMessageLinelinLinVerticalList boxlstLstPolicyCodesMAPI messagempmmpmSentMessageMAPI sessionmpsmpsSessionMCImcimciVideoMDI child formmdimdiNoteMenumnumnuFileOpenMS Flex gridmsgmsgClientsMS TabmstmstFirstOLEoleoleWorksheetOutline outoutOrgChartPen BeditbedbedFirstNamePen HEdithedhedSi

10、gnaturePen inkinkinkMapPicturepicpicVGAPicture clipclpclpToolbarReportrptrptQtr1EarningsShapeshpshpCircleSpinspnspnPagesText boxtxttxtLastNameTimertmrtmrAlarmUpDownupdupdDirectionVertical scroll barvsbvsbRateSlidersldsldScaleImageListilsilsAllIconsTreeViewtretreOrganizationToolbartlbtlbActionsTabStr

11、iptabtabOptionsStatusBarstastaDateTimeListView lvwlvwHeadingsProgressBarprgprgLoadFileRichTextBoxrtfrtfReport1.2 数据访问对象 (DAO) 前缀数据库对象前缀例子Container conconReportsDatabasedb dbAccountsDBEnginedbedbeJetDocumentdocdocSalesReportFieldfldfldAddressGroupgrpgrpFinanceIndexidxidxAgeParameter prmprmJobCodeQuer

12、yDefqryqrySalesByRegionRecordsetrecrecForecastRelationrelrelEmployeeDeptTableDef tbdtbdCustomersUserusrusrNewWorkspacewspwspMine1.3 菜单前缀菜单控件除了最前面 mnu 标记以外,菜单控件的前缀应该被扩展:对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。下表列出了一些例子。菜单标题序列菜单处理器名称FilemnuFileFile OpenmnuFileOpenFile SendmnuFileSendFile Send EmailmnuFileS

13、endEmailFile Send FaxmnuFileSendFax 当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在 Visual Basic 的“属性”窗口中。而且,菜单控件的名字清楚地表示出它们所属的菜单项。1.4 其它控件前缀对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。只有当需要澄清时,才使用多于三个字符的前缀。例如,对于派生的或修改的控件象上述那样扩展其前缀,使得在真正使用了哪一个控件的问题上避免混淆。对于第三方控件,应该把制造商的小写缩写名附加到前缀中。例如,从 Visual Basic Professional 3D

14、 框架中创建的一个控件实例可以用 fra3d 这样的前缀,以避免混淆所使用的控件。1.5 变量、常量范围前缀范围前缀例子全局ggstrUserName模块级mmblnCalcInProgress本地到过程dblVelocity1.6 变量、常量类型前缀数据类型前缀例子BooleanblnblnFoundBytebytbytRasterDataCollectioncolcolWidgetsCurrencycurcurRevenueDateTimedtmdtmStartDoubledbl dblToleranceErrorerrerrOrderNumIntegerintintQuantityLon

15、glnglngDistanceObjectobjobjCurrentSinglesngsngAverageStringstrstrFNameUser define typeudtudtEmployeeVariantVntvntCheckSum1.7 描述变量和过程名变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如 InitNameArray 或 CloseDialog。对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过 32 个字符的变量名在 VGA 显示器上读起来就困难了。当使用缩略语时,要确保它们在整个应

16、用程序中的一致性。在一个工程中,如果一会儿使用 Cnt, 一会儿使用 Count,将导致不必要的混淆。1.8 用户定义的类型在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以 u 开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli 可以被用来作为一个用户定义的客户类型变量的前缀。1.9 代码注释约定1.9.1代码注释规范模块节标题注释如下:Module Name: (模块名称)Main Func: (模块说明)Author: (作者)Last Modify: (最后修改时间)Include: (引用外部接口)I

17、nterface: (模块提供接口) 举例:frmAccountCard.frm 的程序头注释如下Module Name: frmAccountCardMain Func: 科目卡片窗体Author: 张山Last Modify: 2000-06-24Include:Interface:程序接口注释:Function Name: (函数名)Main Func: (函数说明)Author: (作者)Last Modify: (最后修改日期)Param: (用参数)Returns: (返回值类型)举例:Function Name: AddAccountMain Func: 直接增加会计科目Auth

18、or: 张山Last Modify: 2000-06-23Param: strAccount 科目字符串Param: strPath 科目币种数据所在路径Param: blnIsCopy 由科目复制来标志Returns: Integer1.10 窗体隐含全局变量避免使用窗体隐含全局变量,声明自己的窗体变量(例如,Dim dlgAbout As New frmAboutBox)。1.11 命名属性、方法和事件尽量用完整的词,不用缩写。缩写可能有许多形式,并因此可能含混。如果完整的单词太长的话,可以用完整的第一个音节。对于标识符,可以用大小写混合的写法,每个单词或者音节的首字符大写,例如Short

19、cutMenus 或者 AsyncReadComplete。对于集合类名,可以用复数写法。如果集合中有以 s 结尾的对象,可将单词Collection附加在其后面。 对于方法名,可以比较一致地用动词/对象或者对象/动词的顺序。也就是说,使用 InsertWidget、InsertSprocket,等等,或者总是将对象放在前面,就象例子 WidgetInsert 和 SprocketInsert 那样。1.12 常数使用在VB中已经定义了常数的情况下,必须采用常数,避免采用数值的使用对程序可读性产生不良影响。可以明显看出以下代码的优劣:frmWizard.Show VBModal frm1.Sh

20、ow 1MsgBox Infomation,Title,VBInformation MsgBox ,11.13 MsgBox书写要求 消息框要求显示的信息分为四类:信息,问题,警告,错误。所有显示的消息框都必须包含上述四类之一的图标;消息框显示的标题代表所运行的程序模块标题,必须用汉字标题,内容为详细的具体信息;如果是对数据范围非法的警告,必须提示出合法的边界值。 例如用户输入登录时间时提示“登录时间非法”,用户尝试两三次其他时间后仍然无法正确登录,必然对使用软件失去信心,如果直接提示出允许的登录时间范围,用户马上就可以录入正确的数据。 对于数值的确认,需要提示出需要的数据值。推荐的例子: M

21、sgBox “请确认是否删除本分录(109)?”, “凭证处理”, VBQUESTION + VBYESNOCANCEL MsgBox “张出纳,您没有帐册查询权限!”, “帐册查询”, VBEXCLAMATION MsgBox 登录时间不能超过帐套结束时间 1999-12-31 !, App.Title, VBEXCLAMATION1.14 SQL语句书写要求 SQL语句要求将SQL保留字全部采用大写,其余部分如字段名、表名等采用其自然定义的大小写格式,推荐采用大写开头字符的方式;语句中的分隔只需要一个空格。 对于条件嵌套复杂的语句,需要在逻辑表达式中加入适当的括号对体现层次,增强语句可读性

22、。 例如: SELECT * FROM Employee WHERE (lngBirthYear 1980 AND strName LIKE “A*”) ORDER BY Department 为了提高程序可读性,要求必须注释说明每个SQL 语句的功能。1.15 源程序编排 源程序编排必须按照结构化程序进行缩格。缩格要求用一个TAB体现一个结构层次,每个TAB设置为占用4个空格。每条语句的右边界尽量保持在80个字符范围内,以在编辑器中浏览时不需要横向滚动为宜。较长的语句要求进行分割。1.16 源文件命名 原则上源文件与对象命名相同,由于文件具有后缀标识文件类别,因此取消对象类别前缀,仅取对象名

23、作为文件名。例如: frmMain Main.frm clsAccountSetup AccountSetup.cls modPublic Public.bas1.17 资源IDCaption ResourceID、ToolTipText ResourceID、HelpContextID、WhatsThisHelpID、Wizard String ID、Wizard Picture ID、Wizard Sound ID、Wizard AVI ID等一致,只是偏移量不同,其存储位置优先顺序:HelpContextID、WhatsThisHelpID、Tag。2 VC部分2.1 C+类的定义形式约

24、定表类名称:数据成员:构造/析构函数:成员函数:Class myClass public | private | protected:myDataMembers;public | private | protected:myClass();myClass();public | private | protected:myMemberFunction();2.2 头文件的书写顺序约定表程序注释及变动说明文件头:包含的头文件: 符号常数和全局常数: 宏定义:类型定义:结构,联合和类定义: 外部变量的声明:内联函数的定义:/#includeconstmacrotypedefstruct | unio

25、n | class2.3 源文件的书写顺序约定表文件头:包含的头文件:私有符号常数和全局常数: 私有宏定义:私有类型定义:私有结构,联合和类定义: 外部/全局变量初始化:函数/成员函数定义:“程序头书写标准”#includeconstmacrotypedefstruct | union | class2.4 标识符命名约定表标识符种类书写规范示 例函数/过程名一般标识符CheckButtonStates宏标识符大写标识符SALES_TAX类标识符C+一般标识符CEditBox结构标识符S+一般标识符SMyStructure联合标识符U+一般标识符UMyUnion整数标识符i/n/int+一般标

26、识符INumber, intCurrent字符串标识符s/str/lpstr+一般标识符sComputerName逻辑标识符b+一般标识符bisDetailed对象标识符特征小写字母+一般标识符FrmStatus, tvwTree一般标识符:字母开头,各单词连写,词首字母大写大写标识符:字母开头,所有字母大写,单词间用下划线相连2.5 函数头说明规范函数名称:函数功能:调用格式:参数说明:对环境引用:对环境影响:内部变量说明:调用函数列表:被调函数列表:函数的中文名称简述函数的功能必要时可举例说明列出主要的、不易理解的参数含义和取值范围(可选的)(可选的)(可选的)(可选的)(可选的)2.6 修改申明 本编码规范目前是针对开发根据VB和VC来编制的,随着需要的开发工具的变化,本规范的内容也需要做相应更新。 若发现本编码规范有遗漏或不足或者错误之处,允许以各种形式反映到品质管理部,并由其修改模板。3 窗体和控件的取名:详见命名标准严禁和受到限制的关键字同名4 显式声明变量 在类模块、窗体模块或标准模块的声明段中加入这个语句: Option Explicit5 为便于阅读程序,禁止使用VB的“字符串和数字的自动转化功能”VB中规定:如果字符串表示数值,则可将字符串赋予数值

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1