企业绩效管理系统代码规范C#10仅供参考.docx

上传人:b****6 文档编号:8609760 上传时间:2023-02-01 格式:DOCX 页数:14 大小:22.93KB
下载 相关 举报
企业绩效管理系统代码规范C#10仅供参考.docx_第1页
第1页 / 共14页
企业绩效管理系统代码规范C#10仅供参考.docx_第2页
第2页 / 共14页
企业绩效管理系统代码规范C#10仅供参考.docx_第3页
第3页 / 共14页
企业绩效管理系统代码规范C#10仅供参考.docx_第4页
第4页 / 共14页
企业绩效管理系统代码规范C#10仅供参考.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

企业绩效管理系统代码规范C#10仅供参考.docx

《企业绩效管理系统代码规范C#10仅供参考.docx》由会员分享,可在线阅读,更多相关《企业绩效管理系统代码规范C#10仅供参考.docx(14页珍藏版)》请在冰豆网上搜索。

企业绩效管理系统代码规范C#10仅供参考.docx

企业绩效管理系统代码规范C#10仅供参考

 

绩效考核系统

(NetOne)

C#

代码规范

 

文档信息:

文档名称

C#代码规范

描述

该文档描述了在项目开发过程中,开发人员编写代码所应遵循的规范,包括命名规则、代码结构等

负责人

状态

文档变更历史:

时间

修改人

章节

描述

2009-1-4

所有章节

创建文档初稿

文档路径:

$/NetOne/AssessPerformance/

审核结果:

审核人

意见

签名档

目录

1编程风格4

1.1统一编程风格的意义4

1.2变量命名规则及控件命名规范4

1.3函数命名规则5

1.4类命名规则6

1.5各层的类名规范6

1.6Form页面命名规范6

1.7常见语句书写规则8

1.8注释风格9

2代码优化9

2.1代码优化的意义9

2.2函数内的代码优化9

2.3类内的代码优化11

2.4类之间的代码优化11

3调试技巧11

3.1编译时的错误11

3.2运行时的错误12

3.3C#常见问题12

4数据库编程规则12

4.1表名命名规则12

4.2字段名命名规则12

4.3视图命名规则13

4.4存储过程命名规则13

1编程风格

1.1统一编程风格的意义

∙增加开发过程代码的强壮性、可读性、易维护性

∙减少有经验和无经验开发人员编程所需的脑力工作

∙为软件的良好维护性打下好的基础

∙在项目范围内统一代码风格

∙通过人为以及自动的方式对最终软件应用质量标准

∙使新的开发人员快速适应项目氛围

∙支持项目资源的复用:

允许开发人员从一个项目区域(或子项目团队)移动到另一个,而不需要重新适应新的子项目团队的氛围

∙一个优秀而且职业化的开发团队所必需的素质

1.2变量命名规则及控件命名规范

∙前缀(小写字母加下划线)表明变量的作用域,无前缀则表明是局部变量或函数的参数。

如:

▪m_xx表示是类的成员变量,控件变量例外

▪g_xx表示是全局变量,在C#中,也可以理解为在整个项目中都可能用到的静态变量

▪c_xx或者XX表示是一个常量

∙用数据类型全称中的关键字母代表特定的数据类型(一个或多个小写字母),如下表。

常用数据类型缩写

数据类型

i

int

b

bool

str

string

c

char

f

float

d

double

ob

object

lbl

Label

utxted

ultraTextEditor

ubtn

ultraButton

ucmb

ultraCombo

ucc

ultraCalendarCombo

ugd

ultraGrid

utree

ultraTree

utbm

ultraToolbarsManager

usb

ultraStatusBar

ugb

ultraGroupBox

pnl

panel

upb

ultraPictureBox

uds

ultraDataSource

uddbnt

ultraDropDownButton

ulb

ultraLabel

utcl

ultraTabControl

tlb

ToolBar

dt

DateTime

con

Connection

cmd

Command

ds

DataSet

da

DataAdapter

dv

DataView

dbTable

DataTable

dbReader

DataReader

param

Parameter

dbRow

DataRow

dbCol

DataColumn

注:

✧如果模块中只有一个类实例对象,则可以只用简写。

如Connection对象可以用con来命名。

