1、系统开发员手册一、 前言 为了保证商务通系统项目开发成本优化并且有利于将来的扩展及重用,项目成员必须严格遵守以下开发手册。力求达成一种默认的开发规范。 二、 设计约定 l 系统将采用 RDS 技术访问远程组件,必须记住 RDS 不支持对象的属性的这一限制。l 系统必须提供统一灵活的错误处理机制,统一管理组件的返回信息。l 系统组件尽量遵守松耦合的原则,使组件在能重用的基础之上还能适应今后更多方面的变更。l 为了使系统具有很强的移植性,设计要排除对使用存储过程实现的依赖等。l 组件的设计应该避免产生过多的创建数据库连接请求。l 详细设计必须详细到每个组件及方法和接口。l 采用 Rational
2、Rose 做为系统分析设计的辅助工具。l 设计必须配合项目管理,辅助需求管理人员提供需求基线依据。l 必须及时获取程序员反馈信息,修补设计时的漏洞。l 其他补充可以找苏康胜商量。 三、 程序规范 a)VB 的编程规范 在软件开发过程中,编程的工作量是相当大的,同一项目参与编程的人可能有各自编程的经验和习惯,不同风格的程序代码带来了维护工作量的增加,因此为了提高代码的可读性、系统的稳定性及维护和升级的成本,程序的代码必须严格遵循统一的编程规范。总则: 应有良好的、尽可能一致的编程风格编码应该是严谨的、可读性强、目标明确及直观的。注释: 无论是用户端表示层程序还是组件程序,注释必不可少。要求能占程
3、序总量的 20%,另外注释必须在程序改变时实时更新。每个构件的顶部应该有注释包括:模块名称功能描述设计 作者构件内的每个过程或方法应该有注释包括:功能描述参数说明返回值说明作者 更新 创建日期 最后更新日期 每个模块级变量必须给出注释重要的变量应该给出注释描述变量的用途变量、常量、对象的命名规约 命名必须使用大小写结合(VB 编辑器会自动转换以减少程序出错的机率)变量命名采用范围前缀 数组前缀类型前缀+自定义命名控件命名采用控件前缀+自定义命名变量范围做前缀范围 前缀 例子全局变量 g gStrUserName模块级 m mStrUserName过程级 无 StrUserName数组前缀: a
4、类型前缀:数据类型 前缀 例子Boolean Bln BlnFoundByte Byt BytRasterDateCurrency Cur CurBalanceDate Dtm DtmBeginDateDouble Dbl DblFeeInteger Int IntQtyLong Lng LngVcIDSingle Sng SngAverageString Str StrItemIdObject Obj ObjRmtsvrADODB.Recordset Rst RstItemADODB.Connection Cnn cnnNewsPaperADODB.Command Cmm CmmAddCus
5、tomerVariant Vnt VntCheck自定义类型 Udt UdtUserInfo控件类型命名前缀 控件类型 前缀 例子ADO Data ado AdoBiblioCheck box chk chkReadOnlyCombo box, drop-down list box cbo CboEnglishCommand button cmd CmdExitCommon dialog dlg dlgFileOpenData-bound combo box dbcbo dbcboLanguageData-bound grid dbgrd dbgrdQueryResultData-bound
6、list box dblst dblstJobTypeData combo dbc DbcAuthorData grid dgd DgdTitlesData list dbl dblPublisherDirectory list box dir DirSourceDrive list box drv DrvTargetFile list box fil FilSourceForm frm FrmEntryFrame fra fraLanguageGraph gra GraRevenueGrid grd GrdPricesHorizontal scroll bar hsb HsbVolumeIm
7、age img ImgIconImage combo imgcbo imgcboProductImageList ils IlsAllIconsLabel lbl lblHelpMessageLine lin LinVerticalList box lst lstPolicyCodesListView lvw lvwHeadingsMenu mnu mnuFileOpenMonth view mvw MvwPeriodMS Chart ch chSalesbyRegionMS Flex grid msg MsgClientsMS Tab mst MstFirstOption button op
8、t OptGenderPicture box pic PicVGAProgressBar prg prgLoadFileRemote Data rd RdTitlesSlider sld SldScaleSpin spn SpnPagesStatusBar sta staDateTimeSysInfo sys SysMonitorTabStrip tab TabOptionsText box txt txtLastNameTimer tmr TmrAlarmToolbar tlb TlbActionsTreeView tre treOrganizationUpDown upd updDirec
9、tionVertical scroll bar vsb VsbRate自行开发 ActiveX 控件的前缀根据具体项目的设计时规定。自定义命名空间规约采用大小写结合的英文缩写,要求尽量能顾名思义。代码约定: 风格约定每个变量必须显式定义。在每个模块开始前加代码:Option Explicit。采用缩进的格式保持程序循环的层次结构和可读性。表示层信息对话框的图标规则vbExclamation - 警告vbQuestion - 询问性警告vbInformation - 提示信息vbCritical - 程序或系统错误对话框的标题为模块名称(ActiveX 控件中定义一个模块极变量表示模块名称)限制
10、约定模块初始化的方法统一用 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 。 。 。 。 。 ,但必须使用
11、delete from TABLE。 。 。 。保证系统的可移植性。其它约定为了保证程序实现正确的意图,程序编制开始前程序员应该对程序的意图有清晰、明确的理解,有任何疑问必须找系统设计人员洽谈。b)ASP 的编程规范 略四、用户界面a)概述 商务通系统将采用 B/S 结构,在 Windows 平台下开发,界面主要涉及的技术有VB、ASP、HTML。菜单将主要采用 HTML 形式、复杂的输入输出界面将采用在 HTML页面中嵌入 VB 的 ActiveX 控件的方式实现。查询将采用 ASP 方式实现。 b)总体规范 系统主页要求美观大方,能提供报刊亭、客户、中心职员的登录界面,登录后的页面能体现系
12、统的总体功能框架。ASP 与 VB 的 ActiveX 控件的字体及色彩基调应该保持一致风格。c)HTML 页面细则 l HTML 页面主要用于实现系统“主菜单” 的功能,要求美观大方,利于扩展。l 主页面上应该有公司或产品标志。l 基本色调建议采用能反映系统特色色彩。l “菜单”页面所有功能按钮能在一个页面的视觉范围内全部显示出来,不需要拉动滚动条。l 页面设计过程中的基本图形元素应该按目录保存下来,以便将来功能扩展时快速修改页面。l 查询页面的提交表单、 ASP 页面字体和色彩基调应该与 ActiveX 控件保持一致。l 密码输入要用“*”屏蔽。l 修改 IIS 的错误返回的页面,提示用户
13、打开浏览器选项中的容许 ActiveX 控件等信息。l 页面提供 ActiveX 标题的显示。l 防止特殊字符: “对数据库提交或浏览器的影响,必须做特殊处理。l 含有 ActiveX 控件的页面应该使控件开始获得焦点,避免控件上快捷键和浏览器上快捷键产生冲突。 d)ActiveX 规范 复杂的录入界面采用 ActiveX 控件方式实现,ActiveX 控件的界面应遵循以下原则:1. 易用性原则l 控件的名称或标题最好使用用户熟悉的字眼,而且不能超过 4 个字。l 完成相同或相近功能的按妞用 Frame 框起来,按钮要支持快捷方式。l 完成同一功能或任务的元素在集中位置,减少鼠标移动的距离。l
14、 按 TAB 键自动切换的顺序应该与界面上控件的排列顺序保持一致。l 按回车键能自动进入 TAB 顺序表示的下一控件的焦点状态(验证不通过除外) 。l 界面上首先要输入的和重要的信息控件应该是 TAB 键顺序靠前而且在比较醒目的位置,使对应控件在一开始就获得焦点。l 同一界面的控件数最好不要超过 10 个,多于 10 个可以考虑按功能或属性分类的多个页面显示。l 分页界面的页面间用 Ctrl+Tab 的组合快捷键切换,顺序按重要程度和访问几率排列。l 复选框和选项框按选择几率的高低先后排列,并且有默认的选项。l 选项数为 25 时可用选项框,选项数为 220 时可用下拉框,大于 20 时用小查
15、询按钮查询选择。l 选项数不定且数量不多的情况选用下拉框。选项数固定且数量范围为 25 的情况下根据界面的当前排列情况选择选项框或下拉框。l 按“新增”或“修改” 按妞后未存盘而是按“ 取消”按钮应使界面回到初始状态。l 对显示有当前记录资料的界面按 “新增”操作时,可以提示保留当前值新增和清屏新增两种方式,也可以选择取消回到初始界面。l 在新增和修改状态下关闭窗口或按退出按钮提示是否保存修改。l 对于定单编号、报刊代号等的输入可以通过小按钮查询选择。2. 安全性原则l 可写的控件的值改变时应该提供输入验证,不合格后应该自动获得焦点。l 首要排除可能会使应用非正常终止的错误,如:除零运算等,死
16、循环、长度超过数据库规定的长度、含有特殊字符等。l 应当注意排除无意的无效数据录入,如数值形态的控件要防止录入字符等。l 应该避免未授权功能的使用及无意义的操作。l 对可能引起致命错误或系统出错的输入字符和动作要加以限制和屏蔽。l 界面上操作数据库中关联性强的表时,如:一对一或多的表的关系时,存储动作应该放在一个按钮中完成。l 影响数据库操作的特殊字符,如: 、 “、空格等要做特殊处理后再参与数据库操作。l 日期采用统一的 YYYY/MM/DD 格式表示。而且日期的合理性必须得到验证。 (若给大陆以外的客户使用,日期处理更加复杂) 。l 小数点的位数必须根据数据库字段的要求加以限制。l 费率等
17、数值不能录入负数值。l 对输入的字符串和数值数据必须限制长度不能超过数据库规定。l 界面能捕获 ESC 键的使用,执行退出代码的功能。l 取消操作能回到初始状态。3. 合理性原则l ActiveX 控件应放在浏览器页面比较显眼的位置,能在浏览器常用工具栏显示的情况下,可以在一个屏幕中显示完整的 ActiveX 控件界面,不需拉动滚动条。l 非法输入和操作应该有足够明确的提示说明,提示说明不能混淆和重复,如“不能输入大于 600 的数字”“数字应该小于或等于 600”应该只保留其中一种说法。不能出现 A 处有A 的说法,B 处有 B 的说法,其实是一个意思。l 一些键盘或鼠标的屏蔽性的操作无须用
18、 MsgBox 来显示提示信息,如控件只能输入数字、小数点、 “-”,当输入字符时不需要有任何提示。l 提示或警告信息必须具有向导性,能告知用户错误原因,并自动使需改变的控件在第一时间内获得焦点。l 按钮的排列应该遵循新增、修改、删除、打印、退出等主题的排列顺序。注意界面按钮的屏蔽逻辑,如按下“新增”后屏蔽新增、修改、删除按钮,在对应位置显示存盘、取消按钮等。整个系统应该采用统一的界面按钮逻辑风格。l 不需要另外界面输入打印查询条件的打印功能应该有预览和打印两个按钮。预览排在前面。l 删除的动作必须先有提示信息确认是否真正删除。l 如果执行的处理时间比较长(可能比较长)要有进度条或者等待界面提
19、示用户等待系统响应。l 按钮必须提供快捷方式,快捷键的取值符合其它 MIS 项目的共同习惯。功能快捷键 说明增加 Ctrl+N 增加一个新的内容明细保存 Alt + A 添加或保存一个明细资料(如一个报刊亭的报刊批销费率明细资料)修改 Ctrl+E 修改当前内容取消 Ctrl+C 撤消做的修改删除 Ctrl+D 删除当前内容明细移除 Alt +D 移除一个明细资料保存 Ctrl+S 保存当前内容第一条 Ctrl+Home 到第一条记录上一条 PageUp 到上一条记录下一条 PageDown 到下一条记录最后一条 Ctrl+ End 到最一条记录打印 Ctrl+P 打印当前内容退出 Ctrl+
20、X 退出当前 Form换页 Ctrl+Tab 页面间的切换(控件数较多时采用多页面显示的情况)4. 美观与协调性原则l 图形按钮的图标必须具有代表性能产生感官上的功能认同。l 长宽的比较接近黄金分割定律。l 布局要合理切忌过于密集或过于空旷,合理利用空间。l 字体统一采用宋体 5 号字大小,所有控件排列要力求整齐,左右都能对齐,Label 两个字的中间空4 个空格,三个字的中间空两个空格。l 前景色与背景色搭配要合理,不宜反差太大,要考虑色盲用户的使用,且尽量能融合到 HTML 页面的基本色调中去。l 所有按钮大小基本相近,功能相近的按钮放在一起,退出按钮一般放在右下角,与最右边的控件右边对齐
21、。l 类似结构的 ActiveX 控件界面的整体布局保持一致。l 所有 ActiveX 控件的界面风格要保持一致,字体、颜色要相同。五、 组件开发注意事项 略六、 开发制度 为了保证开发工作的顺利进行,规范控制代码的并行开发机制,特做如下规定:l 开发人员必须按照时间的规定严格完成程序任务,每周五上午可以公布下周的详细任务清单。l 测试人员公布的 BUG 由程序的初始编写人员负责修正。l 修改通用模块(工具类等) 、控件、组件要通知相关程序人员做适应性调整。l 所有开发文档及软件源代码全部存放在服务器上,用 Visual SourceSafe 统一管理,程序员改动程序之前必须 check ou
22、t,每日改动后要 check in。l 系统所有原程序及其它资料每周进行备分,目录用日期表示。l 存储的目录结构如下:http:/ l 模块命名方式DLL 采用 NP(NewsPaper 简称) + 模块英文大小写简称,如:NPCustMangageCLS 采用模块英文大小写简称的前两位 + CLASS 的英文大小写简称 ,如:ClsCustMain客户端构件命名方式OCX Onp +模块英文大小写简称l 网页命名方式必须采用直观的、顾名思义的名称,主页用 Index.html 开发人员必须每周登记工作日志。l 公共函数和方法公开制度系统将提供两个工具组件 Utility.Dll 和 Public.Dll,其中前者是用于当前系统的,后者不但可以用于当前系统,而且可以用于公司的其它项目。程序开发人员在开发过程中用到某些方法,如果觉得可以归纳到以上两个组件中去,则可以向苏康胜提出。验证后加入组件。