项目开发规范性文档一:作用项目开发过程中为了增加程序的可读性和程序的健壮性,方便后期程序的调试和维护,所以需要在开发过程中统一技术规范二:目录1.系统框架中模块功能,文件目录和文件名的规范2.程序代码中文件名类名变量名接口名等规范3.代码的书写的规范4.数据库中表名字段名数据类型等规范三:详细内容说明常用的命名风格如下。
(1)Pascal风格:包含一到多个单词,每一个单词第一个字母大写,其他字母小写,其余字母均小写。
例如:CollegeStudent、HelloWorld等。
(2)Camel风格:包含一到多个单词,第一个单词首字母小写,其余单词首字母大写,其他字母均小写。
例如:name、gender、somePara等。
1.系统框架功能模块、文件目录和文件名的规范(1)功能模块命名规范数据访问层(DAL)——DataSet,与数据库打交道的唯一方式;位于最底层;数据控制层(DCL)——直接与DataSet打交道,通过实体工厂类产生实体对象和数据访问层打交道数据封装层(DPL)——BEAN 实体类;业务逻辑层(BLL)——与业务有关的操作,以上三层多不与业务逻辑有关;通用工具层(CTL)——与项目无关、可独立的类库。
如DBControl,Exception等;系统管理层(SysManeger)--系统管理常用接口比如系统日志系统版本系统信息等数据访问接口层(IDataFactory)--数据访问层的抽象工厂接口实体访问接口层(EntityFactory)--数据访问层的实体工厂类,即产生实体对象的实体工厂类(2)文件目录的命名规范images --项目图片的目录styles --项目css文件的目录javascript --项目中js文件的目录template --项目模板文件的目录subsystem --项目子系统或模块的目录(一般用因为名字来表示系统的模块) document --项目说明文档目录database --项目数据库目录(3)文件名的命名规范a.文件名尽量用一个或多个英文单词来表示做到见面知意的效果比如:Index.aspx Default.aspx Product.aspx OrderList.aspx等b.所有单词的首字母要大些c.尽量不要使用下划线来连接多个单词2.程序代码中的命名规范(1)命名空间命名空间命名采用Pascal风格,取名的一般规则如下。
CompanyName.TechnologyName例如:Microsoft.OfficeMyCompany.NamingRule.Test另外,需要用复数的时候要使用复数的名称空间名。
例如,使用System.Collections 而不是System.Collection。
但是,当遇到缩写形式时,通常不需要使用复数。
例如:使用System.IO而不是System.IOs。
名称空间和类不能使用同样的名字。
例如,有一个类被命名为Student后,就不要再使用Student作为一个名称空间。
(2)类C#中的类命名采用Pascal命名风格,取名的规则如下。
a.在为类命名前首先要知道该类的作用,尽量以名词或名词短语命名,使程序员通过类名提供的线索,便可以了解这个类的基本功能。
b.尽量不使用缩写,而用全写。
例如:使用CollegeStudent而不用CollegeStu。
c.不要使用任何类前缀(例如C)和后缀(例如Class)。
d.不要使用带下划线的字符(例如College_Student)。
代码19-1 类命名示例pulibc class CollegeStudent{}(3)私有成员类的成员变量采用Camel风格,并使用前缀m_或者_。
下面是一些合理的私有成员示例。
代码19-2 私有成员命名示例class CollegeStudent{private string m_name;private int m_age;}(4)属性类的属性采用Pascal风格。
下面是一些合理的属性示例。
代码19-3 属性命名示例class CollegeStudent{public string Name{set{if(value!=null)this.m_name=value;}get{return this.m_name;}}}(5)方法通常每个方法都是执行类的一个“动作”,所以对方法的命名应该清楚地说明该方法是做什么的,用“动词+名词”的结构可以更加清晰的表达这种含义。
例如,用ShowInfo()代替Info(),用LoadData()代替DataLoad(),这样做的目的是更加明确这个方法的功能。
代码19-4 方法命名示例class CollegeStudent{public void EnterSchool() {…}}另外,常常使用一些前缀来表达方法的含义,如下。
a. Is的含义为问一个关于某样事物的问题。
例如:IsMale()。
b. Get的含义为取得一个数值。
例如:GetInfo()。
c. Set的含义为设定一个数值。
例如:SetInfo()。
(6)方法参数C#中,方法的参数采用camel风格。
另外,有些程序员习惯于使用数据类型前缀,用来确定参数的数据类型。
例如strName、nAge等。
代码19-5 方法参数命名示例class CollegeStudent{public voi d SetInfomation(string name,int age){…}}(7)接口同方法相似,接口采用Pascal命名规范,取名的规则如下。
a.使用I作为前缀,表示其为一个接口。
b.使用名词或名词短语,或者描述行为的形容词来命名接口。
例如IComponent (描述性名词)、ICustomAttributeProvider(名词短语)和IPersistable(形容词)。
c.尽量不使用缩写,而用全写。
例如:使用IComponent而不用IComp。
d.不要使用带下划线的字符(例如ICustom_AttributeProvider)。
代码19-6 接口命名示例class CollegeStudent{public interface IPlay{};}(8)变量局部变量采用camel风格,并尽量使用描述性强的名词或名词短语,并且不使用缩写,如使用number,而不使用num。
下面是一些变量命名的示例。
int number=0;string sqlString=" ";double averageScore=0.0;CollegeStudent collegeStudent=new CollegeStudent();(9). 常量和全局变量使用所有字母大写的形式const int AGE=10;Static int NUMBER=100001;3.代码的书写的规范a.缩进和间隔--代码要有相应的缩进量和相应的间隔这让代码看起来有一定的层次感觉有利于增加代码的可读性b.注释--重要的方法和模块要有相应的注释,注释内容一行以内的用单行注释,超过一行的用多行注释的c.多类单文件--一个类尽量放在一个文件中,避免多个类放在一个文件中造成代码混乱d.大小括号位置要对齐--大小括号的位置尽量对齐也就是要有相应的缩进和间隔4.数据库中表名字段名数据类型等规范(1)数据库取名规范a. 数据库名一般使用小写字母的形式例如:eshopdb db_eduaskb.数据库取名一般有两种方式:名词+db 或者db_名词例如:eshopdb db_eduask 但推荐使用db_eduaskc.数据库命名一般用全名不要用缩写比如不用eshdb而是用eshop(2)表名取名规范a. 表名一般使用小写字母的形式例如:productstab tab_productsb.表名取名一般有两种方式:名词+db 或者db_名词例如:eshopdb 和db_eduask 但推荐使用tab_productsc.表名命名一般用全名不要用缩写比如不用tab_pro而是用tab_products(3)字段名取名规范a.字段名一般使用数据类型缩写+"_"+描述的形式例如n_name n表示数据类型,name表示描述字段类型简写:字符型为c,整型为i,逻辑型为b,货币类型为m,浮点型为f,日期型为d,时间型为t,二进制为bl,文本类型为t,varchar类型为v,nvarchar类型为nv等。
b.字段名一般采用全部小写的形式(4)数据类型统一采用小写char(10) nvarchar(10) text int等(5)索引(index)的命名idx_desc(6)存储过程的命名sp_desc(7)视图的名词view_desc(8)触发器的命名trg_desc(9)SQL语句书写规范SQL语句中,SQL关键字全部大写,其它的遵照"数据库命名约定"。
例如:SELECT * FROM tabNewsInfo WHERE f_UserName=''ORDER BY i_autoid(10)数据字典字段名数据类型约束是否主键描述i_id int 自增是序号v_name varchar(10) 非空否姓名。