文档库 最新最全的文档下载
当前位置:文档库 › C#编码规范2

C#编码规范2

C#编码规范2
C#编码规范2

C#编码规范目录

1目的 (3)

2范围 (3)

3规范内容 (3)

3.1 文件规范 (3)

3.1.1文件命名 (3)

3.1.2文件内容格式 (3)

3.2 代码格式 (4)

3.3 注释(Comment)规范 (5)

3.3.1模块(类)注释规范 (5)

3.3.2类属性注释规范 (6)

3.3.3方法注释规范 (6)

3.3.4代码间注释规范 (6)

3.4 变量(Variable)命名规范 (6)

3.4.1程序文件(*.cs)中的变量命名规则 (6)

3.4.2控件命名规则 (8)

3.4.3常量命名规范 (9)

3.4.4类(Class)命名规范 (9)

3.4.5接口(Interface)命名规范 (10)

3.4.6方法(Method)命名规范 (10)

3.4.7命名空间(NameSpace)命名规范 (10)

4实施建议 (10)

1 目的

为了保证企业编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。编码规范对于程序员而言尤为重要,有以下几个原因:

- 一个软件的生命周期中,80%的花费在于维护

- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护

- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码

- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品

为了执行规范,每个软件开发人员必须一致遵守编码规范。每个人。

2 范围

适用于企业所有基于C#.NET平台的软件开发工作。

3 规范内容

3.1 文件规范

3.1.1 文件命名

与类名名称相同

3.1.2 文件内容格式

开头注释

引用

命名空间

类体

变量(代理事件):用#region 变量………#endregion包括

属性:用#region属性………#endregion包括

构造:

方法(事件的实现):用#region方法………#endregio n包括

3.2 代码格式

u 所有的缩进为4个空格,以空格代替Tab 。选中”插入空格(P)”

u 在代码中垂直对齐左括号和右括号。

if(x==0)

{

Response.Write("用户编号必须输入!");

}

不允许以下情况:

if(x==0) {

Response.Write("用户编号必须输入!");

}

或者:

if(x==0){ Response.Write("用户编号必须输入!");}

u 为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏

u 当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。

u 每一行上放置的语句避免超过一条。

u 在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。

例:

int j = i + k;

而不应写为

int j=i+k;

u 将大的复杂代码节分为较小的、易于理解的模块。

u 编写SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。

u 将每个主要的SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如:SELECT FirstName, LastName

FROM Customers

WHERE State = 'WA'

3.3 注释(Comment)规范

注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释

3.3.1 模块(类)注释规范

模块开始必须以以下形式书写模块注释:

///

///定义某某类的方法

///

///作者

///email@https://www.wendangku.net/doc/8a17409357.html,

///2003-12-17

如果模块有修改,则每次修改必须添加以下注释:

///备注版本修改信息,修改了那些,时间,每次依次增加remark 3.3.2 类属性注释规范

在类的属性必须以以下格式编写属性注释:

///

///属性说明

///

3.3.3 方法注释规范

在类的方法声明前必须以以下格式编写注释

///

/// 说明:<对该方法的说明>

///

/// <参数说明>

/// /<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义> ///

3.3.4 代码间注释规范

代码间注释分为单行注释和多行注释:

单行注释:

//<单行注释>

多行注释:

/*多行注释1

多行注释2

多行注释3*/

代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。

3.4 变量(Variable)命名规范

3.4.1 程序文件(*.cs)中的变量命名规则

程序中变量名称= 变量的前缀+代表变量含意的英文单词或单词缩写。

1.类模块级的变量类型的缩写作前缀

public class hello

{

private string s_Name;

private DateTime dt_Date;

}

2.类的属性所对应的变量,采用属性名前加类型的缩写作前缀前缀的形式

public class hello

{

private string s_Name;

public string Name

{

get

{

return m_Name;

}

}

}

3.过程级的变量不使用前缀

public class hello

{

void say()

{

string SayWord;

}

}

4.过程的参数使用“p_”作为参数

public class hello

{

void say(string p_SayWord)

{

}

}

补充说明:

针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;如果有冲突的情况下,可以重复e,比如:ee。

Try

{

//your code

try

{

//code

}

catch(Exception ee)

{

//your code

}

}

catch(Exception e)

{

//your code

}

补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例

例:

try

{

//your code

}

catch( Exception )

{

}

5.鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.

6.即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如i 或j。

7.在变量名中使用互补对,如min/max、begin/end 和open/close。