✧控件键命名如ultraButton为确认键简写为ubtn+数据字典(确认:

OK)ubtnOk

1.3函数命名规则

∙函数名用首字母大写的英文单词组合表示(如用动词+名词的方法),其中至少有一个动词

∙应该避免的命名方式

▪和继承来的函数名一样。

即使函数的参数不一样,也尽量不要这么做,除非想要重载它

▪只由一个动词组成,如:

Save、Update。

改成如:

SaveValue、UpdateDataSet则比较好

∙函数参数的命名规则

▪函数参数应该具有自我描述性,应该能够做到见其名而知其意

▪用匈牙利命名法命名

1.4类命名规则

∙类的命名通常以父类的简写开头。

如:

FrmXXX可看出该类从Form中继承而来

∙类名中尽量不要出现下划线

∙类变量的命名可以参照,如:

FrmXXXfrmXXX=newFrmXXX(),即首字母小写即可

1.5各层的类名规范

代码组织是对整个项目的代码进行整理,使之更加有序。

实现类似功能的文件应该放在同一个文件夹中或者同一个项目中。

例如,可把整个项目分为以下几个层次:

∙BLL层(业务逻辑层)

调用IDAL层里的接口类

层中类名数据库表名去t_

例:

对t_Employee表的类名为Employee

∙SQLDAL层(数据访问层)

实现IDAL中定义的方法

层中类名数据库表名去t_前面加DB

例:

对t_Employee表的类名为DBEmployee

∙IDAL层(接口)

定义未实现的方法

层中类名数据库表名去t_前面加I

例:

对t_Employee表的类名为IEmployee

∙DALFactory层(数据工厂)

BLL调用IDAL时,DALFactory层动态生成实现IDAL接口的实例

∙Model层(实体层)

贯穿全局数据库中的表的映射

层中类名为:

数据库表名去t_后面加Info

例:

对t_Employee表的类名为EmployeeInfo

∙UI层(表面显示层)

显示页面

∙WebService(并不是用户界面,但是逻辑上属于这一层)

1.6Form页面命名规范

英文

中文

LoginForm.cs

登录页面

MainForm.cs

主页面

项目管理考核(ProjectManageAssess)

BugDetailMessageForm.cs

BUG详细信息

BugStatisticForm.cs

BUG统计

ProjectWorkdaysChangeApplyForm.cs

项目工期变更申请表

ProjectWorkdaysChangeDetailForm.cs

项目工期变更详细

ProjectWorkdaysChangeManageForm.cs

项目工期变更管理

ProjectAssessForm.cs

项目考核

ProjectManageForm.cs

项目管理

SoftwareResultTestReportForm.cs

软件结果测试报告

TaskAssessForm.cs

任务考核

TaskManageForm.cs

任务管理

DocumentTestDetailMessageForm.cs

文档测试详细信息

ProjectDocumentTestResultManageForm.cs

项目文档测试结果管理

DocumentTestResultReportForm.cs

文档测试结果报告

绩效考核汇总(PerformanceAssessGather)

AbilityBehaviorAssessGatherDetailForm.cs

能力行为考核汇总详细

AbilityBehaviorAssessGatherForm.cs

能力行为考核汇总

EmployeeAchievementAssessDetailForm.cs

员工业绩考核详细

AssessGatherForm.cs

考核汇总

GroupAchievementGatherForm.cs

小组业绩汇总

行为能力考核管理(BehaviorAbilityAssessManage)

EmployeeRewardsAndPunishmentForm.cs

员工奖惩

TechnologyAbilityAssessForm.cs

技术能力评定

JobDiathesisAssessForm.cs

职业素质评定

方案制定(ScenarioTailor)

ScenarioManageCenterForm.cs

方案管理中心

StandardManageCenterForm.cs

标准管理中心

ScenarioUseForm.cs

方案使用

TemplateManageCenterFormForm.cs

模板管理中心

系统管理(SystemManage)

RolePopedomForm.cs

角色权限管理

RoleManageForm.cs

角色管理

SystemManageForm.cs

系统管理

AmendPasswordForm.cs

修改密码

EmployeeGroupForm.cs

员工分组

EmployeManageForm.cs

员工管理

DataMessageInputForm.cs

数据信息导入

DataMessageOutputForm.cs

