项目编码规范
文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]
项目开发规则
C#命名规范
1.1 命名空间
框架中所有命名空间的起始部分
业务中所有命名空间的起始部分实际结构和名称以业务为准
1.2 类
1) 名字应该能够标识事物的特性。
2) 名字可以有两个或三个单词组成,但通常不应多于三个。 3) 采用Pascal case,所有单词第一个字母大写。 4) 使用名词或名词短语命名类。 5) 少用缩写。
6) 不要使用下划线字符 (_)。
例:
public class FileStream public class Button
1.3 接口
和类命名规范相同,唯一区别是接口在名字前加上“I”前缀 例:
interface IDBCommand interface IButton
1.4 枚举
和类命名规范相同,唯一区别是枚举在名字前加上“E”前缀
例:
enum ESystemType
1.5 方法
1) 使用动词或动词短语命名方法。
2) 采用Pascal case,所有单词第一个字母大写。
3) 方法中的参数命名采用Camel casing,所有单词第一个字母大写,除了首字
母小写。
1.6 属性
1) 2)
使用名词或名词短语命名
采用Pascal case,所有单词第一个字母大写
3) 少用缩写 4)
不要使用下划线字符( _ )
1.7 变量
1) 变量名称 = 变量的前缀 + 代表变量含意的英文单词或单词缩写。
常用变量类型的前缀命名规则,定义如下: 类型 bool byte char double float integer long object string 前缀 bln byt char dbl flt int lng obj str 常用对象:
类型 前缀 Collection coll DateTime dt DataSet ds DataReader drd DataRow dr DataColumn dc Hashtable hs XmlDom xml XmlReader xr 2) 类的私有变量,在遵循第一条规则后,在其前加“m_”前缀。
例:
public class Hello {
private string m_strName; public string Name { {
} } }
3) 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义
get
return m_strName;
的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。
4) 不要使用原义数字或原义字符串,如for(int i = 1;i <= 7;i++)。而是使
用命名常数,如for(int i = 1;i <= NUM_DAYS_IN_WEEK;i++)以便于维护和理解。
1.8 常量
1) 常量的名字应该都大写,并且指出完整含义,单词之间用下划线(_)分
隔。 例:
const int PAGE_COUNT = 10;
1.9 控件
前台系统开发时,只能使用下面列出的控件,又不能满足要求请先和模块负责人联系。讨论通过后才可使用,规范修改前严禁使用未列出的控件。Framework有提供相应控件的,不得使用.Net标准控件
控件命名 = Window控件缩写前缀 + 变量名
控件类型 Button CheckBox ComboBox DateTimeBox GroupBox Label LookupBox NumericBox 命名 Btn Chk Cmb Dtb Grb Lbl Lkp Num Panel ProgressBar RadioButton TextBox MemoEdit TreeView DataGrid DataList Image DropDownList Pnl Pgb Rad Txt Memo Tvw Grid List Img Drp 1.10 数据集命名
规范
1) 普通
数据集命名以Ds开头
2) 作为查询参数的数据集命名以DsQuery开头,表名以QUERY_为前缀 3) 元素的所有字母大写,各字母以下划线“_”分割 4) 专用名词建议使用习惯缩写
5) 与后台交互的数据集不允许使用属性
1.11 注释
注释规范包括:类注释规范、类的属性、方法注释规范、代码间注释规范
1.11.1 类注释规范
类开始必须以以下形式书写类注释:
项目文件(*.csproj)签出后应当尽早签入,以避免影响其他人使用。 2. 3.
签入前必须先编译通过,编译通过后的文件允许签入 相关文件必须一次性签入,推荐整个项目一次性整体签入
4. 每日下班前,必须签入编译通过的版本。
总则:不管你用什么命名方法,所有的命名规则一定要统一,不要一会儿中文拼音一会儿英文等等。
1、采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。
2、每个数据库对象表,视图,字段,存储过程,不要用任何数据库的关键词作为名称。凡是能写注释的地方,应该写上注释,以便查看。
3、名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。
4、对长度也要有,最好不要超过30个字符,在PD设置生成时,部分数据库对象会自动截取到30位。
5、所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线)。不允许使用其他字符作为名称。
6、注释分单行和双行,在数据库对象如函数,存储过程,视图等,都需要在页头添加 数据库对象 表 前缀 命名说明 写法一:模块名_具体功能实体名,如用户角色表User_Role等, 写法二:直接写成UserRole,不用\"_\"来区分,看习惯和所用数据库。 列表名缩名 写_ 写法:表名缩写_具体内容 如用户角色表User_Role的名称:UR_Name, 如果是单个的表名,比如区域表Area,则可以写成Area_ID。 存储过程 视图 触发器 sp_ up_ proc_ vw_ trg_ 单个表直接用表名,并加功能,大小写均可(Add,Edit,Del,Query,Report,Validate等) vw_直接的内容,一般是用于查询Query和报表Report两种情形 方法一:trg_表名_方法名_[之前之后等] 比如:trg_User_Info_Insert 方法二: 触发器分为行级Row【R】和语句级Statement[【S】, 又分为after【A】,before【B】,instead of【I】, 方法又有三种Insert【I】,Update【U】,Detele【D】, 所以:如:trg_User_Info_RBI(代表语句级,之前,插入操作),有点专业,不知道命名规则的人看不明白。 函fn_ f_ fn_功能名称。一些是具体的操作函数,比如字符串处数 理,fn_SplitStr(参数)处理字符串,如果与模块相关,则fn_模块名称_具体方法 主键 pk_ pk_表名[或缩写]_列名 简洁的写法: 写法一:pk_表名, 写法二:pk_列名,因为列名设计时已经包含表的含义 外键 索引 fk_ fk_从表名字段_主表名字段。这个推荐 idx_ idx_表名_字段名(一个或多个)【可以在其后加U或者C,规则同触犯器】 推荐使用:idx_字段名 一是唯一Unique【U】与非唯一NonUnique【N】 一是聚集Cluster【C】与非聚集NonCluster【N】 约束 ck_ 1. 默认约束:df_表名_列名,df_列名 2.唯一约束:uni_表名_列名,uni_列名 3.检查约束:【ck_列名】,【ck_表名_列名】 4.主键约束:【pk_表名】,【pk_列名】 5.外键约束:fk_表名_REFERENCE_表名 序列 seq_ 写法1:seq_User_Info(因为每个表一般只有一个序列) 写法2:seq_UI_ID (因为表名含义已经包含在字段中) 写法3:seq_User_Info_UI_ID(表名加字段名) 事trans_ 务 游标 表空间 crs_ _data _idx _tmp _rbs trans_ crs_ @面向用户或者应用名,这个以用户名或者应用名加后缀组成 数据表空间以用户名+_+data命名 索引表空间以用户名+_+idx命名 专用临时表空间以用户名+_+tmp命名 专用回滚段表空间以用户名+_+rbs 命名 特殊处理: @LOB 段数据专用表空间后面再加_lobs 命名