编程规范和范例cle.docx

上传人:b****5 文档编号:6498422 上传时间:2023-01-07 格式:DOCX 页数:29 大小:35.47KB
下载 相关 举报
编程规范和范例cle.docx_第1页
第1页 / 共29页
编程规范和范例cle.docx_第2页
第2页 / 共29页
编程规范和范例cle.docx_第3页
第3页 / 共29页
编程规范和范例cle.docx_第4页
第4页 / 共29页
编程规范和范例cle.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

编程规范和范例cle.docx

《编程规范和范例cle.docx》由会员分享,可在线阅读,更多相关《编程规范和范例cle.docx(29页珍藏版)》请在冰豆网上搜索。

编程规范和范例cle.docx

编程规范和范例cle

 

**系统

-编码命名规范

版本0.1

文档类别:

项目管理

文档名称:

《**系统-编码命名规范》

文档标识:

版本:

0.1

状态:

讨论稿

访问路径:

\\File\vss

所有者:

cle

创建人/创建时间:

cle/2004-12-21

批准人/批准时间:

修订历史:

日期

说明

作者

版本

2004-12-21

C#开发和数据库设计的命名规范和约定

命名的缩写规范

陈利娥

1.0

2004-12-25

增加控件命名规范

补充HTML编码规范

2005-11-4

.NETFramework常规参考命名指南

陈利娥

1.1

2007-10-6

.NETFramework常规参考类库开发人员设计指南

陈利娥

2.0

 

目录

一、数据库设计命名规范5

数据库名5

表名5

视图名5

触发器名5

存储过程名6

变量名6

命名中其他注意事项6

二、文件名命名规范6

三、C#开发命名规范6

命名空间的定义6

类7

接口7

枚举和结构8

委派类型,或者叫代理类型8

命名规则8

方法9

属性9

常数9

变量10

注释10

控件11

四、缩写规范12

数据库名和表名12

其他动名词缩写13

五、C#编码习惯.14

2、代码的缩进.要用Tab,而不要用space.14

3、尽量不要手工更改机器生成的代码,若必须更改,一定要改成和机器生成的代码风格一样..14

4、不准使用goto系列语句.14

5、不要声明public的event,应用事件访问器.14

6、类型转换的使用规则.15

7、生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string.15

8、号"{"要新起一行.15

9、用"{}"包含if下的语句,即使只有一条语句.15

10、switch语句一定要有default来处理意外情况.15

11、尽量少使用三目运算符?

:

,而要使用if语句.15

12、尽量不用使用this引用,除非是要调用类中的另一个Constructor.15

六、通用界面规范16

1、遵循一致的准则,确立标准并遵循16

2、(Color)颜色使用恰当,遵循对比原则:

16

3、(Resource)资源17

4、(Font)字体17

5、(Text)文字表达18

6、(STYLE)控件风格,不要使用错误控件,控件功能要专一18

7、(ALIGN)控件布局,窗口不拥挤,按功能组合控件18

8、(TABORDER)TAB顺序19

9、(ShortcutKey&Accelerator&PopMenu)快捷键、加速键和弹出菜单19

10、(ACTION)用户交互20

11、(HELP)联机帮助:

20

12、发行时阐明规则20

七、高开发效率的快捷键21

八、HTML编码规范21

标记的书写22

标记的换行规范22

标记的关闭规范:

22

标记的属性值规范23

标记的缩进规范23

注释24

九、NETFramework常规参考类库开发人员设计指南24

 

一、数据库设计命名规范

数据库名

✧数据库名:

如:

JBNET

表名

✧表名必须以名词或名词短语命名,首位大写,同时要使用复数形式,比如:

⏹学生基本信息表:

Students

⏹客户基本信息表:

Customers

✧如果是关联表,结尾用Ref表示,关联的实体名称都要列出,这时不用使用复数形式,但每个实体名的首位大写,不要使用下划线,比如:

⏹代理商和客户关联表:

AgentCustomerRef

✧命名应尽量反映存储的数据内容。

视图名

✧视图以v作为前缀,其他命名规则和表的命名类似,比如:

⏹代理商基本信息视图:

vAgents

✧命名应尽量体现各视图的功能。

触发器名

触发器名为相应的表名加上后缀,Insert触发器加'_i',Delete触发器加'_d',Update触发器加'_u',如:

Customer_i,Customer_d,Customer_u。

存储过程名

存储过程应以'up_'开头,和系统的存储过程区分,后续部分主要以动宾形式构成,并用下划线分割各个组成部分。

如增加代理商的帐户的存储过程为'up_ins_agent_account'。

变量名

变量名采用小写,若属于词组形式,用下划线分隔每个单词,如@my_err_no。

命名中其他注意事项

✧以上命名都不得超过30个字符的系统限制。