8.不要使用原义数字或原义字符串,如for( i = 1,i< 7;i++)。而是使用命名常数,如for( i = 1,i< NUM_DAYS_IN_WEEK ; i++) 以便于维护和理解。

3.4.2 控件命名规则

控件命名=Web控件缩写前缀+ “_” +变量名

3.4.3 常量命名规范

常量名也应当有一定的意义,格式为NOUN或NOUN_VERB。常量名均为大写,字之间用下划线分隔。

例:

private const bool WEB_ENABLEPAGECACHE_DEFAULT = true;

private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600;

private const bool WEB_ENABLESSL_DEFAULT = false;

注:

变量名和常量名最多可以包含255 个字符,但是,超过25 到30 个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 或30 个字符应当足够了。

3.4.4 类(Class)命名规范

1.名字应该能够标识事物的特性。

2.名字尽量不使用缩写,除非它是众所周知的。

3.名字可以有两个或三个单词组成,但通常不应多于三个。

4.在名字中,所有单词第一个字母大写,缩写都要大写。

例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。

5.使用名词或名词短语命名类。

6.少用缩写。

7.不要使用下划线字符(_)。

例:

public class FileStream

public class Button

public class String

3.4.5 接口(Interface)命名规范

和类命名规范相同,唯一区别是接口在名字前加上“I”前缀

例:

interface IDBCommand;

interface IButton;

3.4.6 方法(Method)命名规范

和类命名规范相同。

另:方法开头尽量使用e文动词表示,

如:GetMoney , SetMoney

3.4.7 命名空间(NameSpace)命名规范

和类命名规范相同。

4 实施建议

l 先对编码人员进行“专题”培训,让他们掌握此编码规则。

l 系统设计人员、编码人员、测试人员可以较好的建议,适当地修改完善《C#编码规范》l 对本文档修改要做出记录,变更版本号。

阿里巴巴编码规范题库

1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用Executors 去创建,而是通过ThreadPoolExecutor 的方式) 多选3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。 多选5.根据《阿里巴巴Java开发手册》,以下功能必须进行水平权限控制校验的有:ABCD A .订单详情页面。 B .类目管理后台。 C .店铺装修后台。 D .订单付款页面 多选1.关于多线程并行处理定时任务的情况,下列哪些说法符合《阿里巴巴Java开发手册》:BCD A .推荐使用Timer方式处理。 B .推荐使用ScheduledExecutorService方式处理。 C .Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行。 D .ScheduledExecutorService并发运行多个定时任务时,其中某线程抛出异常,不会影响到其它线程的继续运行。

软件工程-数据库设计规范与命名规则

数据库设计规范、技巧与命名规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据, 满足用户信息要求和处理要求。 数据库设计的各阶段: A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。 B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。 C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。 然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。 D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis, 简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一 DBMS 支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术, 用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示:

数据库设计和编码规范

数据库设计和编码规范 Version

目录

简介 读者对象 此文档说明书供开发部全体成员阅读。 目的 一个合理的数据库结构设计是保证系统性能的基础。一个好的规范让新手容易进入状态且少犯错,保持团队支持顺畅,系统长久使用后不至于紊乱,让管理者易于在众多对象中,获取所需或理清问题。 同时,定义标准程序也需要团队合作,讨论出大家愿意遵循的规范。随着时间演进,还需要逐步校订与修改规范,让团队运行更为顺畅。 数据库命名规范 团队开发与管理信息系统讲究默契,而制定服务器、数据库对象、变量等命名规则是建立默契的基本。 命名规则是让所有的数据库用户,如数据库管理员、程序设计人员和程序开发人员,可以直观地辨识对象用途。而命名规则大都约定俗成,可以依照公司文化、团队习惯修改并落实。 规范总体要求 1.避免使用系统产品本身的惯例,让用户混淆自定义对象和系统对象或关键词。 例如,存储过程不要以sp_或xp_开头,因为SQL SERVER的系统存储过程以 sp_开头,扩展存储过程以xp_开头。 2.不要使用空白符号、运算符号、中文字、关键词来命名对象。 3.名称不宜过于简略,要让对象的用途直观易懂,但也不宜过长,造成使用不方 便。 4.不用为数据表内字段名称加上数据类型的缩写。 5.名称中最好不要包括中划线。

6.禁止使用[拼音]+[英语]的方式来命名数据库对象或变量。 数据库对象命名规范 我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。避免中文和保留关键字,做到简洁又有意义。前缀就是要求每种对象有固定的开头字符串,而开头字符串宜短且字数统一。可以讨论一下对各种对象的命名规范,通过后严格按照要求实施。例如:

