ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:22.93KB ,
资源ID:8609760      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8609760.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(企业绩效管理系统代码规范C#10仅供参考.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、企业绩效管理系统代码规范C#10仅供参考绩 效 考 核 系 统(Net One)C#代码规范文档信息:文档名称C# 代码规范描述该文档描述了在项目开发过程中,开发人员编写代码所应遵循的规范,包括命名规则、代码结构等负责人状态文档变更历史:时间修改人章节描述2009-1-4所有章节创建文档初稿文档路径:$/NetOne/ Assess Performance/审核结果:审核人意见签名档目录1 编程风格 41.1 统一编程风格的意义 41.2 变量命名规则及控件命名规范 41.3 函数命名规则 51.4 类命名规则 61.5 各层的类名规范 61.6 Form页面命名规范 61.7 常见语句书写规

2、则 81.8 注释风格 92 代码优化 92.1 代码优化的意义 92.2 函数内的代码优化 92.3 类内的代码优化 112.4 类之间的代码优化 113 调试技巧 113.1 编译时的错误 113.2 运行时的错误 123.3 C#常见问题 124 数据库编程规则 124.1 表名命名规则 124.2 字段名命名规则 124.3 视图命名规则 134.4 存储过程命名规则 131 编程风格1.1 统一编程风格的意义 增加开发过程代码的强壮性、可读性、易维护性 减少有经验和无经验开发人员编程所需的脑力工作 为软件的良好维护性打下好的基础 在项目范围内统一代码风格 通过人为以及自动的方式对最终

3、软件应用质量标准 使新的开发人员快速适应项目氛围 支持项目资源的复用:允许开发人员从一个项目区域(或子项目团队)移动到另一个,而不需要重新适应新的子项目团队的氛围 一个优秀而且职业化的开发团队所必需的素质1.2 变量命名规则及控件命名规范 前缀(小写字母加下划线)表明变量的作用域,无前缀则表明是局部变量或函数的参数。如: m_xx 表示是类的成员变量,控件变量例外 g_xx 表示是全局变量,在C#中,也可以理解为在整个项目中都可能用到的静态变量 c_xx 或者XX 表示是一个常量 用数据类型全称中的关键字母代表特定的数据类型(一个或多个小写字母),如下表。常用数据类型缩写数据类型iintbbo

4、olstrstringccharffloatddoubleobobjectlblLabelutxtedultraTextEditorubtnultraButtonucmbultraCombouccultraCalendarCombougdultraGridutreeultraTreeutbmultraToolbarsManagerusbultraStatusBarugbultraGroupBoxpnlpanelupbultraPictureBoxudsultraDataSourceuddbntultraDropDownButtonulbultraLabelutclultraTabControl

5、tlbToolBardtDateTimeconConnectioncmdCommanddsDataSetdaDataAdapterdvDataViewdbTableDataTabledbReaderDataReaderparamParameterdbRowDataRowdbColDataColumn注: 如果模块中只有一个类实例对象,则可以只用简写。如Connection对象可以用con来命名。 控件键命名如ultraButton 为确认键 简写为ubtn+数据字典(确认:OK) ubtnOk1.3 函数命名规则 函数名用首字母大写的英文单词组合表示(如用动词+名词的方法),其中至少有一个动词

6、 应该避免的命名方式 和继承来的函数名一样。即使函数的参数不一样,也尽量不要这么做,除非想要重载它 只由一个动词组成,如:Save、Update。改成如:SaveValue、UpdateDataSet则比较好 函数参数的命名规则 函数参数应该具有自我描述性,应该能够做到见其名而知其意 用匈牙利命名法命名1.4 类命名规则 类的命名通常以父类的简写开头。如:FrmXXX可看出该类从Form中继承而来 类名中尽量不要出现下划线 类变量的命名可以参照,如:FrmXXX frmXXX = new FrmXXX(),即首字母小写即可1.5 各层的类名规范代码组织是对整个项目的代码进行整理,使之更加有序。

7、实现类似功能的文件应该放在同一个文件夹中或者同一个项目中。例如,可把整个项目分为以下几个层次: BLL层(业务逻辑层)调用IDAL层里的接口类层中类名数据库表名去t_例:对t_Employee表的类名为 Employee SQLDAL层(数据访问层)实现IDAL中定义的方法层中类名数据库表名去t_前面加DB例:对t_Employee表的类名为 DBEmployee IDAL层(接口)定义未实现的方法层中类名数据库表名去t_前面加I例:对t_Employee表的类名为 IEmployee DALFactory层(数据工厂)BLL调用IDAL时,DALFactory层动态生成实现IDAL接口的实例

8、 Model层(实体层)贯穿全局数据库中的表的映射层中类名为:数据库表名去t_后面加Info例:对t_Employee表的类名为 EmployeeInfo UI层(表面显示层)显示页面 WebService(并不是用户界面,但是逻辑上属于这一层)1.6 Form页面命名规范英文中文LoginForm.cs登录页面MainForm.cs主页面项目管理考核(ProjectManageAssess)BugDetailMessageForm.csBUG详细信息BugStatisticForm.csBUG统计ProjectWorkdaysChangeApplyForm.cs项目工期变更申请表Projec

9、tWorkdaysChangeDetailForm.cs项目工期变更详细ProjectWorkdaysChangeManageForm.cs项目工期变更管理ProjectAssessForm.cs项目考核ProjectManageForm.cs项目管理SoftwareResultTestReportForm.cs软件结果测试报告TaskAssessForm.cs任务考核TaskManageForm.cs任务管理DocumentTestDetailMessageForm.cs文档测试详细信息ProjectDocumentTestResultManageForm.cs项目文档测试结果管理Docum

10、entTestResultReportForm.cs文档测试结果报告绩效考核汇总(PerformanceAssessGather)AbilityBehaviorAssessGatherDetailForm.cs能力行为考核汇总详细AbilityBehaviorAssessGatherForm.cs能力行为考核汇总EmployeeAchievementAssessDetailForm.cs员工业绩考核详细AssessGatherForm.cs考核汇总GroupAchievementGatherForm.cs小组业绩汇总行为能力考核管理(BehaviorAbilityAssessManage)Em

11、ployeeRewardsAndPunishmentForm.cs员工奖惩TechnologyAbilityAssessForm.cs技术能力评定JobDiathesisAssessForm.cs职业素质评定方案制定(ScenarioTailor)ScenarioManageCenterForm.cs方案管理中心StandardManageCenterForm.cs标准管理中心ScenarioUseForm.cs方案使用TemplateManageCenterFormForm.cs模板管理中心系统管理(SystemManage)RolePopedomForm.cs角色权限管理RoleManag

12、eForm.cs角色管理SystemManageForm.cs系统管理AmendPasswordForm.cs修改密码EmployeeGroupForm.cs员工分组EmployeManageForm.cs员工管理DataMessageInputForm.cs数据信息导入DataMessageOutputForm.cs数据信息导出JobParameterSetForm.cs职位参数设置BUGParameterSetForm.csBUG参数设置SumParameterSetForm.cs总数参数设置TaskStateSetForm.cs任务状态设置IDParameterSetForm.csID参

13、数设置SystemParameterSetForm.cs系统参数设置WebServiceSetForm.csWeb服务设置页面属性text中的内容按照数据字典的中文部分查找拼接,不要相同类的2张页面用不同的名称如:工程工期变更管理页面和工程工期变化详细页面,后者可以改为工程工期变更详细。1.7 常见语句书写规则如下表所示。语句提倡的风格ifif(condition) statements;else statements;forfor(initialization; condition; update) statements;foreachforeach(something in collect

14、ion) statements;switchswitch() case .: break; case : break; default:whilewhile(.) statements;do-whiledo statements;while(condition);try-catchtry statements;catch(Exception e) handle exception;同一代码块内的不同逻辑块之间应空一行 do statement1; do statement2;函数与函数之间至少空一行,但不超三行1.8 注释风格 注释应该正确、简洁、有重点 应该写优雅的、可读性良好的代码,而不是

15、为玄妙、晦涩的代码写注释 原则上应尽量减少程序体内代码的注释,应该保持代码本身的直接可读性 函数的注释,可以只对public或者重要的private函数进行注解2 代码优化2.1 代码优化的意义 仅仅对符合功能说明书的要求、能正确运行的代码进行优化是有意义的 代码优化能减少冗余代码的数量,用更少的代码来实现同样的功能 提高代码的内聚程度,减少耦合程度 对代码的抽象能提高代码的重用度,对今后其他项目的进度有非常重要的意义2.2 函数内的代码优化 去掉从来没有用到过的参数 始终进行参数检验。不要认为只有我才会调用这个函数,我能够保证参数的有效性。事实上很多运行错误就是没有对参数进行检验。对于传入了

16、非法值的函数调用,可以返回一个对调用无意义的值(如:null,-1),或者干脆抛出一个异常 函数的参数不宜过多,如果实在是太多,可以考虑将这些参数封装在一个类中,然后将这个类的某个实例作为参数传入函数 如果函数从来不会修改某个参数的值,则应该尽量将参数声明为const 如果函数中用到的类成员变量或者其他全局变量可以用传入参数的方式代替,则用参数代替,这样可以减少该函数和外界的关系,提高内聚 一个单一的函数的代码量不宜过多。如果实在很多,则可以把它切分成小的函数,例如长的switch语句是最容易切分的 单个函数中尽量避免相同的代码,可以用条件语句或者抽取出来作为函数的方法消除这些冗余 尽量保持函

17、数只有一个出口,即只有一处return语句,如: 原始代码string GetControlText(int nIndex) if(ParameterValid() = false) return null; switch(nIndex) case 0: return txtValue1.Text; case 1: return txtValue2.Text; . 优化过的代码string GetControlText(int nIndex) string strReturnValue = null; if(ParameterValid() = true) switch(nIndex) cas

18、e 0: strReturnValue = txtValue1.Text; break; case 1: strReturnValue = txtValue2.Text; break; . return strReturnValue;2.3 类内的代码优化 只有类对外的接口才声明为public 在类的成员函数中如果存在着相同的代码,则将其抽取成为private的成员函数,以减少代码的冗余,保持在一个类中没有相同的两份代码的副本 尽量减少成员函数之间的依赖,特别是对成员变量值的依赖2.4 类之间的代码优化 类应该是一个实体,具有自己的数据和对这些数据的操作 把界面操作和数据处理分离在两个类中是比

19、较好的做法 对于不同类之间有相同代码的情况,有以下几种处理方法: 将相同的代码抽象出来作为父类,其他的类从中继承,由此来共享代码 将相同的代码抽象出来作为一个新类,其他类中声明一个该类的变量,由此来共享代码这两种方法各有利弊,前种方法比较适于当共享代码在调用之前必须做特殊的初始化,而这些初始化可能很难用函数调用来完成,这时父类的初始化代码中可以加入一个虚拟函数,所有的子类都重载该函数,做特定的初始化;后种方法可以封装得很彻底,只暴露出对外的接口,和其他类的耦合程度比较小 任何重复的代码都可以抽取出来,不仅仅是对数据进行处理的代码,界面代码同样可以抽取出来 如果许多类都有做类似事情的函数,名称相

20、同、内部具体的操作不同,这时候可以将这些函数提取出来作为一个接口。其他类都从中继承,然后根据自己的要求来实现之3 调试技巧3.1 编译时的错误 始终在“输出”窗口中看程序编译的输出,“任务列表”窗口中经常会遗留以前编译后留下来的消息 认真查看编译输出的错误消息,掌握正确的错误地点和信息 当碰到莫名其妙的编译时的错误应1) 重新编译整个项目或者解决方案。2) 关闭Visual Studio.NET,然后再打开。3) 重新启动计算机。4) 保证编译出来的程序不在运行中或者所有的输出文件的属性都是可写的。3.2 运行时的错误 首先要读取异常信息,猜测大概的发生地和发生原因 仔细读发生异常处源代码 在