✧变量名的长度限制为29(不包括标识字符@)。

✧数据对象、变量的命名都采用英文字符。

禁止使用中文命名。

二、文件名命名规范

文件名要能反应类的内容,最好是和类同名,一个文件中一个类或一组关连类.

目录结构中要反应出namespace的层次

三、C#开发命名规范

命名空间的定义

✧用有意义的名字命名namespace,如:

产品名、公司名.

✧命名空间必须以名词命名,并按照功能分组,以体现此命名空间的功能,比如:

namespaceBSS.AccountSys//帐务系统

namespaceBSS.Entities;//实体类

✧把引用的系统的namespace和自定义或第三方的用一个换行把它们分开.

✧用C#预定义的类名,而不要用别名.

stringuserName;而不是System.StringuserName;

intnumber;而不是System.Int32;

✧以Class声明的类,都必须以名词或名词短语命名,体现类的作用。

如:

ClassIndicator

如果通过objectbuilder工具从数据库导出的实体类,使用和表名或视图名相同的名字,如果是视图去掉前面的v,同时使用单数形式,去掉最后的s,如:

从表Customers导出类Customer,从视图vAgents导出类Agent。

✧当类是一个特性(Attribute)时,以Attribute结尾,自定义的属性以Attribute结尾

publicclassAuthorAttribute:

Attribute

{

}

classColorSetException

✧当类是一个异常(Exception)时,以Exception结尾,自定义的异常以Exception结尾,比如:

publicclassAppException:

Exception

{

}

classCauseExceptionAttribute

✧当类只需有一个对象实例(全局对象,比如Application等),必须以Class结尾,如

classScreenClass

classSystemClass

✧当类只用于作为其他类的基类,根据情况,以Base结尾:

MustInheritClassIndicatorBase

✧如果定义的类为抽象类,请使用"Abstract"前缀,比如:

abstractclassAbstractBuilder

✧如果定义的类是一个窗体,那么名字的后面必须加后缀Form,如果是Web窗体,必须加后缀Page:

ClassPrintForm:

InheritsForm‘*Windows窗体

ClassStartPage:

InheritsPage‘*Web窗体

✧如果定义的类使用了某些模式,请遵循类名+模式名的规则,比如:

工厂模式:

classBuilderFactory

中介者:

classOrderBroker

观察者:

classAccountObserver

等等。

接口

✧接口命名,请遵循COM命名规则:

接口必须要由I作为前缀,并用形容词或者名词命名,突出表现实现接口的类将具有什么能力或者角色,比如:

interfaceISortable:

实现此接口的类可排序,一目了然。

interfaceIDownloadManager:

实现此接口的类可以作为下载管理者使用。

✧如果要扩展接口,请使用新接口继承原接口,并在后面加2代表是一个扩展接口(不要直接修改原接口,会影响到现有客户的使用),

比如:

interfaceIObjectFactory

{

objectCreateInstance(Typetype);

}

interfaceIObjectFactory2:

IObjectFactory

{

boolCheckSecurity(Securitysecurity);

}

枚举和结构

✧同样必须以名词或名词短语命名。

最好体现枚举或结构的特点,如:

EnumColorButtons‘以复数结尾,表明这是一个枚举

StructureCustomerInfoRecord‘以Record结尾,表明这是一个结构体

委派类型,或者叫代理类型

✧普通的委派类型以描述动作的名词命名,以体现委派类型实例的功能:

DelegatevoidDataSeeker(outstringSeekString);

✧用于事件处理的委派类型,必须以EventHandler结尾,如:

DelegatevoidDataChangedEventHandler(objectsender,DataChangedEventArgse);

6、上述所有规则的共同特点是:

每个组成名称的词语都必须是大写开头,禁止完全大写或小写的名称。

命名规则

1.用pascal规则来命名方法和类型.

publicclassTextBox

{

publicvoidDataBind()

{

}

}

2.用camel规则来命名局部变量和方法的参数.

stringuserName;

publicAddUser(stringuserId,byte[]password);

方法

✧方法都必须以动词或动词短语命名。

方法的命名.一般将其命名为动宾短语.比如:

boolOpenDocument(Documentdoc);

voidPrint(Documentdoc);

ShowDialog()

CreateFile()

GetPath()

属性

✧原则上,字段(Field)是不能公开的,要访问字段的值,一般使用属性。

属性以简洁清晰的名词命名:

publicstringCustName{}

publicObjectCurrent{}

事件

事件是特殊的属性,只能在事件处理上下文中使用。

命名的原则一般是动词或动词的分词,通过时态表明事件发生的时间:

ClickEventHandlerEventClick;

ColorChangedEventHanglerEventColorChanged;

常数

✧文字常量和数字常量不要硬编码,应该用常量类或枚举代替.