(整理)06 中国移动网络代维管理系统技术规范 编码规范分册V1.1.

中国移动通信企业标准 中国移动网络代维管理系统技术规范 编码规范分册 版本号:1.1.0 2012年9月发布2012年9月实施 中国移动通信集团公司

目录 1 编号规范 (2) 1.1 省级代维组织编号 (2) 1.2 地市级以下代维组织编号 (2) 1.3 人员编码 (2) 1.4 工单编号 (2) 1.5 公告编号 (2) 1.6 业务联系函编号 (2) 1.7 代维资料编号 (3) 2 编码规范 (3) 2.1 省份代码 (3) 2.2 地市 (4) 2.3 工作类别 (5) 2.4 代维专业类型 (6) 2.5 紧急程度 (6) 2.6 满意度 (6) 3 修订记录 (6)

前言 《中国移动网络代维管理系统技术规范》规定了中国移动网络代维管理系统的建设目标、建设原则、体系结构、功能结构、接口要求、技术要求,供中国移动内部和系统开发、集成厂商共同使用;是中国移动网络代维管理系统建设所依据的技术规范,用于指导全网代维管理IT化手段建设、开发与应用。 本分册是《中国移动网络代维管理系统技术规范》系列分册之一。《中国移动网络代维管理系统技术规范》系列分册的结构、名称如下: 本规范由中国移动通信集团公司网络部制订,由集团公司网络部归口和解释。 本规范起草单位:中国移动通信集团公司网络部。 本规范主要起草人:王晓琦、石晓萍、王烨、周林、夏凡超、王鹏、徐智岳、杜传业、马松、吴丹、贺军、云雅琼、杜珍祥、童克波、吕晓敏、周云斌、陈为国、陆旻、许贤、周敏、郭艺娴、赵珺、陈宏宇、于洪亮、吕敏、徐铁瑛、诸圣勇、谭凌凯、文晓林、唐继志、霍廷瑞、杨竹。

1 编号规范 1.1省级代维组织编号 DW+3位自增序号,如:DW001;建议加移动标识,如:CMJSDW001、CMZJDW001 1.2地市级以下代维组织编号 以江苏为例,5级组织结构进行参考,如下: 办事处:上级组织编号+所属地市编码+2位自增序号,如:DW0011401 项目部:上级组织编号+ 2位自增序号,如:DW001140101 驻点:上级组织编号+ 2位自增序号,如:DW00114010101 小组:上级组织编码+3位自增序号,如:DW00114010101001 1.3人员编码 DW+12位人员编码,关于代维人员编码规则(共计12位数字)如下: 1-3位代维公司编码; 4-5位地市编码; 6-9位代维人员加入系统年月,如0902; 10-13位代表入职代维公司的第几个员工。从0001开始的4位自增序号。 1.4工单编号 1.5公告编号 1.6业务联系函编号

项目编码规范

项目代码编程规范 1.应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JAVABEAN,EJB)JS代码、HTML代码及数据库设计均应遵守这个规范。同时,也可作为其它项目的参考。 2.设计类和方法 2.1. 创建具有很强内聚力的类 方法的重要性往往比类的重要性更容易理解,方法是指执行一个独立逻辑的一段代码。类常被错误的视为是一个仅仅用于存放方法的容器。有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入单个类之中。 之所以不能正确的认识类的功能,原因之一是类的实现实际上并不影响程序的执行。当一个工程被编译时,如果所有方法都放在单个类中或者放在几十个类中,这没有任何关系。虽然类的数量对代码的执行并无太大的影响,但是当创建便于调试和维护的代码时,类的数量有时会带来很大的影响。 类应该用来将相关的方法组织在一起。 当类包含一组紧密关联的方法时,该类可以说具有强大的内聚力。当类包含许多互不相关的方法时,该类便具有较弱的内聚力。应该努力创建内聚力比较强的类。 大多数工程都包含许多并不十分适合与其他方法组合在一起的方法。在这种情况下,可以为这些不合群的方法创建一个综合性收容类。 创建类时,应知道“模块化”这个术语的含义是什么。类的基本目的是创建相当独立的程序单元。 2.2. 创建松散连接和高度专用的方法 2.2.1.使所有方法都执行专门的任务 每个方法都应执行一项特定的任务,它应出色的完成这项任务。应避免创建执行许多不同任务的方法。 创建专用方法有许多好处。首先调试将变得更加容易。 2.2.2.尽量使方法成为自成一体的独立方法 当一个方法依赖于其他方法的调用时,称为与其他方法紧密连接的方法。紧密连接的方法

