威赛儿商务通系统开发员手册
苏康胜(cancan28@163.net)
一、 前言
为了保证商务通系统项目开发成本优化并且有利于将来的扩展及重用,项目成员必须严格遵守以下开发手册。力求达成一种默认的开发规范。
二、 设计约定
l 系统将采用rds技术访问远程组件,必须记住rds不支持对象的属性的这一限制。
l 系统必须提供统一灵活的错误处理机制,统一管理组件的返回信息。
l 系统组件尽量遵守松耦合的原则,使组件在能重用的基础之上还能适应今后更多方面的变更。
l 为了使系统具有很强的移植性,设计要排除对使用存储过程实现的依赖等。
l 组件的设计应该避免产生过多的创建数据库连接请求。
l 详细设计必须详细到每个组件及方法和接口。
l 采用rational rose做为系统分析设计的辅助工具。
l 设计必须配合项目管理,辅助需求管理人员提供需求基线依据。
l 必须及时获取程序员反馈信息,修补设计时的漏洞。
l 其他补充可以找苏康胜商量。
三、 程序规范
a)vb的编程规范
在软件开发过程中,编程的工作量是相当大的,同一项目参与编程的人可能有各自编程的经验和习惯,不同风格的程序代码带来了维护工作量的增加,因此为了提高代码的可读性、系统的稳定性及维护和升级的成本,程序的代码必须严格遵循统一的编程规范。
总则:
应有良好的、尽可能一致的编程风格
编码应该是严谨的、可读性强、目标明确及直观的。
注释:
无论是用户端表示层程序还是组件程序,注释必不可少。要求能占程序总量的20%,另外注释必须在程序改变时实时更新。
每个构件的顶部应该有注释
包括:模块名称
功能描述
设计 作者
构件内的每个过程或方法应该有注释
包括:功能描述
参数说明
返回值说明
作者 更新
创建日期 最后更新日期
每个模块级变量必须给出注释
重要的变量应该给出注释
描述变量的用途
变量、常量、对象的命名规约
命名必须使用大小写结合(vb编辑器会自动转换以减少程序出错的机率)
变量命名采用[范围前缀][数组前缀][类型前缀]+[自定义命名]
控件命名采用[控件前缀]+[自定义命名]
变量范围做前缀
| 范围 | 前缀 | 例子 |
| 全局变量 | g | gstrusername |
| 模块级 | m | mstrusername |
| 过程级 | 无 | strusername |
数组前缀: a
类型前缀:
| 数据类型 | 前缀 | 例子 |
| boolean | bln | blnfound |
| byte | byt | bytrasterdate |
| currency | cur | curbalance |
| date | dtm | dtmbegindate |
| double | dbl | dblfee |
| integer | int | intqty |
| long | lng | lngvcid |
| single | sng | sngaverage |
| string | str | stritemid |
| object | obj | objrmtsvr |
| adodb.recordset | rst | rstitem |
| adodb.connection | cnn | cnnnewspaper |
| adodb.command | cmm | cmmaddcustomer |
| variant | vnt | vntcheck |
| 自定义类型 | udt | udtuserinfo |
控件类型命名前缀
| 控件类型 | 前缀 | 例子 |
| ado data | ado | adobiblio |
| check box | chk | chkreadonly |
| combo box, drop-down list box | cbo | cboenglish |
| command button | cmd | cmdexit |
| common dialog | dlg | dlgfileopen |
| data-bound combo box | dbcbo | dbcbolanguage |
| data-bound grid | dbgrd | dbgrdqueryresult |
| data-bound list box | dblst | dblstjobtype |
| data combo | dbc | dbcauthor |
| data grid | dgd | dgdtitles |
| data list | dbl | dblpublisher |
| directory list box | dir | dirsource |
| drive list box | drv | drvtarget |
| file list box | fil | filsource |
| form | frm | frmentry |
| frame | fra | fralanguage |
| graph | gra | grarevenue |
| grid | grd | grdprices |
| horizontal scroll bar | hsb | hsbvolume |
| image | img | imgicon |
| image combo | imgcbo | imgcboproduct |
| imagelist | ils | ilsallicons |
| label | lbl | lblhelpmessage |
| line | lin | linvertical |
| list box | lst | lstpolicycodes |
| listview | lvw | lvwheadings |
| menu | mnu | mnufileopen |
| month view | mvw | mvwperiod |
| ms chart | ch | chsalesbyregion |
| ms flex grid | msg | msgclients |
| ms tab | mst | mstfirst |
| option button | opt | optgender |
| picture box | pic | picvga |
| progressbar | prg | prgloadfile |
| remote data | rd | rdtitles |
| slider | sld | sldscale |
| spin | spn | spnpages |
| statusbar | sta | stadatetime |
| sysinfo | sys | sysmonitor |
| tabstrip | tab | taboptions |
| text box | txt | txtlastname |
| timer | tmr | tmralarm |
| toolbar | tlb | tlbactions |
| treeview | tre | treorganization |
| updown | upd | upddirection |
| vertical scroll bar | vsb | vsbrate |
自行开发activex控件的前缀
根据具体项目的设计时规定。
自定义命名空间规约
采用大小写结合的英文缩写,要求尽量能顾名思义。
代码约定:
风格约定
每个变量必须显式定义。在每个模块开始前加代码:option explicit。
采用缩进的格式保持程序循环的层次结构和可读性。
表示层信息对话框的图标规则
vbexclamation —— 警告
vbquestion —— 询问性警告
vbinformation —— 提示信息
vbcritical ——- 程序或系统错误
对话框的标题为模块名称(activex控件中定义一个模块极变量表示模块名称)
限制约定
模块初始化的方法统一用init作为方法名称。
为了保持开发过程中与windows 98环境下的兼容性,对ado的引用采用(microsoft activex object library 2.1),windows 2000下最新的是2.5版本的。另外也可以减少很多网络传输量。
程序开发阶段禁止使用on error resume next语句,以免造成对错误的忽略。
程序维护前应该屏蔽所有on error resume next语句。
程序中对数据库的操作语句只能用标准的sql语句,如在sql server中虽然支持delete
| 功能 | 快捷键 | 说明 |
| 增加 | ctrl+n | 增加一个新的内容 |
| 明细保存 | alt + a | 添加或保存一个明细资料(如一个报刊亭的报刊批销费率明细资料) |
| 修改 | ctrl+e | 修改当前内容 |
| 取消 | ctrl+c | 撤消做的修改 |
| 删除 | ctrl+d | 删除当前内容 |
| 明细移除 | alt +d | 移除一个明细资料 |
| 保存 | ctrl+s | 保存当前内容 |
| 第一条 | ctrl+home | 到第一条记录 |
| 上一条 | pageup | 到上一条记录 |
| 下一条 | pagedown | 到下一条记录 |
| 最后一条 | ctrl+ end | 到最一条记录 |
| 打印 | ctrl+p | 打印当前内容 |
| 退出 | ctrl+x | 退出当前form |
| 换页 | ctrl+tab | 页面间的切换(控件数较多时采用多页面显示的情况) |
4. 美观与协调性原则
l 图形按钮的图标必须具有代表性能产生感官上的功能认同。
l 长宽的比较接近黄金分割定律。
l 布局要合理切忌过于密集或过于空旷,合理利用空间。
l 字体统一采用宋体 5号字大小,所有控件排列要力求整齐,左右都能对齐,label两个字的中间空4个空格,三个字的中间空两个空格。
l 前景色与背景色搭配要合理,不宜反差太大,要考虑色盲用户的使用,且尽量能融合到html页面的基本色调中去。
l 所有按钮大小基本相近,功能相近的按钮放在一起,退出按钮一般放在右下角,与最右边的控件右边对齐。
l 类似结构的activex控件界面的整体布局保持一致。
l 所有activex控件的界面风格要保持一致,字体、颜色要相同。
五、 组件开发注意事项
略
六、 开发制度
为了保证开发工作的顺利进行,规范控制代码的并行开发机制,特做如下规定:
l 开发人员必须按照时间的规定严格完成程序任务,每周五上午可以公布下周的详细任务清单。
l 测试人员公布的bug由程序的初始编写人员负责修正。
l 修改通用模块(工具类等)、控件、组件要通知相关程序人员做适应性调整。
l 所有开发文档及软件源代码全部存放在服务器上,用visual sourcesafe统一管理,程序员改动程序之前必须check out,每日改动后要check in。
l 系统所有原程序及其它资料每周进行备分,目录用日期表示。
l 存储的目录结构如下:
http://www.umlchina.com/xprogrammer/issue/4/shangw3.jpg
l 模块命名方式
dll ——》采用np(newspaper简称) + 模块英文大小写简称,如:npcustmangage
cls ——》采用模块英文大小写简称的前两位 + class的英文大小写简称,如:clscustmain
客户端构件命名方式
ocx ——》 onp +模块英文大小写简称
l 网页命名方式
必须采用直观的、顾名思义的名称,主页用index.htm
l 开发人员必须每周登记工作日志。
l 公共函数和方法公开制度
系统将提供两个工具组件utility.dll 和public.dll,其中前者是用于当前系统的,后者不但可以用于当前系统,而且可以用于公司的其它项目。程序开发人员在开发过程中用到某些方法,如果觉得可以归纳到以上两个组件中去,则可以向苏康胜提出。验证后加入组件。