✧常数以表明常数意义的名词命名,一般不区分常数的类型:

constfloatPI=3.1415;

✧在严格要求的代码中,常数以c_开头,如c_DefaultConcentration,但最好不要用它,它会带来输入困难。

变量

✧所有的成员变量前加前缀_

publicclassDatabase

{

privatestring_connectionString;

}

✧所有的成员变量声明在类的顶端,用一个换行把它和方法分开

✧不要声明public和protected的成员变量,应用property.

✧建议局部变量在最接近使用它时再声明.

✧局部变量的名称要有意义.不可使用简称和无意义的名称诸如A,x1,x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n).下面给出了良好的例子:

intPosition;

stringCstomerName;

✧特殊情况可以考虑一个字母的变量:

Graphicg;

✧多个词的变量每个词首字母应该大写;

✧不能起太长的名字,应该尽量简洁,如下面的例子:

stringVariableUsedToStoreSystemInformation;//错误,太复杂了

stringSystemInformation;//正确,简单明了

stringSysInfo;//错误,过于简单

✧两个或者多个词组合的变量名过长时,可考虑使用缩写:

ListCorporationCustomerList;

可缩写为:

ListCorpCustList;

✧对于控件,应该指明控件的类型:

ButtonBtnNextPage;

DialogDlgOpenFile;

✧使用某个控件的值时,尽量命名局部变量.

注释

关键的语句(包括声明关键的变量)必须要写注释.

注释的规则繁多,这里仅提到其中一点:

正常的注释以/**/注视片断,单独的//注释单行,只用来注释暂时不用的代码,这样能够方便的采用代码注释工具控制代码的使用。

注释快捷键:

Ctrl+k+C

取消注释:

Ctrl+k+u

控件

控件类型

前缀

例子

CheckBox

chk

chkReadOnly

ComboBox

cbo

cboUser

CommandButton

cmd

cmdExit

CommonDialog

dlg

dlgFileOpen

Communications

com

comFax

CSCalendar

csc

cscCal2

DataControl

dat

datBiblio

Data-BoundComboBox

dbc

dbcLanguage

Data-BoundGrid

dbg

Data-BoundListBox

dbl

DirectoryListBox

dir

DriveListBox

drv

Drop-DownListBox

ddl

FileListBox

fil

Form

frm

Frame

fra

Grid

grd

HorizontalScrollBar

hsb

Image

img

ImDate

imd

ImFrame3D

imf

ImMask

imm

ImNumber

imn

ImText

imx

ImTime

imt

InputDate

ymd

Lable

lbl

Line

lin

ListBox

lst

ListView

lvw

MaskEdBox

med

MDIChildForm

mdi

Menu

mnu

MSFlexGrid

msg

MSTab

mst

OLE

ole

OLECTRAChart

och

OptionButton

opt

Picture

pic

ProgressBar

pgb

Report

rpt

RichTextBox

rtf

Shape

shp

Spin

spn

Spread

spr

Slider

sld

SSCommand

cmd

SSPanel

pnl

SSTab

sst

StatusBar

stb

TabStrip

tab

TextBox

txt

Timer

tmr

TreeView

tre

ToolBar

tlb

VBReport

vrp

VerticalScrollBar

vsb

四、缩写规范

注:

希望大家收集我们系统的可以需要缩写的词汇,以下作为参考,请大家先将自己的意见发送给cle,得到确认并加入缩写规范后方可使用

数据库名和表名

帐户:

acct

客户:

cust

代理商:

agt

产品包:

prodpkg

产品:

prod

服务:

svc

实名:

cns

排名:

kw

关键词资源:

kwrsc

操作员:

oper

用户名:

usrnm

密码:

pwd

报表:

rpt

会话:

session

其他动名词缩写

名词:

实时(帐户):

rt

预付款:

pp

金额:

amt

余额:

bal

信用额度:

credit

价格:

price

竞价价格:

bidprice

点击:

clk

排名名次:

pos

编号:

id

编码:

cd

名词后缀:

明细:

item

详情:

dtl

信息:

info

记录:

rec

状态:

st

动词:

统计:

stat

竞价:

bid

转帐:

trans

收费:

charge

付款:

pay

入帐:

deposit

改变:

chg

获取:

get

删除:

del

插入:

ins

查询:

qry

修改:

upd

检查:

chk

分配:

alloc

审核:

aprv(approve)

终止审核:

stopaprv

暂停审核(睡眠)pauseaprv

恢复审核(唤醒)resumeaprv

形容词:

每日的:

daily

每月的:

monthly

每年的:

annually

五、C#编码习惯.

1、一行不要超过80个字符.

2、代码的缩进.要用Tab,而不要用space.

3、尽量不要手工更改机器生成的代码,若必须更改,一定要改成和机器生成的代码风格一样..