代码规范率

竭诚为您提供优质文档/双击可除 代码规范率 篇一:数据库设计编码规范 sqlserve数据库设计规范 一、数据库命名规范: 对象前缀命名:前缀命名一般用小写 表的前缀:业务模块组名前缀 数据列的前缀:一般采用列的数据类型做前缀 存储过程前缀:udp,系统存储过程(sp) 自定义函数前缀:udf(userdefinefunction) 视图前缀:udv(userdefineView)表示用户自定义视图自定义规则前缀:udr(userdefinerule)用户自定义规则 自定义约束前缀:uck(userchecker)用户自定义约束 索引前缀:idx(index)表示索引 主键前缀:pk(primarykeys)表示主键 数据列的前缀示例: 二、数据库设计规范: 1、每个表中都可以考虑添加的的几个有用的字段

Recoredid,记录唯一编号,不建议采用业务数据作为记录的唯一编号 creationdate,在sqlserver下默认为getdate() Recordcreator,在sqlserver下默认为notnulldeFaultuseR RecordVersion,记录的版本标记;有助于准确说明记录中出现null数据或者丢失数据的原因 2、数据类型: 字符类型 一般不建议采用char而采用varchar数据类型,除非当这列数据的长度特别固定时可以考虑用char。 数值类型 如果表示金额货币建议用money型数据, 如果表示科学记数建议用numeric数据类型 记录标识 一般采用int类型标识唯一一行记录。 自增or非自增 3、索引: 所有的表都应该有一个主键索引,这对提高数据库的性能很有帮助 根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的

工程项目编码规则及管理办法

中船重工船业有限公司工程项目编码规则及管理办法 1. 范围 本办法规定公司各种工程编码分类和编码实施规则及其管理办法。 本规则适用于公司内部所有工程项目的编码计划编制、领发料、财务核算、计算机信息处理等。 2. 工程编码类别及其编制规则说明 2.1工程编码类别分为船舶产品工程、非船产品工程、基建工程、自营工程、设备大修、设备维修、设备技改、安全设施及其它工程。 2.2产品工程编码的编制方法 2.2.1 大吨位运输船舶(千吨位以上)工程号的编制方法 2.2.1.1 编码共6 位。前两位为船舶产品载重吨位或承载体积前两位数;第三位为同载重吨位船舶型号,无型号用0 表示,有型号时分为Ⅰ型、Ⅱ型、Ⅲ型等,分别用1、2、3表示,以此类推;第四、五、六位为公司大吨位运输船舶接单顺序号。 2.2.1.2 图示

例如:公司接单第31 艘70000 吨散货船工程编码为:700031 。 公司接单第18 艘33000 吨散货Ⅰ型船工程编码为:331018 。 2.2.2 商务船工程号的编制办法 2.2.2.1 编码共6位。前两位统一名称为SW(商务);第三、四两位为商务船的长度,五、六两位为商务船接单顺序号。 2.2.2.2 图示 例如:公司接单第1 艘35 米长的商务船,工程号为:SW3501 2.2.3 小吨位(百吨位)运输船工程号的编制办法 2.2. 3.1 编码共6 位。前两位统一名称为YS(运输);第三、四两位为运输船的吨位前两位,五、六两位为公司小吨位运输船接单顺序号。 2.2. 3.2 图示 例如:公司接单第1 艘载重吨为20 吨的运输船,工程号:YS2001

数据库设计方法、规范与技巧

数据库设计方法、规范与技巧 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系} 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,高峰期流量} 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流, 组成:{数据结构},数据量,存取方式} 处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}, 处理:{简要说明}} 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示: 2.1 第零步——初始化工程

数据库设计编码规范

SQL Serve数据库设计规范 一、数据库命名规范: 对象前缀命名:前缀命名一般用小写 表的前缀:业务模块组名前缀 数据列的前缀:一般采用列的数据类型做前缀 存储过程前缀:udp ,系统存储过程(sp) 自定义函数前缀:udf(User define function) 视图前缀:udv(User Define View)表示用户自定义视图 自定义规则前缀:udr(User Define rule)用户自定义规则 自定义约束前缀:uck(User Checker)用户自定义约束 索引前缀:idx(Index)表示索引 主键前缀:pk(primary keys)表示主键 数据列的前缀示例: 编号 1 2 3 4 5 6 7 数据类型char varchar int smallint datetime money numeric 前缀 c vc i si dt m n 编号8 9 10 11 12 13 数据类型decimal float bit binary image text 前缀 d f b b img tx 二、数据库设计规范: 1、每个表中都可以考虑添加的的几个有用的字段 RecoredID,记录唯一编号,不建议采用业务数据作为记录的唯一编号 CreationDate,在SQL Server 下默认为GETDATE() RecordCreator,在SQL Server下默认为NOT NULL DEFAULT USER