21、相应处设置断点,然后单步运行 如果还是找不出错误,可以请同事帮忙。当着同事的面讲解自己的源代码,旁观者看得最清 配置问题和数据库中数据的错误也会导致运行时的错误3.3 C#常见问题 C#中控件的消息处理是立即的。也就是说,如果对某个控件的某个消息写了消息处理函数,然后假如当程序中某处的代码A引发了该消息时,程序流程会立即跳转到该消息的消息函数中去,如果这时消息函数中发生异常,即使代码A处于异常块中,该异常也无法捕获。所以如果出现在给控件的某个属性赋值后发生异常的情况,则请找一下是否已经对该控件的该属性写了消息函数(别忘了在父类也许会有),如果有的话,则应在这个消息处理函数中也加上断点 注意集成

22、环境中窗体设计器的副作用。对于处在InitializeComponent中的代码,如果需要做修改,尽量先将其搬到函数外面来,否则,不能保证修改过的代码不被集成环境改回来或者删掉 C#中很多异常都是由于强制转换产生的,所以对强制转换一定要放在异常处理块中4 数据库编程规则4.1 表名命名规则 表名的命名规则为以t_开头,根据各个表名的不同,在t_后加这个表的中文所对应的英文单词全名,英文单词首字母大写。如果包含多个英文单词,把多个单词相连接,中间无需加任何东西,每个英文单词的首字母大写。 例:以(任务详细表)为例,其在数据库的命名为:t_TaskDetail4.2 字段名命名规则 字段名的命名规

23、则是以该字段所在的表的表名去掉t_,加上该字段的中文所对应的英文单词,英文单词首字母大写,如果包含多个英文单词,把多个单词相连接,中间无需加任何东西,每个英文单词的首字母大写。表名英文与字段英文中间以“_”相连 例:以(任务详细表)中的(任务名称)字段为例,其在数据库中的命名为:TaskDetail_TaskName4.3 视图命名规则 视图的命名规则是以vi_开头,加上所要对创建视图的表的表名并去掉t_,如果有多张表,表与表之间以“_”相连,最后添加所建立的视图名称。视图名与前面字段也以“_”相连。 例:以(任务详细表)与(任务变更表)创建视图,视图的名称为“MyView”为例,其在数据库中的命名为:vi_TaskDetail_TaskChange_MyView4.4 存储过程命名规则 存储过程的命名规则是以pr_开头,加上所要对创建存储过程的表的表名并去掉t_,如果有多张表,表与表之间以“_”相连,最后添加所建立的存储过程名称。存储过程名与前面字段也以“_”相连。 例:以(任务详细表)中创建存储过程,存储过程的名称为“MyProcedure”为例,其在数据库中的命名为:pr_ TaskDetail_ MyProcedure

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

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