【转载】项目开发规范性文档(你想进入公司或与人合作开发东西就看)

项目开发规范性文档

一:作用
项目开发过程中为了增加程序的可读性和程序的健壮性,方便后期程序的调试和维护,所以需要在开发过程中统一技术规范

二:目录

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.Office
MyCompany.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 void 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_eduask
b.数据库取名一般有两种方式:名词+db 或者 db_名词   例如:eshopdb   db_eduask  但推荐使用db_eduask
c.数据库命名一般用全名不要用缩写比如 不用eshdb而是用eshop



(2)表名取名规范
a. 表名一般使用小写字母的形式 例如:productstab  tab_products
b.表名取名一般有两种方式:名词+db 或者 db_名词   例如:eshopdb 和db_eduask 但推荐使用tab_products
c.表名命名一般用全名不要用缩写比如 不用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)  非空        否         姓名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值