RecordVersion,记录的版本标记;有助于准确说明记录中出现null 数据或者丢失数据的原因 2、数据类型: 字符类型 一般不建议采用char而采用varchar数据类型,除非当这列数据的长度特别固定 时可以考虑用char。 数值类型 如果表示金额货币建议用money型数据, 如果表示科学记数建议用numeric数据类型 记录标识 一般采用int类型标识唯一一行记录。 自增or 非自增 3、索引: 所有的表都应该有一个主键索引,这对提高数据库的性能很有帮助 根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的候选字段。 把经常一起出现的字段组合在一起,组成组合索引,组合索引的字段顺序与主键一样,也需要把最常用的字段放在前面,把重复率低的字段放在前面。 一个表不要加太多索引,因为索引影响插入和更新的速度。 4、保证数据的一致性和完整性: 主外键关联 SQL SERVER的主键同时是一个唯一索引 外键是最高效的一致性维护方法,数据库的一致性要求,依次可以用外键CHECK 约束、规则约束、触发器、客户端程序,一般认为,离数据越近的方法效率越高。 谨慎使用级联删除和级联更新 5、建立约束实现数据有效性检测 A、可以为某一列特别重要的值建立好约束。 例如:需要凭数据库里面的SaleKind列数据判定销售类别,0值为门店销售,1为网上销售。系统只有这两种销售渠道,就应该为它建立约束,它的值只能在0和1之间。即SaleKind>0 and SaleKind<3 B、设置默认值 适当的设置默认值。 4、视图 数据的安全性还可以用视图来控制。 视图可以把用户关心的那部分数据显示给用户,而把无关的数据隐藏起来。 5、安全性: 操作数据库不建议用SA用户,因为SA用户权限过大。具体的应用应该创建相应的数

数据库设计规范 编码规范

数据库编码规范 目的1 为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。 2 范围 本规范适用于全体开发人员,作用于软件项目开发的数据库设计、维护阶段。 术语3 数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻? 辑结构的对象。 物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、? 目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。一般对数据库服产品的概要设计阶段予以规划。务器物理设备的管理规程,在整个项目/ 逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段? 域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据/ 库配置有关的设计以及数据库中其他特性处理相关的设计等。 4 设计概要 4.1 设计环境R2 ORACLE 11G a) 数据库ORACLE 11G R2 操作系统 LINUX 6以上版本,显示图形操作界面 b) MS SQL SERVER 2005 数据库企业版 SQL SERVER 2005 以上补丁和安全补丁打sp3 操作系统 WINDOWS 2008 SERVER 4.2 设计使用工具做为数据库的设计工具,要求为主要字段做详尽说明。对于PowerDesigner a) 使用尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说SQL Server

明(这些将作为扩展属性存入SQL Server中) 文档,作为数据字典保存,PowerDesigner b) 通过定制wordword格式报表,并导出SQL Server PowerDesigner v10 格式。(才具有定制导出word格式报表的功能)。对于一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。 编写数据库建数据库、建数据库对象、初始化数据脚本文件c) 设计原则4.3 采用多数据文件a) 500MB 2GB,windowb) 禁止使用过大的数据文件,系统不超过unix系统不大于数据库中必须将索引建立在索引表空间里。c) oracle 基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能d) blob(或大文本列)和大文本字列、e) blob列要独立出一张表,此表只有id 或saf) 为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用者系统管理员身份进行数据库设计。 4.4 设计的更新 a) 在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。 b) 运行阶段,由数据库管理员进行维护。 c) 如对表结构进行修改,应先在数据字典文档进行修改,最后在数据库中进行修改。如果修改的是数据库字典表,必须由数据库管理员进行。 直接连代码,如果使用PowerDesigner,禁止由PowerDesignerd) 编写更新的SQL数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改) e) 修改数据库要通过SQL,禁止其它方式对数据进行修改 要添加说明后保存备查修改数据库的SQLf) 命名总体原则5 设定的前缀一律用小写字母? ? 标识名称命名全部小写 整个命名的全长不得超过30个字母? ,不能使用中文和其他字符,有特别情况允许使用末尾数‘_'? 全部使用字母和下划线t_Finace1, t_Finace2... 字编号。例如: ? 命名名称来自于业务,全部采用英文单词 英文单词过长可以采用通用的缩写,尽量表达出业务的含义? 如需要两个以上的英文单词做标识名称,单词之间要用下划线‘_'? 连接 ? 名称全是由名词组成的,名词由大范围到小范围排序取名

