规则惯例和约定.docx
《规则惯例和约定.docx》由会员分享,可在线阅读,更多相关《规则惯例和约定.docx(12页珍藏版)》请在冰点文库上搜索。
规则惯例和约定
规则、惯例和约定
编号:
GT/KF-038-2006编写说明:
此部分分为编程语言规范和界面设计规范两个部分,其中,编程语言编程规范,在每个项目中,按照此模板定义,由项目负责人或者项目负责人制定人员进行编制;界面设计规范如无特殊要求,引用该规范即可;
编程语言编程规范
1使用命名约定
命名约定可以有很多种,重要的一点是要始终如一的运用它,使别人看你的程序时易于理解、不言自明。
至少别人能区分出你使用的变量类型、变量的作用范围、常量、以及过程。
1.1命名变量和常量
通常的命名约定使用小写字母的前缀和后缀来指明变量的类型和作用范围。
变量本身是一个有意义的名字,可以简单描述出该变量的含义以及它的作用,可以多个单词组合起来,每个单词的首字母大写、单词之间不使用下划线。
常量的名字一般采用大写的形式并使用下划线分隔各单词。
变量名中也包含两个或三个字符的前缀,用以指明变量的数据类型。
例如,
DimstrRecipientNameasString
DimobjXLAppasObject
全局和模块级变量再使用一个前缀字符指明变量的作用范围。
变量的作用范围定了变量的生命周期以及变量的可见性。
可以使用“g”作为前缀声明一个全局变量。
过多的使用全局变量会使你的代码难以理解和难以维护。
模块级变量使用小写字母“m”作为前缀,在类模块中可以用“P_”作为变量名前缀。
静态过程级变量使用小写字母“s”作为前缀。
下面是使用前面介绍的通用命名原则命名的一些变量示例变量数据类型作用范围strCompanyNameString过程
rstCurrentOrdersObject过程
mcolCurrentUsersObject模块
gstrLogonIDString全局
1.2命名对象和控件对象和控件
一般采用前缀+名称的命名方式。
前缀指明了项目,大小写混用的名称指明项目的用途。
例如,lblCompanyName,cmdClose,txtUserName,frmMain等。
1.3命名函数和子过程
当命名过程时,应使用NounVerb(名词动词)或VerbNoun(动词名词)的格式来为过程起名,以便清晰地说明过程的作用。
没有必要使用前缀或后缀来指示返回值。
例如,UserAdd().FindString()
当创建带有参数的过程时,参数名称也采用变量命名约定。
例如,FunctionRemoveString(ByValstrSourceAsString,strStartAsString,OptionalintEndCountAsInteger=0,OptionalblnReturnChunkAsBoolean=False)AsString
当你调用接受可选参数的内置方法、定制方法或过程时,总是使用命名参数来代替位置参数。
命名参数使程序代码易于理解、调试、以及维护。
命名参数是参数名后面跟有冒号和等号(:
=)、再跟参数值的参数。
下面示例的第一行展示了如何调用使用占位参数的定制过程:
第二行展示了如何调用使用命名参数的定制过程。
strModifiedString=RemoveString(strOriginalString,strStartHere,strEndHere,,True)
strModifiedString=RemoveString(strSource:
=strOriginalString,strStart:
=strStartHere,strEnd:
strEndHere,blnReturnChunk:
=True)
2结构化和格式化代码
如何运用结构化编码约定直接影响代码的理解性和易维护性。
在你的代码中运用结构化方法的一般原则对应用程序级、模块级以及过程级都会有一定的效果。
格式化方法的使用(折行、空白、以及缩进)有助于显露每个过程的逻辑和结构。
在应用程序级,你的代码包含在一个或多个标准模块或类模块中,通过逻辑方式组织代码,可以实现这个层次的代码结构化。
在模块内部各个过程之间应该存在某种关系。
例如,可以把所有访问数据的代码保存在一个模块中。
在过程级,运用结构化编码方法意味着庞大的过程拆分成较小的过程,并使用折行、空白、以及缩进组织代码的逻辑结构。
格式化代码的基本技巧包括运用折行、空白、以及缩进。
除了让代码易于阅读外,这些格式化技巧通过展示过程的逻辑结构和流程以及通过把代码分组为相关的节来使代码文档化。
3有效地运用注释
注释应该提供代码本身没有提供的信息。
良好的注释是超越代码的更高层次的抽象。
简单复述一眼就能从代码上看出的信息是毫无用处的注释,应尽力避免。
3.1序言性注释:
指每个程序或模块在开头的一段说明,对于理解程序本身
具有指导作用。
规范如下:
a.程序的标识、名称及版本号;
b.程序的功能概述;
c.接口及界面描述,包括调用关系、调用形式、参数含义及相互调用的程序名;d.输入/输出数据说明,重要变量和参数的说明;
e.开发历史,包括原作者、审查者、修改者、编程日期、审查日期、修改日期等;f.与运行环境有关的信息,包括使用的机型、对硬件资源(如内存、外存、外设)的要求、使用的操作系统、程序设计语言的种类和版本号、编译命令的格式、程序的存储和运行方式等;
3.2解释性注释:
一般这类注释嵌在程序之中,与所要注释的部分匹配。
对于功能性注释,如不直观的算法程序、重要的循环或条件语句等,注释应放在相应的语句之前;对于状态性注释,一般是对数据(变量)进行说明,应放在相应的语句之后。
4编写可重用的代码
如果有两种编写代码的方法来完成某件任务,其中之一能构成可重用过程,那么创建可重用代码,真正的实质在于如何理解问题。
如果理解了如何创建和使用类模块,那么很大程度上已经知道了如何编写可重用代码。
编写可重用代码时首先考虑的事情就是使用一致的命名约定编写代码、进行适宜的格式化、并包括有效的注释。
界面设计规范
1:
易用性:
按钮名称应该易懂,用词准确,屏弃模棱两可的字眼,要与同一界面上的其他按钮易于区分,能望文知意最好。
理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作。
易用性细则:
1):
完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式。
2):
完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。
3):
按功能将界面划分局域块,用Frame框括起来,并要有功能说明或标题。
4):
界面要支持键盘自动浏览按钮功能,即按Tab键的自动切换功能。
5):
界面上首先应输入的和重要信息的控件在Tab顺序中应当靠前,位置也应放在窗口上较醒目的位置。
6):
同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。
7):
分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab
8):
默认按钮要支持Enter操作,即按Enter后自动执行默认按钮对应操作。
9):
可写控件检测到非法输入后应给出说明并能自动获得焦点。
10):
Tab键的顺序与控件排列顺序要一至,目前流行总体从上到下,同时行间从左到右的方式。
11):
复选框和选项框按选择几率的高底而先后排列。
12):
复选框和选项框要有默认选项,并支持Tab选择。
13):
选项数相同时多用选项框而不用下拉列表框。
14):
界面空间较小时使用下拉框而不用选项框。
15):
选项数较少时使用选项框,相反使用下拉列表框。
16):
专业性强的软件要使用相关的专业术语,通用性界面则提倡使用通用性词眼。
2:
规范性:
通常界面设计都按Windows界面的规范来设计,即包含“菜单条、工具栏、工具箱、状态栏、滚动条、右键快捷菜单”的标准格式,可以说:
界面遵循规范化的程度越高,则易用性相应的就越好。
小型软件一般不提供工具箱。
规范性细则:
1):
常用菜单要有命令快捷方式。
2):
完成相同或相近功能的菜单用横线隔开放在同一位置。
3):
菜单前的图标能直观的代表要完成的操作。
4):
菜单深度一般要求最多控制在三层以内。
5):
工具栏要求可以根据用户的要求自己选择定制。
6):
相同或相近功能的工具栏放在一起。
7):
工具栏中的每一个按钮要有及时提示信息。
8):
一条工具栏的长度最长不能超出屏幕宽度。
9):
工具栏的图标能直观的代表要完成的操作。
10):
系统常用的工具栏设置默认放置位置。
11):
工具栏太多时可以考虑使用工具箱。
12):
工具箱要具有可增减性,由用户自己根据需求定制。
13):
工具箱的默认总宽度不要超过屏幕宽度的1/5。
14):
状态条要能显示用户切实需要的信息,常用的有:
目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。
15):
滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。
16):
状态条的高度以放置五号字为宜,滚动条的宽度比状态条的略窄。
17):
菜单和工具条要有清楚的界限,菜单要求凸出显示,这样在移走工具条时仍有立体感。
18):
菜单和状态条中通常使用5号字体。
工具条一般比菜单要宽,但不要宽的太多,否则看起来很不协调。
19):
右键快捷菜单采用与菜单相同的准则。
3:
帮助设施:
系统应该提供详尽而可靠的帮助文档,在用户使用产生迷惑时可以自己寻求解决方法。
帮助设施细则:
1):
帮助文档中的性能介绍与说明要与系统性能配套一致。
助文档都是系统2):
打包新系统时,对作了修改的地方在帮助文档中要做相应的修改。
3):
操作时要提供及时调用系统帮助的功能。
常用F1。
4):
在界面上调用帮助时应该能够及时定位到与该操作相对的帮助位置。
也就是说帮助要有即时针对性。
5):
最好提供目前流行的联机帮助格式或HTML帮助格式。
6):
用户可以用关键词在帮助索引中搜索所要的帮助,当然也应该提供帮助主题词。
7):
如果没有提供书面的帮助文档的话,最好有打印帮助的功能。
8):
在帮助中应该提供我们的技术支持方式,一旦用户难以自己解决可以方便的寻求新的帮助方式。
4:
合理性:
屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。
合理性细则:
1):
父窗体或主窗体的中心位置应该在对角线焦点附近。
2):
子窗体位置应该在主窗体的左上角或正中。
3):
多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。
4):
重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置。
5):
错误使用容易引起界面退出或关闭的按钮不应该放在易点位置。
横排开头或最后与竖排最后为易点位置。
6):
与正在进行的操作无关的按钮应该加以屏蔽(Windows中用灰色显示,没法使用该按钮)。
7):
对可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会。
8):
非法的输入或操作应有足够的提示说明。
9):
对运行过程中出现问题而引起错误的地方要有提示,让用户明白错误出处,避免形成无限期的等待。
10):
提示、警告、或错误说明应该清楚、明了、恰当。
5:
美观与协调性:
界面应该大小适合美学观点,感觉协调舒适,能在有效的范围内吸引用户的注意力。
美观与协调性细则:
1):
长宽接近黄金点比例,切忌长宽比例失调、或宽度超过长度。
2):
布局要合理,不宜过于密集,也不能过于空旷,合理的利用空间。
3):
按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置。
4):
按钮的大小要与界面的大小和空间要协调。
5):
避免空旷的界面上放置很大的按钮。
6):
放置完控件后界面不应有很大的空缺位置。
7):
字体的大小要与界面的大小比例协调,通常使用的字体中宋体9-12较为美观,很少使用超过12号的字体。
8):
前景与背景色搭配合理协调,反差不宜太大,最好少用深色,如大红、大绿等。
常用色考虑使用Windows界面色调。
9):
如果使用其他颜色,主色要柔和,具有亲和力与磁力,坚决杜绝刺目的颜色。
10):
大型系统常用的主色有"#E1E1E1"、"#EFEFEF"、"#C0C0C0"等。
11):
界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方。
12):
如果窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;切忌只放大窗体而忽略控件的缩放。
13):
对于含有按钮的界面一般不应该支持缩放,即右上角只有关闭功能。
14):
通常父窗体支持缩放时,子窗体没有必要缩放。
15):
如果能给用户提供自定义界面风格则更好,由用户自己选择颜色、字体等。
6:
菜单位置:
菜单是界面上最重要的元素,菜单位置按照按功能来组织。
菜单设计细则:
1):
菜单通常采用“常用--主要--次要--工具--帮助”的位置排列,符合流行的Windows风格。
2):
常用的有“文件”、“编辑”,“查看”等,几乎每个系统都有这些选项,当然要根据不同的系统有所取舍。
3):
下拉菜单要根据菜单选项的含义进行分组,并切按照一定的规则进行排列,用横线隔开。
4):
一组菜单的使用有先后要求或有向导作用时,应该按先后次序排列。
5):
没有顺序要求的菜单项按使用频率和重要性排列,常用的放在开头,不常用的靠后放置;重要的放在开头,次要的放在后边。
6):
如果菜单选项较多,应该采用加长菜单的长度而减少深度的原则排列。
7):
菜单深度一般要求最多控制在三层以内。
8):
对常用的菜单要有快捷命令方式,组合原则见8。
9):
对与进行的操作无关的菜单要用屏蔽的方式加以处理,如果采用动态加载方式——即只有需要的菜单才显示——最好。
10):
菜单前的图标不宜太大,与字高保持一直最好。
11):
主菜单的宽度要接近,字数不应多于四个,每个菜单的字数能相同最好。
12):
主菜单数目不应太多,最好为单排布置。
7:
独特性:
如果一味的遵循业界的界面标准,则会丧失自己的个性.在框架符合以上规范的情况下,设计具有自己独特风格的界面尤为重要。
尤其在商业软件流通中有着很好的潜移默化的广告效用。
1):
安装界面上应有单位介绍或产品介绍,并有自己的图标。
2):
主界面,最好是大多数界面上要有公司图标。
3):
登录界面上要有本产品的标志,同时包含公司图标。
4):
帮助菜单的“关于”中应有版权和产品信息。
5):
公司的系列产品要保持一直的界面风格,如背景色、字体、菜单排列方式、图标、安装过程、按钮用语等应该大体一致。
8:
快捷方式的组合:
在菜单及按钮中使用快捷键可以让喜欢使用键盘的用户操作得更快一些在西文Windows及其应用软件中快捷键的使用大多是一致的。
菜单中:
1):
面向事务的组合有:
Ctrl-D删除;Ctrl-F寻找;Ctrl–H替换;Ctrl-I插入;Ctrl-N新记录;Ctrl-S保存Ctrl-O打开。
2):
列表:
Ctrl-G定位;Ctrl-Tab下一分页窗口或反序浏览同一页面控件;。
3):
编辑:
Ctrl-A全选;Ctrl-C拷贝;Ctrl-V粘贴;Ctrl-X剪切;Ctrl-Z撤消操作;Ctrl-Y恢复操作。
4):
文件操作:
Ctrl-P打印;Ctrl-W关闭。
5):
系统菜单:
Alt-A文件;Alt-E编辑;Alt-T工具;Alt-W窗口;Alt-H帮助。
6):
MSWindows保留键:
Ctrl-Esc任务列表;Ctrl-F4关闭窗口;Alt-F4结束应用;Alt-Tab下一应用;Enter缺省按钮/确认操作;Esc取消按钮/取消操作;Shift-F1上下文相关帮助。
按钮中:
可以根据系统需要而调节,以下只是常用的组合。
Alt-Y确定(是);Alt-C取消;Alt-N否;Alt-D删除;Alt-Q退出;Alt-A添加;Alt-E编辑;Alt-B浏览;Alt-R读;Alt-W写。
这些快捷键也可以作为开发中文应用软件的标准,但亦可使用汉语拼音的开头字母。
9:
容错性考虑:
在界面上通过下列方式来控制出错几率,会大大减少系统因用户人为的错误引起的破坏。
开发者应当尽量周全地考虑到各种可能发生的问题,使出错的可能降至最小。
如应用出现保护性错误而退出系统,这种错误最容易使用户对软件失去信心。
因为这意味着用户要中断思路,并费时费力地重新登录,而且已进行的操作也会因没有存盘而全部丢失。
容错性细则:
1):
最重要的是排除可能会使应用非正常中止的错误。
2):
应当注意尽可能避免用户无意录入无效的数据。
3):
采用相关控件限制用户输入值的种类。
4):
当用户作出选择的可能性只有两个时,可以采用单选框。
5):
当选择的可能再多一些时,可以采用复选框,每一种选择都是有效的,用户不可能输入任何一种无效的选择。
6):
当选项特别多时,可以采用列表框,下拉式列表框。
7):
在一个应用系统中,开发者应当避免用户作出XX或没有意义的操作。
8):
对可能引起致命错误或系统出错的输入字符或动作要加限制或屏蔽。
9):
对可能发生严重后果的操作要有补救措施。
通过补救措施用户可以回到原来的正确状态。
10):
对一些特殊符号的输入、与系统使用的符号相冲突的字符等进行判断并阻止用户输入该字符。
11):
对错误操作最好支持可逆性处理,如取消系列操作。
12):
在输入有效性字符之前应该阻止用户进行只有输入之后才可进行的操作。
13):
对可能造成等待时间较长的操作应该提供取消功能。
14):
特殊字符常有;;’”><,`‘:
“[”{、\|}]+=)-(_*&&^%$#@!
~,.。
?
/还有空格。
15):
与系统采用的保留字符冲突的要加以限制。
16):
在读入用户所输入的信息时,根据需要选择是否去掉前后空格。
17):
有些读入数据库的字段不支持中间有空格,但用户切实需要输入中间空格,这时要在程序中加以处理。
10:
多窗口的应用与系统资源:
设计良好的软件不仅要有完备的功能,而且要尽可能的占用最底限度的资源。
1):
在多窗口系统中,有些界面要求必须保持在最顶层,避免用户在打开多个窗口时,不停的切换甚至最小化其他窗口来显示该窗口。
2):
在主界面载入完毕后自动卸出内存,让出所占用的WINDOWS系统资源。
3):
关闭所有窗体,系统退出后要释放所占的所有系统资源,除非是需要后台运行的系统。
4):
尽量防止对系统的独占使用。