数据信息导出

JobParameterSetForm.cs

职位参数设置

BUGParameterSetForm.cs

BUG参数设置

SumParameterSetForm.cs

总数参数设置

TaskStateSetForm.cs

任务状态设置

IDParameterSetForm.cs

ID参数设置

SystemParameterSetForm.cs

系统参数设置

WebServiceSetForm.cs

Web服务设置

页面属性text中的内容按照数据字典的中文部分查找拼接,不要相同类的2张页面用不同的名称如:

工程工期变更管理页面和工程工期变化详细页面,后者可以改为工程工期变更详细。

1.7常见语句书写规则

如下表所示。

语句

提倡的风格

if

if(condition)

{

statements;

}

else

{

statements;

}

for

for(initialization;condition;update)

{

statements;

}

foreach

foreach(somethingincollection)

{

statements;

}

switch

switch(…)

{

case..:

break;

case…:

break;

default:

}

while

while(..)

{

statements;

}

do-while

do

{

statements;

}

while(condition);

try-catch

try

{

statements;

}

catch(Exceptione)

{

handleexception;

}

同一代码块内的不同逻辑块之间应空一行

{

dostatement1;

dostatement2;

}

函数与函数之间至少空一行,但不超三行

1.8注释风格

∙注释应该正确、简洁、有重点

∙应该写优雅的、可读性良好的代码,而不是为玄妙、晦涩的代码写注释

∙原则上应尽量减少程序体内代码的注释,应该保持代码本身的直接可读性

∙函数的注释,可以只对public或者重要的private函数进行注解

2代码优化

2.1代码优化的意义

∙仅仅对符合功能说明书的要求、能正确运行的代码进行优化是有意义的

∙代码优化能减少冗余代码的数量,用更少的代码来实现同样的功能

∙提高代码的内聚程度,减少耦合程度

∙对代码的抽象能提高代码的重用度,对今后其他项目的进度有非常重要的意义

2.2函数内的代码优化

∙去掉从来没有用到过的参数

∙始终进行参数检验。

不要认为只有我才会调用这个函数,我能够保证参数的有效性。

事实上很多运行错误就是没有对参数进行检验。

对于传入了非法值的函数调用,可以返回一个对调用无意义的值(如:

null,-1),或者干脆抛出一个异常

∙函数的参数不宜过多,如果实在是太多,可以考虑将这些参数封装在一个类中,然后将这个类的某个实例作为参数传入函数

∙如果函数从来不会修改某个参数的值,则应该尽量将参数声明为const

∙如果函数中用到的类成员变量或者其他全局变量可以用传入参数的方式代替,则用参数代替,这样可以减少该函数和外界的关系,提高内聚

∙一个单一的函数的代码量不宜过多。

如果实在很多,则可以把它切分成小的函数,例如长的switch语句是最容易切分的

∙单个函数中尽量避免相同的代码,可以用条件语句或者抽取出来作为函数的方法消除这些冗余

∙尽量保持函数只有一个出口,即只有一处return语句,如:

▪原始代码

stringGetControlText(intnIndex)

{

if(ParameterValid()==false)

returnnull;

switch(nIndex)

{

case0:

returntxtValue1.Text;

case1:

returntxtValue2.Text;

…….

}

}

 

▪优化过的代码

stringGetControlText(intnIndex)

{

stringstrReturnValue=null;

if(ParameterValid()==true)

{

switch(nIndex)

{

case0:

strReturnValue=txtValue1.Text;

break;

case1:

strReturnValue=txtValue2.Text;

break;

…..

}

}

returnstrReturnValue;

}

2.3类内的代码优化

∙只有类对外的接口才声明为public

∙在类的成员函数中如果存在着相同的代码,则将其抽取成为private的成员函数,以减少代码的冗余,保持在一个类中没有相同的两份代码的副本

∙尽量减少成员函数之间的依赖,特别是对成员变量值的依赖

2.4类之间的代码优化

∙类应该是一个实体,具有自己的数据和对这些数据的操作

∙把界面操作和数据处理分离在两个类中是比较好的做法

∙对于不同类之间有相同代码的情况,有以下几种处理方法:

▪将相同的代码抽象出来作为父类,其他的类从中继承,由此来共享代码