【经典范例】集团员工工号编码规则

1、总则 1.1制定目的 ?对员工工号进行有效的管理 ?方便直观了解及统计员工的相关资讯 ?在应用系统(包括人力资源软件系统等)中对员工进行有效的识别 1.2适用范围 广东时利和汽车实业集团下属各全资公司、合资公司、DRL店、快修店 1.3管理单位 本制度之解释、修改权归集团人力资源部。 1.4员工编码在集团内部各类文件的称呼统一为“工号” 2、编码规则 2.1员工编码由八位数字组成,排列顺序如下: 公司编码+ 个人流水码+ 入职年度号码 (如下) (三位) (二位) 2.2公司编码(新增公司:另行文件通知) 2.2.1特约店编码说明: TNA=时利和(T)+佛山南海(N)+ACURA品牌店(A) 其中地方编码说明: 佛山-F 佛山南海-N 吉林市-J 吉林长春-C 广州-G

2.2.2集团下属公司/车间编码说明: 示例1:时利和集团(T)+总部(G) 示例2:时利和集团(T)+总部(G)+下属车间盛世达车间(S) 示例3:时利和集团(T)+分公司佛山依多科化工有限公司(E) 2.3个人流水码 (1)根据入职年度内,集团及二级单位员工入职的先后序号进行排列; (2)现有(自本规定公布之日前在职的员工)员工由公司人力资源部门依同年度内入职的先后顺序排定; (3)新入职员工(自本规定公布之日后入职的员工)依本年度顺序所排定的编码排列取号; (4)员工调动、离职时依新任单位重新编定。原号吗要相关的表格文件中进行备注。 2.4入职年度号码 (1)取入职年度后两位数字为号码,如2008年入职,则入职年度号为08; (2)员工调动、离职时年度号码不变; 3、员工的异动 3.1员工在集团内进行调动,员工后二位年度编码不变,前面编码根据调动后情况由 被调入单位人事行政部门编定,原单位及人力资源部应保留原工号; 3.2员工离职后个人编码空缺,不进行补缺及重复使用; 3.3离职再复职人员重新排号; 4、附则 (1)本程序经集团总经理核准后公告实施,修、废时亦同。 (2)本程序只限于员工编吗,亦为工号编制程序文件,在确保本单位员工工号唯一性的前提下各单位可根据实际情况另行进行档案管理。 (3)本程序公告日期为2008年5月1日。 例:TG 00108:表示2008年集团总部第一位入职的员工

【编号规则】工程信息编码标准

QB ****公司企业标准 信息分类和编码 第3分册工程信息分类和编码 (初稿) 20XX-XX-XX 发布 20XX -XX -XX 发行 *****有限责任公司 发 布 ICS XXX 备案号XXX

