两票编程规范.docx
- 文档编号:12069867
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:11
- 大小:20.08KB
两票编程规范.docx
《两票编程规范.docx》由会员分享,可在线阅读,更多相关《两票编程规范.docx(11页珍藏版)》请在冰点文库上搜索。
两票编程规范
编程规范
1命名约定
1.1.Pascal和Camel命名约定
编程的命名方式主要有Pascal和Camel两种(Pascal:
每个单词的首字母大写,例如ProductType。
Camel:
首个单词的首字母小写,其余单词的首字母大写,例如productType)。
标志符
规则
实例与描述
类class
Pascal
Application
枚举类型enum
Pascal
记住,是以Pascal命名,切勿包含Enum,否则FXCop会抛出Issue
委托delegate
Pascal
以Pascal命名,不以任何特殊字符串区别于类名、函数名
常量const
Pascal
仍然提倡使用Pascal命名,以能通过FXCop检测全部大写,中间用下划线隔开
接口interface
Pascal
IDisposable注:
总是以I前缀开始,后接Pascal命名
方法function
Pascal
ToString
命名空间namespace
Pascal
以.分隔,当每一个限定词均为Pascal命名方式,比如:
usingExcelQuicker.Framework,暂定TT.层名称.模块.开头
参数
Camel
首字母小写,要有意义
局部变量
Camel
也可以加入类型标识符,比如对于System.String类型,声明变量是以str开头,stringstrSQL=string.Empty;
数据成员
—
以m开头+Pascal命名规则,如mProductType(m意味member)
属性
Pascal
工厂类
Pascal
以Factory结尾例如:
DataDriverFactory
基类
Pascal
以Base结尾例如:
DataDriverBase
集合类
Pascal
以Collection结尾例如:
DataDriverCollection
访问配置文件类
Pascal
以Config结尾例如:
REAPConfig
数据实体类
Pascal
以DO结尾例如:
DataDriverDO
业务对象类
Pascal
以BO结尾例如:
DataDriveBO
自定义属性类
Pascal
以Attribute结尾例如:
DataDriveAttribute
1.2.局部变量命名
在primitive的局部变量命名时,使用Camel命名规则,
比如:
inttype=0;
doublecount=0;
…
对于string类型定义,通常使用str前缀+Pascal命名的方式,
比如stringstrSQL=string.Empty;这是一种典型的命名SQL语句字符串的方式
而对于此外的类型对象定义,通常的做法是使用obj前缀+Pascal命名的方式,来告知我们这个变量是一个对象
比如:
ApplicationobjApplication=newApplication();
1.3.参数命名
Camel命名规则,首字母小写
1.4.类数据成员/属性命名
数据成员命名以m开头+Pascal命名方式;
属性以Pascal命名
比如
classEQAppcalition
{
privateArrayListmWorksheetCollection=newArrayList();
publicArrayListWorksheetCollection
{
get
{
returnthis.mWorksheetCollection;
}
}
}
另外,在类的内部调用时,我们应该尽量加上this限定符,this在编辑环境中是蓝色的,更利于我们区分局部变量、参数或静态变量
1.5.命名空间命名
在.之间的限定字符串符合Pascal格式
命名空间命名采用TT.层名称.模块名.子模块名称
1.6.委托缩写
委托的命名方式我常常以Pascal命名,或者可以在前面加入dg
比如publicdelegatevoidOnMouseUp(objectsender,MouseEventArgse);用于处理当MouseUp时触发的委托
1.7.自定义异常类
我建议自定义异常类以Exception结尾,
比如classEQException:
Exception{…}这是在我的ExcelQuicker控件中异常类的定义方式
1.8.枚举
枚举的命名是Pascal命名。
1.9.常量命名
Const+Pascal命名方式
1.10.命名缩写
在一般情况下,我们都不要使用缩写命名,我们从来不害怕长的变量命名,而却担心看不懂的命名。
变量命名的原则是,尽最大努力让其他人在看到我们的变量/函数/…等的第一时间,大概能猜出它是做什么的。
比如:
intproductTypeCount=0;//我们在第一时间就能知道它是记录产品的数量的变量
而对于糟糕的命名方式:
intpTC=0;//它是productTypeCount的简写,但是其他人或者我们在长时间以后还能知道它是做什么的吗?
也许我们不得不查阅相关文档或跟踪代码前后文以明白其意义。
2注释规范
文件头部注释
在代码文件的头部进行注释,标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的手。
样本:
/********************************************************************************
**版权:
湖南大唐先一产品服务部
**作者:
刘克勤
**创始时间:
2005-5-8
**修改人:
刘克勤
**修改时间:
2005-6-1
**修改人:
李志金
**修改时间:
2005-6-29
**功能:
**主要用于产品信息的资料录入,…
*********************************************************************************/
函数、属性、类等注释
请使用///三斜线注释,这种注释是基于XML的,不仅能导出XML制作帮助文档,而且在各个函数、属性、类等的使用中,编辑环境会自动带出注释,方便你的开发。
以protected,protectedInternal,public声明的定义注释请都以这样命名方法。
例如:
///
///用于从ERP系统中捞出产品信息的类
///
classProductTypeCollector
{
…
}
逻辑点注释
在我们认为逻辑性较强的地方加入注释,说明这段程序的逻辑是怎样的,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除BUG。
在注释中写明我们的逻辑思想,对照程序,判断程序是否符合我们的初衷,如果不是,则我们应该仔细思考要修改的是注释还是程序了…
3排版
排版原则与建议:
1、 每行语句至少占一行,如果语句过长(超过一屏),则该语句断为两行显示;
2、 把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion。
3、 使用空格,
(1) 目操作符的前后加空格(+,=,&&等);
(2) 单目操作符前后不加空格(!
++,~等);
(3) 逗号、分号只在后面加空格。
4、 使用空行,在一段功能代码、或者函数、属性之间插入空行,这样会很直观。
4界面控件命名
建议是使用默认控件名作为前缀,并且首字母小写,符合Camel规范,这样的好处是不必为未知的控件统一命名方式发愁,比如对于Label标签控件,有的人用缩写lbl,有的人用lab,有的人用lb……
protectedSystem.Web.UI.WebControls.ButtonbuttonQuery;
protectedSystem.Web.UI.WebControls.DropDownListdropDownListProductType;
protectedSystem.Web.UI.WebControls.TextBoxtextBoxManufactureDate;
5ADO.NET命名
类型
前缀
实例
Connection
con
conSQLServer1
Command
cmd
cmdProductType
Parameter
parm
parmProductTypeID
DataAdapter
dad
dadProducts
DataReader
dr
dtrProducts
DataSet
dst
dstProducts
DataTable
dt
dtblCDROM
DataRow
drow
DataColumn
Dcol
…
DataView
dvw
…
DataRelation
drel
…
6代码可读性建议
1)注意运算符的优先级,我们应该尽量使用括号明确表达式的操作顺序,避免使用默认优先级,给我们以及维护人带来困扰
2)避免使用不易理解的数字,用有意义的标识来替代(枚举和常量)
比如:
if(productType==0)
…
elseif(productType==1)
…
(不推荐使用)
if(productType==ProductType.CD)
…
elseif(productType==ProductType.DVD)
…
(推荐使用)
(3)代码中关系较为紧密的代码应尽可能相邻,比如使用objProductType.Name,而不是objProductType.Name
(4)在界面层中尽量使用异常处理try语句,不要将错误的消息直接暴露给用户,而更应该的是把系统抛出的错误信息记录到LOG日志文件中去,告诉用户友好的提示信息。
字符串要求做.trim()操作
7命名空间及目录规范
REAP(系统平台rapidenterprisearchitectplatform)
|
|________REAP.Aspect(面向方向编码基类)
|
|________REAP.Enterprise(系统调用接口Services处理基类)
|
|________REAP.Log(日志业务对象实现代码)
|
|________REAP.Log.Boi(日志业务对象接口,包含数据表实体类定义)
|
|________REAP.Organize(组织结构业务对象实现代码)
|
|________REAP.Organize.Boi(组织结构对象接口,包含数据表实体类定义)
|
|________REAP.PDO(persistentdataobject数据库持久化对象,该目录存放基本数据存储对象)
||
||________REAP.PDO.Attributes
||
||________REAP.PDO.Configuration
||
||________REAP.PDO.Converters
||
||________REAP.PDO.Data
||
||________REAP.PDO.Generators
||
||________REAP.PDO.Map
||
||________REAP.PDO.Query
|
|________REAP.Security(安全管理业务对象实现代码)
|
|________REAP.Security.Boi(安全管理对象接口,包含数据表实体类定义)
|
|________REAP.Utility(系统基本组件业务逻辑实现代码,下级)
|
|________REAP.Utility.Boi(系统基本组件对象接口,包含数据表实体类定义)
|
|________REAP.Utility.Ui(UI层公用组件类,基本界面控件的封装)
|
|________REAP.WEB(命名空间)
|
|______AssemblyInfo.cs、Global.asax、index.aspx、web.config
|
|______AOP(面向方向通用业务实现类)
|
|_______ASPX(UI层业务代码)
|
|___________common(基本的资源文件)
||
||_______core(核心,系统平台用到的系统文件)
|||
|||_________css(样式文件)
|||
|||_________image(图片文件)
|||
|||_________scripts(js、htc)
||
||_______css(根据业务功能建立目录放样式文件)
||
||_______image(根据业务功能建立目录放图形文件)
||
||_______scripts(根据业务功能建立目录放脚本文)
|
|_________logon(系统登陆基本)
|
|_________其他业务UI层aspx、ascx文件,不同业务建立不同的目录
建TCommon目录放置跟项目相关的资源文件
8页面命名规范
9数据库命名规范
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 规范
![提示](https://static.bingdoc.com/images/bang_tan.gif)