程序开发规范.docx
《程序开发规范.docx》由会员分享,可在线阅读,更多相关《程序开发规范.docx(14页珍藏版)》请在冰豆网上搜索。
程序开发规范
程序开发规范(初稿)
1.总体要求
1、必须严格执行本规范以确保源代码的可读性及可维护性。
2、所有的程序文件都必须有注释文字,并严格按照本规范中的“注释规范”书写。
2.程序命名规范
2.1.概述
1、务必做到结构清晰,逻辑清楚
2、工程相关文件清楚、明确、分类合理
3、尽量使用常用标准英文单词,特殊地方使用中文拼音。
4、如果有名词,必须使用单数形式。
5、使用大小写混合格式,将连接的几个单词首字母大写。
6、如果使用缩写,尽量使用常用缩写样式。
7、以做到能别人能够轻松读懂,自己一年后可以轻松读懂为最高标准。
8、所有文件命名均采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线_组成,共63个字符。
不能出现其他字符(注释除外)
9、系统采用Pascal大小混写模式命名。
特殊说明除外。
2.2.文件命名规范
2.2.1.文件夹命名
文件夹命名一般采用英文,长度一般不超过20个字符,使用大小写混合格式,将连接的几个单词首字母大写。
除特殊情况才使用中文拼音,一些常见的文件夹命名如:
Images(存放图形文件),Javacripts(存放Javascript脚本),,Media(存放多媒体文件)等。
2.2.2.网页文件命名
文件夹命名一般采用英文,长度一般不超过20个字符,使用大小写混合格式,首字母小写,其余将连接的几个单词首字母大写。
除特殊情况才使用中文拼音,采用网页性质加网页功能的方式来命名。
如一下载页面命名为frmDownLoad.aspx。
网页性质缩小如下:
网页
缩写
示例
普通页面
frm(可省略)
frmDownLoad.aspx(download.aspx)
用户控件
wctrl
wctrlPage.ascx
2.2.3.类文件命名
1、类。
类名使用camel大小写形式.
对于页面中使用的类,通常情况下与前台页面的文件名是一致的,比如,对于一个页面frmHelloWorld.aspx,该类放置于APP_CODE文件下,其类名会如下定义:
publicclassfrmHelloWorld
{
…
}
对于作为类库的类,则应按照约定加一定的前缀,根据不同的类的类型添加不同的前缀,表明为类库使用类。
该类放置于App_Code或类库项目中比如一个通用类可以如下定义:
publicclassclsHelloWorld
{
…
}
自然的,相应文件名也是遵循此定义格式,在本例中,为clsHelloWorld.cs
类中的方法都使用camel大小写形式
publicclassclsHelloWorld
{
voidsayHello(stringuserName)
{
…
}
}
变量和方法中的参数使用camel大小写形式
publicclassclsHelloWorld
{
inttotalCount=0;
voidsayHello(stringuserName)
{
stringfullMessage="Hello"+userName;
…
}
}
2、枚举和结构
同样必须以名词或名词短语命名。
命名规则同类,最好体现枚举或结构的特点,如:
EnumenumMonth,定义月的枚举
EnumstcStudent定义学生的结构体
3、接口
与其他类型不同,接口必须要由I作为前缀,并用形容词命名,其它命名方式与类相同,突出表现实现接口的类将具有什么能力:
InterfaceISortable
上述所有规则的共同特点是,每个组成名称的词语除接口的前缀大写外,其余都必须是小写开头,禁止完全大写或小写的名称。
类文件
前缀
类(Class)
cls
枚举(Enum)
Enum
接口(Interface)
I
抽象类
abs
密封类
sea
Internal类
int
2.3.类及函数命名规范
类名与类文件名要相同。
无论是函数还是子程序,方法都必须以动宾短语来构成,无需区分函数和子程序,采用大小写混写模式。
例如:
voidopenUrl(stringstrUrlName)
参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。
根据参数的意思来命名参数,而不是根据参数的种类来命名。
我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。
但是偶尔使用根据类型命名的参数名也是完全可以的。
不要使用保留参数。
如果在下一个版本中需要更多的数据,可以增加进来。
例如:
TypegetType(stringtypeName)
stringformat(stringformat,object[]args)
2.4.变量命名规范
1、使用camel大小写形式
2、所有变量都必须有前缀,前缀使用2—4个字母,全部小写。
3、避免与数据字典中的数据元素名相同。
4、避免与函数名、方法名、类名和属性名相同。
5、避免使变量名为另一个变量名的一部分。
6、布尔变量名应该包含Is,如blnFileIsFound。
类型
前缀
示例
Array
arr
arrShoppingList
Boolean
bln
blnIsPostBack
Byte
byt
bytPixelValue
Char
chr
chrDelimiter
DateTime
dtm
dtmStartDate
Decimal
dec
decAverageHeight
Double
dbl
dblSizeofUniverse
Integer
int
intRowCounter
Long
lng
lngBillGatesIncome
Object
obj
objReturnValue
Short
shr
shrAverage
Single
sng
sngMaximum
String
str
strFirstName
2.5.控件命名规范
命名与变量命名规则相同,前缀如下:
类型
前缀
示例
AdRotator
adrt
adrtTopAd
Button
btn
btnSubmit
Calendar
cal
calMettingDates
CheckBox
chk
chkBlue
CheckBoxList
chkl
chklFavColors
CompareValidator
valc
valcValidAge
CustomValidator
valx
valxDBCheck
DropDownList
drop
dropCountries
HyperLink
lnk
lnkDetails
Image
img
imgAuntBetty
ImageButton
ibtn
ibtnSubmit
Label
lbl
lblResults
LinkButton
lbtn
lbtnSubmit
ListBox
lst
lstCountries
Panel
pnl
pnlForm2
PlaceHolder
plh
plhFormContents
RadioButton
rad
radFemale
RadioButtonList
radl
radlGender
RangeValidator
valg
valgAge
RegularExpression
vale
valeEmail_Validator
Repeater
rpt
rptQueryResults
RequiredFieldValidator
valr
valrFirstName
Table
tbl
tblCountryCodes
TableCell
tblc
tblcGermany
TableRow
tblr
tblrCountry
TextBox
txt
txtFirstName
ValidationSummary
vals
valsFormErrors
XML
xmlc
xmlcTransformResults
2.6.ADO.NET控件命名规范
命名与变量命名规则相同,前缀如下:
类型
前缀
示例
Connection
conn
connNorthwind
Command
cmd
cmdReturnProducts
Parameter
parm
parmProductID
DataAdapter
dad
dadProducts
DataReader
dtr
dtrProducts
DataSet
dst
dstNorthWind
DataTable
dtb
dtblProduct
DataRow
drow
drowRow98
DataColumn
dcol
dcolProductID
DataRelation
drel
drelMasterDetail
DataView
dvw
dvwFilteredProducts
GridView
gdv
gdvStudent
DetailsView
dtv
dtvStudent
DataGrid
dgrd
dgrdTitles
DataList
dlst
dlstTitles
3.系统结构规范
根目录下,只存在三个文件,Default.aspx, Error.aspx,Web.config,其余页面全部分布到各个文件夹中。
根目录下,存在基本能用文件夹,用途固定,不能进行改名,列表如下。
文件夹名称
用途
App_Code
存放系统所用类文件
App_Control
存放系统所建立用户控件
App_Theme
用户样式所在文件夹
Bin
存放引用DLL文件
Example
开发人员测试用文件夹
Help
存放系统帮助文件
Image
存放系统使用的照片、flash等文件
JavaScript
存放系统使用的javascript
UpLoad
存放系统上传文件
Log
存放系统日志文件
FrmCommon
存放能用页面,如能用下载页面。
Style
存放样式
4.数据库命名规范
1.命名规范概述
我们约定,数据库对象按实际名字组组成,以中文拼音为基准,而常用字段可用英语字符来表示。
合法的命名方式类似如下。
名称:
name
接转站:
zjz
各使用英文列表
汉语
英文
序列号
ID
名称
NAME
性别
GENDER
电话
PHONE
地址
ADRESS
备注
REMARK
日期
DATATIME
标题
TITLE
内容
CONTENT
IP地址
IP
编码
CODE
网页地址
URL
附件
FILEPATH
2.数据库对象命名规范
我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。
对象名字由前缀和实际名字组成,长度不超过30。
对象类型缩写小写字母如下。
表TB
视图VI
存储过程SP
函数FN
3.表命名规范
前缀:
项目名称_功能_类型缩写小写字母(表除外,可省略不写),功能包括系统使用表格,系统数据表格等。
系统使用表格功能缩写为sys,
例如,西北局用户表:
XBJ_SYS_USER,表明为西北局项目系统使用用户信息表。
西北局工程模板表:
XBJ_DATA_GCMB,表明为西北局系统使用工程模板表。
4.字段命名规范
使用命名概述方式。
5.视图命名规范
我们约定,项目名称_功能_类型缩写小写字母组成,中间用下划线连接。
前缀:
使用小写字母vi,表示视图。
因此,合法的视图名类似如下。
XBJ_SYS_VI_USERINFO
6.存储过程命名规范
我们约定,项目名称_功能_类型缩写小写字母组成,中间用下划线连接。
前缀:
使用小写字母sp,表示存储过程。
例如
XBJ_SYS_SP_INSERTUSER
7.SQL语句规范
我们约定,所有SQL关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等。
5.注释规范
a)注释概述
1.注释必须使用中文及中文的标点符号。
2.每行注释的最大长度为100个字符。
3.将注释与注释分隔符用一个空格分开。
4.不允许给注释加外框。
5.编码的同时书写注释。
6.重要变量必须有注释。
7.典型算法必须有注释。
8.在循环和逻辑分支的地方必须写上注释。
9.程序段或语句的注释在程序段或语句的上一行。
10.在代码交付之前,必须删掉临时的或无关的注释和调试信息。
b).cs文件的注释
所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等
例如:
///功能:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
///日期:
2008.7.19
///內容:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
///作者:
XXX
c)函数过程注释
所有的函数体开头都要加上注释,所以注释使用.NET注释规范。
例如:
///
///构造函数
///
///示例参数1
///示例参数2
PublicvoidupgradeThread(stringis_xxx1,stringis_xxx2)
{
//…
}
d)常量变量注释
所有的常量变量,无论是全局还是局部使用的,凡是对代码整体起到关键性做用的都需要加上注释。
例如:
publicstringStorePath='';//当前线程指向的备份文件本地保存路径
e)代码修改注释
当开发者维护以前的程序代码时,需要在修改处的开始及结尾,加上自己的注释信息。
例如:
//************开始2008-8-19张三 修正了XXX问题******
略…
//************结束2008-8-19结束**********************
6.编程准则
A.变量使用规范
1、不允许随意定义全局变量。
2、一个变量只能有一个用途;变量的用途必须和变量的名称保持一致。
3、所有变量都必须在类和函数最前面定义,并分类排列。
B.数据库操作规范
1、查找数据库表或视图时,只能取出确实需要的那些字段。
2、清楚明白地使用列名,而不能使用列的序号。
注:
不能使用Select*fromtable方式。
C.对象使用规范
1、尽可能晚地创建对象,并且尽可能早地释放它。
D.模块设计原则
1、公用的函数和类必须放在指定类中。
2、函数功能单一,不允许一个函数实现两个及两个以上的功能。
4、函数与函数之间只允许存在包含关系,而不允许存在交叉关系。
即两者之间只存在单方向的调用与被调用,不存在双向的调用与被调用。
5、系统分为三层结构,分别为业务层、数据层、表现层,每层各司其职,不能混乱。
注:
在业务层、表现层中不能出现SQL语句及连接数据库操作语句。