目次 前言 (3) 引言 (4) 1范围 (5) 2规范性引用文件 (5) 3术语和定义 (5) 4分类原则和方法 (6) 4.1基本原则 (6) 4.2分类对象的层面划分 (6) 4.3工程信息分类 (7) 4.4工程信息整体框架 (8) 5编码方法 (9) 5.1基本原则 (9) 5.2码值 (9) 5.3代码组结构和层次 (10) 5.3.1交互定位码 (10) 5.3.2项目编码 (10) 5.3.3管理属性编码 (11) 5.3.4设计属性编码 (11) 5.3.5合同属性编码 (12) 5.3.6档案属性编码 (12) 5.3.7采购、财务、招标信息属性编码 (13) 5.3.8非项目信息编码 (13) 6分类与代码表 (14) 6.1非项目信息分类标识码(30301) (14) 6.2省电网公司及直属单位编码(30302) (14) 6.3工程项目建设管理单位代码(30303) (15) 6.4项目属性代码(30304) (18) 6.5综合指标(30305) (19) 6.6立项时间(30306) (20) 6.7批次项目标识码(30307) (21) 6.8信息属性码分类(30308) (21) 6.9项目阶段代码((30309) (22) 6.10工作分解代码(30310) (22) 6.11信息创建部门代码(30311) (23) 6.12设计资料分类代码(30314) (24) 6.13设计阶段代码(30315) (24) 6.14类目代码(30316) (25)

国家地名数据库代码编制规则

《国家地名数据库代码编制规则》 一、地名数据库代码编制 (一)为了统一、规范国家地名数据库代码,满足地名数据库编码工作的需要,特制定本规则。 (二)国家地名数据库代码依据国家标准《中华人民共和国行政区划代码》(GB2260)、《县以下行政区划代码编制规则》(GB10114一88)的编码规则、《民政统计代码编制规则》和《地名分类与类别代码编制规则》(GB/T18521-2001)制定。 (三)国家地名数据库代码应做到不重、不漏,留有备用号。 (四)国家地名数据库代码共有20位数字,分为四段。 第一段由6位数字组成,表示县级以上行政区划代码, 执行《中华人民共和国行政区划代码》(GB/T 2260-2002)。 1.行政区划数字代码(简称数字码)采用三层六位层次码结构,按层次分别表示我国各省(自治区、直辖市、特别行政区)、市(地区、自治州、盟)、县(自治县、县级市、旗、自治旗、市辖区、林区、特区)。 2.数字码码位结构从左至右的含义是: 第一层即前两位代码表示省、自治区、直辖市、特别行政区。 第二层即中间两位代码表示市、地区、自治州、盟、直辖市所辖市辖区/县汇总码、省(自治区)直辖县级行政区划汇总码,其中 (1)01~20、51~70表示市,01、02还用于表示直辖市所辖市辖区、县汇总码; (2)21~50表示地区、自治州、盟; (3)90表示省(自治区)直辖县级行政区划汇总码。 第三层即后两位表示县、自治县、县级市、旗、自治旗、市辖区、林区、特区,其中: (1)01~20表示市辖区、地区(自治州、盟)辖县级市、市辖特区以及省(自治区)直辖县级行政区划中的县级市,01通常表示市辖区汇总码; (2)21~80表示县、自治县、旗、自治旗、林区、地区辖特区 (3)81~99表示省(自治区)辖县级市。 3.为保证数字码的唯一性,因行政区划发生变更而撤销的数字码不再赋予其他行政区划。 4.凡是未经批准,不是国家标准的行政区划单列区、县级单位,代码的第三层即后两位必须设置为以91开始按顺序往下编制。 第二段的3位代码执行国家标准《县以下行政区划代码编制规则》(GB/T10114-2003)。其中的第一位数字为类别标识,以“0”表示街道,“1”表示镇,“2和3”表示乡,“4和5”表示政企合一的单位;其中的第二位、第三位数字为该代码段中各行政区划的顺序号。具体划分如下: 1.001—099 表示街道的代码,应在本地区的范围内由小到大顺序编写; 2.100—199 表示镇(民族镇)的代码,应在本地区的范围内由小到大顺序编写; 3.200—399 表示乡(民族乡)的代码,应在本地区的范围内由小到大顺序编写; 4.400—599表示政企合一单位的代码,应在本地区的范围内由小到大顺序编写; 5.600-699表示开发区等非法定单位代码,应在本地区的范围内由小到大顺序编写; 6.999表示省、地、区(县)本级的代码,应在本地区的范围内编写。 第三段由5位数字组成,表示地名属性类别,执行《地名分类与类别代码编制规则》(GB/T 18521-2001)第四段为6位数字,表示附加码,具体代码段为 000000-999999,用以区分同一类别并且是同一行政区的地名并进行排序,如果前13位编码可以确定此地名的唯一性,则第四段代码用000000表示。 其具体格式为:

(完整版)阿里巴巴编码规范(Java)题库

多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选 2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式) 多选 3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选 4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。

数据库设计规范编码规范

数据库编码规范1 目的? 为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。? 2 范围? 本规范适用于全体开发人员,作用于软件项目开发的数据库设计、维护阶段。? 3 术语? 数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。? 物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。?

逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等。? 4 设计概要? 设计环境? a) ORACLE 11G R2 数据库? ORACLE 11G R2 ? 操作系统? LINUX 6以上版本,显示图形操作界面 b) MS SQL SERVER 2005? 数据库? SQL SERVER 2005 企业版? 打sp3以上补丁和安全补丁?

? 操作系统? WINDOWS 2008 SERVER 设计使用工具? a)使用PowerDesigner 做为数据库的设计工具,要求为主要字段做详尽说明。对于SQL Server 尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说明(这些将作为扩展属性存入SQL Server中)? b)通过PowerDesigner 定制word格式报表,并导出word文档,作为数据字典保存,格式。(PowerDesigner v10 才具有定制导出word格式报表的功能)。对于SQL Server 一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。? c) 编写数据库建数据库、建数据库对象、初始化数据脚本文件? 设计原则? a) 采用多数据文件?

