`
niuzh
  • 浏览: 14927 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

2.框架开发人员应成为遵守编程规范的典范

阅读更多
严格说来,所有开发人员应遵守组织制定的有效的编程规范,不过,由于框架开发人员所编写的程序、文档往往被事务层开发人员所继承或参照,要求更严格一点并不为过,否则可能会造成更多面积的不规范。

       在使用PB、SQLSERVER开发框架程序时通常应遵循以下规范:

1、  PB库文件命名规范

2、  PB对象命名规范

3、  PB变量命名规范

4、  PB对象事件、函数命名、注释规范

5、  界面设计规范

6、  SQL对象命名规范

7、  SQL变量命名规范

8、  设计文档开发规范

9、  帮助文档开发规范

当然,可能还有其它的在组织内生效的规范,如培训管理规范、配置管理规范、文件控制管理规范等。这些规范最好在项目启动后不久建立,在开发过程中不断完善。

以PB库文件命名规范为例,如果框架非常小,可以考虑使用一个库,如果框架较大,建议按照对象的几大类型来建立库文件,库文件应能较为直观地反映出所属模块及主要存放对象,如以“模块代号+对象类型”来命名。对象类型包括窗口、数据窗口、全局函数、用户对象等。由于框架层已实现很多通用功能,事务层的主要工作就是开发数据窗口对象以及定义程序界面入口的窗口,可以考虑事务层库文件只使用窗口、数据窗口类型。例,框架库文件包括syswin.pbl(存放框架窗口)、sysdw.pbl(存放框架数据窗口)、sysfun.pbl(存放框架全局函数)、sysobj.pbl(存放框架用户对象)等,事务层库文件包括invwin.pbl(存放库存管理模块窗口)、invdw.pbl。(存放库存管理模块数据窗口)。

PB对象命名规范包括独立存储的PB对象和容器上控件的命名规范。容器(比如窗口、TabPage、组合控件)上控件的命名规范可以参考PB推荐(或默认)的规范或PFC推荐的规范。独立存储的PB对象的名称应能较为直观地反映出对象的类型、模块、功能。以下是笔者推荐的在程序框架中经常用的对象前缀。

前缀
对象类型
举例
说明

W
窗口
W_sys_about、w_sys_login
建议在第二节加入模块代号

D
数据窗口
D_sys_user_grid、d_sys_user_form
建议在第二节加入模块代号

Dddw
下拉数据窗口
Dddw_sys_user、dddw_sys_menu
建议在第二节加入模块代号,所有下拉数据窗口采用Grid风格

F
全局函数
F_center、f_parse
建议事务层不创建自己的全局函数,如果确实要创建,在第二节加入模块代号

U
标准可视化控件
U_dw、u_cb
建议程序框架中为所有的标准可视控件建立祖先,禁止事务层使用无继承的控件

N
标准非可视化对象
N_tr、n_datastore
禁止事务层使用无继承的标准非可视化对象

Cst
可视化组合控件
Cst_toolbar_list、cst_printconfig_general
建议事务层不创建自己的可视化组合控件,如果确实要创建,在第二节加入模块代号

Nvo
非可视化对象
Nvo_app、nvo_md5
建议事务层不创建自己的可视化组合控件,如果确实要创建,在第二节加入模块代号

M
菜单
M_list、m_pop
建议创建有限的几个菜单对象,公用而不是继承

Stru
结构
Stru_fieltime、stru_rect
通常在调用WINAPI时使用结构


在对PB的变量命名时建议体现出作用范围(全局、共享、实例、局部、参数)、数据类型(标准、枚举、对象和控件、结构等)、功能。例如以“作用范围+数据类型_+变量名称”定义一个变量。尽量少定义全局变量。

在对PB对象的事件命名时建议体现其功能,推荐使用“ue_+事件名”来命名,事件名可以是一个动词或动词加名词,如ue_sort、ue_sendmail等。推荐使用“of_+函数名”来命名对象函数,函数名可以是一个动词或动词加名词,如of_save、of_setproperty等,几类通用的动作包括:is用于判断、get用于获取值、set用于赋值或设置开关选项,如of_ismodified、of_getobjects、of_setmultiselect等。在群体开发时要强调的是一定要为事件、函数、变量注释,否则阅读起来非常麻烦,通常在事件、函数的开始处应有规范的注释,包括事件(函数)名称、参数名称、参数数据类型、参数含义、返回值类型及含义、事件(函数)功能描述、创建人、简要算法描述等信息,可以要求在任何调用非系统的函数、事件时必须加上注释。适当的空行有助于分隔较长的代码和区分不同的功能段。由于PB脚本不区分大小写,原则上你可以随意使用大写或小写,但笔者建议你全部使用小写(除个别WINAPI或特殊代码段必须区分大小外),笔者对大片的大写字母总是有种陌生感。

在同一个系统的不同作业中应尽可能保持用户界面的一致性,这样可以减少不少的培训工作。可以约定几种典型的界面风格,如列表类窗口、输入类窗口、报表类窗口、查询类窗口、参数输入类窗口等,设置这几类窗口的默认界面风格,并可通过系统配置或读取初始化文件来改变界面风格。对管理信息系统而言,界面要力求简单、操作方便、色彩淡雅。

后台对象的命名同样要遵循一定的规范,尽量做到见名识义。曾经看过以数字、中文、拼音命名对象的方法,看起来就头痛,例如:sh01、sh02、t_yh,你能一下子看出该对象的类型、功能吗?复杂、不容易记的命名方法只能无谓地浪费开发人员宝贵的时间。推荐使用下面的前缀来命名常见的SQL对象。

对象类型
命名方法
举例
说明


模块代号_+表名+[_表类型]
Pur_po_master、pur_po_detail、pur_vendor_info
通常后缀为master的表存储事务主数据,后缀为detail的表存储事务明细数据,后缀为info的表存储基础数据(也可不带后缀),后缀为rpt的表存储报表数据。表名一定要体现所属模块。

视图
V_+模块代号_+视图名
V_inv_transaction_detail、v_sys_newmessage
如果是直接建立在基表上的视图,可以直接使用“v_表名”命名

存储过程
Usp_+模块代号_+存储过程名称
Usp_sys_createmailtrigger、

Usp_sys_dropmailtrigger
为了区分是用户创建的存储过程还是系统自带的存储过程,建议不要以“sp”为前缀命名存储过程

函数
Udf_+模块代号_+函数名称
Udf_sys_getchildmenuid、

udf_sys_gettriggerlistbystatus
为了区分是用户创建的函数还是系统自带的函数,建议不要以“fn”为前缀命名函数

触发器
T+触发器类型+表名+[_序号]
Ti_pur_po_master、td_pur_po_master、

Tii_pur_po_master
如果是后触发器,可以使用i表示插入、u表示更新、d表示删除,如果是前触发器,可以再增加i标识,对于一些特殊功能的触发器(如自动跳号、自动邮件),可以添加到触发器类型中,如果同一类型触发器有多个,可以加上序号作为后缀


在命名SQL变量时建议体现数据类型(如以c表示char),如果是存储过程或函数的参数,建议以“a+数据类型+变量名称”表示。在后台开发中经常要获取栏位值,建议在命名变量时直接使用栏位名称,如@vc_user_name或@user_name。

设计文档包含很多种,如概要设计、详细设计、单元测试等文档,推荐使用国家软件开发标准GB8567并适当剪裁。

尽管程序中可能有不少注释,但可虑到源代码的安全性,并非每个开发人员都能获取非本人负责的源代码,还是有非常有必要开发相关的帮助文档。Microsoft、Sybase等开发工具所带的帮助文档可以作为我们制作技术性帮助文档的范例。

以上所列的规范并非软件开发时的全部规范,笔者也只是简单地讲述了一番,并未深入。读者可以参考其他的软件开发相关教程。在制定规范时应着眼于使开发人员操作简单、便于阅读、普遍接受为原则,切忌大而全不适用。

由于开发人员也是普通人,在开发过程中也可能存在偶尔的不遵守规范行为,可以通过日常的代码检查、评审找出并纠正。作为一个负责任的框架开发人员,应认识到自己所编写的程序、文档往往被事务层开发人员所继承或参照,如果你很好地遵守规范,就会带动更多的开发人员遵守规范,这样才有利于标准的有利推行和良好的沟通,如果你不能较好地遵守规范,可能造成更多的开发人员随意发挥、破坏规范,你也将花费更多的不必要时间为事务层开发人员讲解你的代码用途。



作者:康剑民 kangjianmin@139.com

写作日期:2009-03-02

分享到:
评论

相关推荐

    c++编程典范

    《C++编程典范》是C++编程领域的一本经典之作,它深入浅出地探讨了C++编程的各种最佳实践和技巧。这本书旨在帮助开发者编写出高效、可读性强且易于维护的C++代码,实现真正的编程典范。描述中的“经典例题”提示我们...

    典范英语2A.pdf

    Lesson 2 A sinking feeling 本单元主要讲授英语中关于水上活动的词汇和句子结构。学生学习了不同的水上活动相关的词汇,如“pool”、“duck”等,并学习了如何描述水上活动的过程,如“Wilma climbed on the duck...

    典范英语2B.pdf

    根据提供的信息,我们可以总结出以下相关知识点: ### 知识点一:《Poor Old Rabbit!》 本课通过一个玩具兔子被发现的故事,教授孩子们如何用简单的英语表达同情与关心他人的情感。 - **核心词汇**:Poor old ...

    快速开发框架.源码 带数据库 NFine +LeaRun_6.3.4

    信息化系统快速开发框架的使用,大大地缩短了开发周期,提高了软件质量,同时也降低企业对软件研发人员编码水平要求。使得软件企业减少研发的时间和成本以及提升用户体验,从而能在竞争激烈的软件行业里脱颖而出,...

    基于J2EE的Struts、Spring、Hibernate框架技术构建Web应用.pdf

    基于J2EE(Java 2 Platform, Enterprise Edition)的开发模式,尤其是利用Struts、Spring和Hibernate这三个框架的集成,已成为构建高效、灵活且可扩展的Web应用的标准做法。这些框架各自解决了不同的问题领域,并...

    cpp-Frogfighter一个由C语言和cocos2d框架开发的飞机大战和捡金币游戏改版

    C语言作为底层编程语言,以其高效、直接的特性为游戏性能优化打下坚实基础,而Cocos2d则是一款强大的2D游戏开发框架,简化了游戏的图形渲染、动画处理和物理模拟等复杂工作。 在C语言层面,Frogfighter可能采用了...

    华为编程语法规范

    这份规范不仅适用于华为内部的开发人员,对于任何希望提高代码可读性、可维护性的程序员来说,都是一份极具价值的参考资料。下面将详细解读这份规范中的关键知识点。 1. **命名规范** - 变量名、函数名、类名应...

    新版典范英语7全文.pdf

    根据提供的文件信息,文章标题为“新版典范英语7全文.pdf”,描述为同一内容,而标签为空。文件内容节选显示,这是一篇描述北极动物们准备才艺表演的文章,以海象为主角,通过这个角色,讲述了关于自我认知、尝试与...

    Java毕业设计-基于ssm框架开发的在线医疗服务系统+jsp-毕业论文(附源代码).rar

    它不仅是一个完整的在线医疗服务系统项目,更融合了SSM(Spring+SpringMVC+MyBatis)框架与JSP技术的经典应用,是理论与实践结合的典范。 该系统以医疗服务为核心,实现了用户注册登录、在线问诊、预约挂号、查看...

    典范英语.doc

    2. 英语学习材料:典范英语是一套适合儿童学习英语的教材,包含多个小故事,每个故事都配有丰富的对话和情节,有助于提高孩子的阅读理解能力和口语表达能力。 3. 文化内涵:故事中提及的角色如北极动物们代表了不同...

    AM29LV160编程源代码可以作为Flash擦写程序的典范.rar_AM29LV160-320Flash_aflash_am2

    这个压缩包文件"AM29LV160编程源代码可以作为Flash擦写程序的典范.rar"包含了一套用于编程AM29LV160的源代码,是学习和理解如何与这类Flash ROM交互的一个实用示例。 在嵌入式系统中,经常需要对Flash ROM进行编程...

    企业营销人员培训教材典范.doc

    【企业营销人员培训教材典范】 本教材主要针对工业品营销人员,旨在提升其寻找客户、产品知识、沟通技巧以及处理客户问题的能力。以下为详细内容: 1. **寻找客户的方法**: - 通过现有客户的介绍 - 利用拜访...

    典范英语3a部分.pdf

    首先,从标题“典范英语3a部分.pdf”中,我们可以看到这是一份英语学习资源,可能是一份学习教材或练习册的某一部分。 其次,从描述“典范英语3a部分.pdf”中,我们可以推断出这份资源是英语学习的辅助材料,可能是...

    成功企业营销人员培训手册典范.doc

    成功企业营销人员培训手册典范.doc

    企业营销人员培训手册典范-推销干部的训练手册.doc

    【企业营销人员培训手册典范-推销干部的训练手册】 企业营销的成功往往取决于团队的专业技能和精神状态。本手册详述了一种创新的培训方法,旨在培养具有使命感的推销干部,以此推动企业的市场拓展。1965年,日本...

    后台使用Spring框架的质量评估193210111党涛1

    总结起来,Spring框架以其全面的功能、优秀的可扩展性和对现代开发实践的适应性,成为了Java开发的首选框架。它简化了开发流程,提高了代码质量,降低了维护成本,是构建高质量后台应用的强大工具。

    类似于163邮箱框架

    在IT行业中,"163邮箱框架"通常指的是网易公司提供的163邮箱服务背后的架构设计和开发框架。这个框架是构建大型、高可用性、高性能的Web应用的一个典范,尤其是对于邮件服务这类需要处理大量数据和并发请求的系统。...

    软件开发和测试管理情况-范例.pdf

    2. 软件开发管理规范:项目管理遵循从立项、需求分析、系统设计、系统开发到系统测试的标准化流程。每个阶段都有明确的责任分配,如项目经理负责需求分析和测试计划,研发人员负责设计和开发,测试人员负责执行测试...

    蓝桥杯竞赛:编程风格与代码规范的典范

    蓝桥杯大赛包括多个赛项,如C/C++程序设计、Java软件开发、Python程序设计、Web应用开发等,面向具有正式全日制学籍的研究生、本科生及高职高专学生开放报名 。大赛的奖励规则包括省赛和总决赛两个阶段,每个组别都...

    营销人员培训手册典范(6个制度范本).RAR.rar

    《营销人员培训手册典范》是一份综合性的文档集合,旨在为企业的营销团队提供全面、系统的培训指导。这个RAR压缩包包含6个不同的制度范本,每个范本都是针对营销人员在工作中可能遇到的关键环节和挑战而设计的。下面...

Global site tag (gtag.js) - Google Analytics