4、不准使用goto系列语句.

5、不要声明public的event,应用事件访问器.

publicclassSource

{

privateEventHandlerm_NumberChangeEvent;

publiceventEventHandlerNumberChangeEvent

{

add

{

m_NumberChangeEvent+=value;

}

remove

{

m_NumberChangeEvent-=value;

}

}

}

6、类型转换的使用规则.

Animalanimal=newDog();

Dogdog=animalasDog;

if(dog!

=null)

{

}

7、生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string.

8、号"{"要新起一行.

publicclassAuthorAttribute:

Attribute

{

}

9、用"{}"包含if下的语句,即使只有一条语句.

10、switch语句一定要有default来处理意外情况.

11、尽量少使用三目运算符?

:

,而要使用if语句.

12、尽量不用使用this引用,除非是要调用类中的另一个Constructor.

publicclassPerson

{

publicPerson(stringname)

{

}

publicPerson():

this("Jim")

{

}

}

六、通用界面规范

1、遵循一致的准则,确立标准并遵循

无论是控件使用,提示信息措辞,还是颜色、窗口布局风格,遵循统一的标准,做到真正的一致。

这样得到的好处:

1:

使用户使用起来能够建立起精确的心里模型,使用熟练了一个界面后,切换到另外一个界面能够很轻松的推测出各种功能,语句理解也不需要费神理解

2:

降低培训、支持成本,支持人员不会行费力逐个指导。

3:

给用户统一感觉,不觉得混乱,心情愉快,支持度增加

做法:

项目组有经验人士,确立UI规范:

·美工提供色调配色方案,提供整体配色表

·界面控制程序人员、用户体验人员提出合理统一使用的控件库。

参考标准界面使用规范:

控件功能遵循行业标准,windows平台参见《Microsoft用户体验》(MSDN中有,中文已经翻译发行,项目组必须有一本)

控件样式在允许的范围内可以统一修改其样式、色调

参考其他软件先进操作,提取对本项目有用的功能,以使用,绝对不能盲从,漫无目的。

根据需要,设计特殊操作控件,准则为:

简化操作、达到一定功能目的

·界面实施人员与美工商榷控件可实现性,(如不实行此步骤,将会导致各自对对方工作不满意,也会产生不一致的混乱)。

重复叠代上述工作。

·建立合理化文档《UI标准》描述上述规范,

·强行界面设计者理解之,并作为开发准则,

·SQA人员进行监控开发人员是否遵循,及时告诫开发人员。

2、(Color)颜色使用恰当,遵循对比原则:

1:

统一色调,针对软件类型以及用户工作环境选择恰当色调:

如:

安全软件,根据工业标准,可以选取黄色,绿色体现环保,蓝色表现时尚、紫色表现浪漫等等,淡色可以使人舒适,暗色做背景使人不觉得累等

2:

如果没有自己的系列界面,采用标准界面则可以少考虑此方面,做到与操作系统统一,读取系统标准色表

3:

色盲、色弱用户,即使使用了特殊颜色表示重点或者特别的东西,也应该使用特殊指示符,?

quot;!

,?

着重号,以及图标等

4:

颜色方案也需要测试,常常由于显示器、显卡的问题,色彩表现每台机器都不一样,应该经过严格测试,不同机器进行颜色测试

5:

遵循对比原则:

在浅色背景上使用深色文字,深色背景上使用浅色文字,蓝色文字以白色背景容易识别,而在红色背景则不易分辨,原因是红色和蓝色没有足够反差,而蓝色和白色反差很大。

除非特殊场合,杜绝使用对比强烈,让人产生憎恶感的颜色。

6:

整个界面色彩尽量少的使用类别不同的颜色

itop色表

具体标准参考美术学统计学术标准。

色表的建设,对于美工在图案设计、包装设计上起着标准参考作用,对于程序界面设计人员设计控件、窗体调色起到有章可循的作用。

3、(Resource)资源

一个多姿多彩的人机交互界面,少不了精美的鼠标光标、图标以及指示图片、底图等。

1:

也需要遵循统一的规则,包括上述颜色表的建立,图标的建立步骤也应该尽可能的形成标准,参考itop的outlookbar图标设计标准

2:

有标准的图标风格设计,有统一的构图布局,有统一的色调、对比度、色阶,以及图片风格

3:

底图应该融于底图,使用浅色,低对比,尽量少的使用颜色。

4:

图标、图像应该很清晰的表达出意思,遵循常用标准,或者用户机器容易联想的到物件,绝对不允许画出默认奇妙的图案。

5:

鼠标光标样式统一,尽量使用系统标准,杜绝出现重复的情况,例如某些软件中一个手的形状就有4钟不同的样子。

如:

《如何创建XP图标》

附件:

Ito

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1