数据库设计和编码规范

.数据库设计和编码规范

————————————————————————————————作者:————————————————————————————————日期:

数据库设计和编码规范 Version 1.0

目录 1简介 (7) 1.1读者对象 (7) 1.2目的 (7) 2数据库命名规范 (7) 2.1规范总体要求 (7) 2.2数据库对象命名规范 (8) 2.3变量命名规范 (9) 3数据库设计规范 (9) 3.1选择有效的设计工具 (10) 3.2表的设计 (10) 3.2.1遵守范式要求 10 3.2.2字段设计 11 3.2.3适当的合理的冗余 12 3.2.4注意大类型的字段设计 13 3.3表关系和约束设计 (13) 3.3.1主键设计 14 3.3.2 外键设计 (15) 3.3.3 检查约束 (15) 3.4索引的设计 (16) 3.4.1聚集索引和非聚集索引 16 3.4.2索引的初始创建原则 18 3.4.3索引的注意事项 18 3.4.4索引的后期维护工作 19 3.5物理存储设计 (20) 3.5.1日志文件另外存放 20 3.5.2存储空间的设计 20

4T-SQL编码规范 (22) 4.1书写基本规范 (22) 4.2使用可搜索参数(WHERE使用原则) (23) 4.3少用触发器和禁用游标 (24) 4.4联合查询尽可能使用UNION ALL (25) 4.5尽可能避免的地方 (25) 4.6避免返回和使用多余的数据 (26) 4.7操作符优化 (26) 4.8数据库事务处理原则 (27) 4.9最少次数的访问表 (28) 4.10避免隐含的数据类型转换 (28) 4.11表变量、临时表和公用表达式的用法 (30) 4.12正确地判断记录是否存在 (32) 4.13注意自定义标量函数的影响 (32) 4.14避免编写复杂的TSQL语句 (33) 4.15应用程序层防止执行大块的TSQL语句 (33) 4.16对数据库大表的处理方案 (34) 4.17SP_EXECUTESQL代替EXEC (35) 4.18存储过程的一些建议 (36) 5如何进行质量控制 (36) 5.1规范的制定、认可和实施 (36) 5.2讨论和检查工作 (36) 5.3对制定的规范不断完善 (37) 5.4讨论和制定公共模板 (37) 5.4.1SELECT语句 38 5.4.2JOIN语句 38 5.4.3子查询 39 5.4.4INSERT语句 39 5.4.5UPDA TE语句 39 5.4.6DELETE语句 39 5.4.7CASE语句 40 5.4.8IF语句 40 5.4.9WHILE语句

项目编码规范编写指南

项目编码规范 1 命名规范 1).包名采用域后缀倒置的加上自定义的包名,采用小写字母。 在部门内部应该规划好包名的范围,防止产生冲突。部门内部产品使用部门的名称加上模块名称。产品线的产品使用产品的名称加上模块的名称。 格式: com.huawei.产品名.模块名称 com.huawei.部门名称. 项目名称 示例: Relay模块包名 com.huawei.msg.relay 通用日志模块包名 com.huawei.msg.log 2). 类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。 示例: OrderInformation, CustomerList, LogManager, LogConfig 3). 方法名使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。 示例: private void calculateRate(); public void addNewOrder(); 4). 方法中,存取属性的方法采用setter 和 getter方法,动作方法采用动词和动宾结构。格式: get + 非布尔属性名() is + 布尔属性名() set + 属性名() 动词() 动词 + 宾语() 示例: public String getType(); public boolean isFinished(); public void setVisible(boolean); public void show();

public void addKeyListener(Listener); 5).属性名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同。 示例: private customerName; private orderNumber; private smpSession; 6). 常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰。 示例: public final static int MAX_VALUE = 1000; public final static String DEFAULT_START_DATE = "2001-12-08"; 7). 属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态成员变量时使用 this 引用,引用静态成员变量时使用类名引用。 示例: public class Person { private String name; private static List properties; public void setName (String name) { https://www.wendangku.net/doc/8a17409357.html, = name; } public void setProperties (List properties) { Person.properties = properties; } } 8).如果函数名超过15 个字母,可采用以去掉元音字母的方法或者以行业内约定俗成的缩写方式缩写函数名。 示例: getCustomerInformation() 改为 getCustomerInfo() 2 程序注释规范 1)、基本注释(必须加)

相关文档
相关文档 最新文档