▪将相同的代码抽象出来作为一个新类,其他类中声明一个该类的变量,由此来共享代码

这两种方法各有利弊,前种方法比较适于当共享代码在调用之前必须做特殊的初始化,而这些初始化可能很难用函数调用来完成,这时父类的初始化代码中可以加入一个虚拟函数,所有的子类都重载该函数,做特定的初始化;后种方法可以封装得很彻底,只暴露出对外的接口,和其他类的耦合程度比较小

∙任何重复的代码都可以抽取出来,不仅仅是对数据进行处理的代码,界面代码同样可以抽取出来

∙如果许多类都有做类似事情的函数,名称相同、内部具体的操作不同,这时候可以将这些函数提取出来作为一个接口。

其他类都从中继承,然后根据自己的要求来实现之

3调试技巧

3.1编译时的错误

∙始终在“输出”窗口中看程序编译的输出,“任务列表”窗口中经常会遗留以前编译后留下来的消息

∙认真查看编译输出的错误消息,掌握正确的错误地点和信息

∙当碰到莫名其妙的编译时的错误应

1)重新编译整个项目或者解决方案。

2)关闭VisualStudio.NET,然后再打开。

3)重新启动计算机。

4)保证编译出来的程序不在运行中或者所有的输出文件的属性都是可写的。

3.2运行时的错误

∙首先要读取异常信息,猜测大概的发生地和发生原因

∙仔细读发生异常处源代码

∙在相应处设置断点,然后单步运行

∙如果还是找不出错误,可以请同事帮忙。

当着同事的面讲解自己的源代码,旁观者看得最清

∙配置问题和数据库中数据的错误也会导致运行时的错误

3.3C#常见问题

∙C#中控件的消息处理是立即的。

也就是说,如果对某个控件的某个消息写了消息处理函数,然后假如当程序中某处的代码A引发了该消息时,程序流程会立即跳转到该消息的消息函数中去,如果这时消息函数中发生异常,即使代码A处于异常块中,该异常也无法捕获。

所以如果出现在给控件的某个属性赋值后发生异常的情况,则请找一下是否已经对该控件的该属性写了消息函数(别忘了在父类也许会有),如果有的话,则应在这个消息处理函数中也加上断点

∙注意集成环境中窗体设计器的副作用。

对于处在InitializeComponent中的代码,如果需要做修改,尽量先将其搬到函数外面来,否则,不能保证修改过的代码不被集成环境改回来或者删掉

∙C#中很多异常都是由于强制转换产生的,所以对强制转换一定要放在异常处理块中

4数据库编程规则

4.1表名命名规则

●表名的命名规则为以t_开头,根据各个表名的不同,在t_后加这个表的中文所对应的英文单词全名,英文单词首字母大写。

如果包含多个英文单词,把多个单词相连接,中间无需加任何东西,每个英文单词的首字母大写。

●例:

以(任务详细表)为例,其在数据库的命名为:

t_TaskDetail

4.2字段名命名规则

●字段名的命名规则是以该字段所在的表的表名去掉t_,加上该字段的中文所对应的英文单词,英文单词首字母大写,如果包含多个英文单词,把多个单词相连接,中间无需加任何东西,每个英文单词的首字母大写。

表名英文与字段英文中间以“_”相连

●例:

以(任务详细表)中的(任务名称)字段为例,其在数据库中的命名为:

TaskDetail_TaskName

4.3视图命名规则

●视图的命名规则是以vi_开头,加上所要对创建视图的表的表名并去掉t_,如果有多张表,表与表之间以“_”相连,最后添加所建立的视图名称。

视图名与前面字段也以“_”相连。

●例:

以(任务详细表)与(任务变更表)创建视图,视图的名称为“MyView”为例,其在数据库中的命名为:

vi_TaskDetail_TaskChange_MyView

4.4存储过程命名规则

●存储过程的命名规则是以pr_开头,加上所要对创建存储过程的表的表名并去掉t_,如果有多张表,表与表之间以“_”相连,最后添加所建立的存储过程名称。

存储过程名与前面字段也以“_”相连。

●例:

以(任务详细表)中创建存储过程,存储过程的名称为“MyProcedure”为例,其在数据库中的命名为:

pr_TaskDetail_MyProcedure

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1