




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.信息技术有限责任公司代码编写规范(初稿)作者:目 录0、修订记录41、概述41.1、规范制定原则42、基本规则42.1命名法Pascal、Camel42.2 Namespace命名空间规范53、文件命名64、C# 语法规范64.1符号规范64.1.1换行64.1.2缩进74.1.3空行84.1.4空格94.1.5花括号94.2代码注释104.2.1类注释104.2.2代码注释104.3命名规范114.3.1名称清晰114.3.2缩写词124.4控件命名125、 SQL 语法规范135.1数据表命名规范135.2数据库对象命名规范135.3常用数据表前缀建议145.4数据表字段定义145.5代码书写规范155.3.1、SELECT语句:155.3.2、INSERT语句:155.3.3、UPDATE语句:155.3.4、DELETE语句:155.3.5、IF语句:165.3.6、CASE语句:165.3.7、WHILE语句:16附录:.Net命名规范171、变量命名规范172、Web控件命名规范173、ADO.NET控件命名规范184、Html控件命名规范185、客户端JavaScript规范196、命名规则补充197、命名通则20零、修订记录版本作者日期说明一、概述 1.1、规范制定原则1、 方便代码的交流和维护。2、 不影响编码的效率,不与大众习惯冲突。3、 使代码更美观、阅读更方便。4、 使代码的逻辑更清晰、更易于理解。二、基本规则2.1命名法Pascal、CamelPascal命名法:指首字母大写,每个连接单词的首字母也大写,应用在文件、类、对象、方法及属性的命名,例如:/文件命名UserInfo.aspx/类命名public class UserInfo() /方法、行为命名public string BuyApple ./属性命名public string Name get return _name; Camel命名法:指首字母小写,每个连接单词的首字母大写,应用在变量申明中,例如:/申明对象UserInfo userInfo = new UserInfo();/申明变量int recordCount = 0;string userName = ;备注:其他未规范的命名方法,请遵循微软C#.Net官方命名法。2.2 Namespace命名空间规范原则上命名空间层次不要超过3层最为易于理解,例如:Zsp.ICS.Common.StringManager.Encryption在使用上就非常费劲。系统提供功能举例:Zsp.DbHelperZsp:正卓公司服务框架前缀DbHelepr:框架级功能名称项目应用举例:ICS.CommonAMS.StringProcessor.EncryptionICS、AMS:项目名称前缀,这里表示内控系统项目Common、StringProcessor:项目内命名空间名称三、文件命名严禁使用拼音命名:public ZhiFu() 采用Pascal命名法,单词连贯不间断,每个单词首字母大写。正确的方式:PrintPageInfo.aspxBudgetInfoManager.aspx错误的方式:Print_Page_Info.aspxBUDGETInfoManager.aspxbudgetinfomanager.aspx四、C# 语法规范4.1符号规范4.1.1换行换行主要目的是为了让过长的代码可读性增强。1、 分号“;”之后必须换行,正确的方式:int i = 0;string name;错误的方式:int i = 0; string name;2、 逗号“,”时可以换行,如果字符较短可以不换行,正确的方式:string sql = string.Format(SELECT * FROM TableName WHERE ID=0 AND Sex=1, dataID.ToString(), 0);错误的方式:string sql = string.Format(SELECT * FROM TableName WHERE ID=0 AND Sex=1,dataID.ToString(),0);4.1.2缩进代码统一使用Tab缩进,显示格数为4,不要使用空格缩进代码,正确的例子:if (true)return;错误的例子:if (true) return;VS可在:“工具 选项 文本编辑器 所有语言 制表符”中找到设置选项,请设置为下图所示:4.1.3空行在类、接口、枚举的定义代码之间需要空一行,便于区不同区段。在代码中适量使用空行,也可以有效增加代码可读性。例如:public class UserInfo decimal _money;public decimal Money set _money = value; public bool Buy(Apple apple) if (money 100) Money -= 100;return true; else return false;public void Sell(Apple apple) Money += 100;4.1.4空格空格使用在关键字之后,或运算符之间,例如:if (true) int s = 1;for (int i = 0; i 100; i+) s = s * (i + 1);4.1.5花括号花括号通常伴随着转行:while (true)if (true)/ DoSomething4.2代码注释4.2.1类注释每个类前必须加文档注释,只需要打三个/号,SDK会自动生成注释包含框,然后在其中输入注释:/ / 这是自动生成的文档注释/ public void GetName() 4.2.2代码注释代码注释需要保持在功能实现之前,正确的例子:if (true) /如果条件为真/设置状态值status = 执行中;return;或者/如果条件为真if (true) /设置状态值status = 执行中;return;错误的例子:if (true) /如果条件为真string status = 执行中;/设置状态值return;4.3命名规范4.3.1名称清晰严禁使用拼音命名:public ZhiFu() 类、方法的命名应尽量说明作用是什么,而不是如何做,也就是说必须清晰描述方法的意义,例如:TeacherInfo(); 而不是 ObjectInfo();RemoveStudent(int index); 而不是 RemoveArrayElement(int index);传入的值名称也应清晰易懂,例如:DrawPoint(int x, int y); 而不是 DrawPoint(int a, int b);UserLogin(string name, string pass); 而不是 UserLogin(string str1, string str2);避免使用难懂的名称和容易忘记的名称,例如:public SPD();public SyncThis();避免重复命名,例如:Book.BookTitle 应该修改为 Book.Title布尔变量应包含Is关键字,例如:public bool IsChecked get; bool isChecked = true;bool fileIsDeleted;4.3.2缩写词缩写是经常遇到的情况,一个类名太长,也会导致阅读困难,此时应使用适当缩写,缩写词应当遵从通用性原则,也就是使用大家共识性的单词缩写,而不要自己创造缩写。1、短名称应使用全称而不要使用缩写,例如:GetWindow()不要写为GetWin()2、众所周知,没有歧义的单词则应尽量使用缩写,例如:UserInterface应缩写为UI3、部分过长名称可以使用部分单词没有歧义的缩写词代替,例如:GetAdministratorInformation();可缩写为GetAdminInfo();或GetAdmInfo();3、使用大小写规则时,仅两个字的缩写尽量使用全大写,而不要使用驼峰规则,例如:UI不要写为Ui,IO不要写为Io,ID不要写为Id4.4控件命名除了字段名称对应的控件外,使用Camel命名法,采取首字母小写,连接单词均首字母大写的形式,例如:页面中的GridView命名为budgetDataList对应数据F_Name字段的TextBox控件,命名为F_Name与数据库无关的搜索录入关键字的TextBox控件,命名为txtKeyword提交表单的按钮Button控件,命名为btnSubmit可参考附录.Net命名规范:五、SQL 语法规范5.1数据表命名规范所有数据表均以“T”开头,以下划线分隔命名空间后三位为模块缩写,使用大写字母,例如系统模块使用“SYS”然后就是表的具体功能性名称,例如系统日志表“SystemLog”例如:T_SYS_SystemLog基础数据表命名后缀规范表作用后缀范例说明基础信息表InfoT_YBS_BudgetInfo年预算模块预算信息表子表DetailT_YBS_BudgetDetail年预算模块预算明细表连接表LinkT_AUT_UserGroupLink授权模块用户组连接表日志表LogT_YBS_BudgetModifyLog年预算模块预算修改日志表业务逻辑表无T_YBS_BudgetMergeApply名称必须能准确描述业务T_WF_WorkFlowStep5.2数据库对象命名规范本规范定义了数据库中的表、视图、存储过程等对象的命名规范,要求必须遵守。基本规则:_(字段命名不要求模块缩写)对象英文前缀范例数据表TableT_T_AUT_UserInfo视图ViewV_V_AUT_GetUserWithRoleInfo存储过程USPUSP_USP_AUT_GetUserRoleLink函数FunctionFN_FN_Split表属性命名字段FieldF_F_Password主键PK_PK_DataID外键FK_FK_ParentID索引IDX_IDX_Code其他功能命名触发器TriggerTR_同义词SynonymSY_链接服务器LS_端点PS_存储过程 及 函数 的参数命名参数用Pascal命名法:UserID临时表用Pascal命名法:#UserList全局临时表用Pascal命名法,加前缀:#TMP_5.3常用数据表前缀建议本建议的目的是为常用模块定义共识性的缩写词:表格类型缩写前缀备注字典DICT_DIC_授权模块AUTT_AUT_系统信息SYST_SYS_公司框架ZSPT_ZSP_累计表SUMT_SUM_业务BLLT_BLL_业务可根据实际名称名称缩写词,例如项目模块用T_PRO,年预算模块用T_YBS5.4数据表字段定义所以字典表及业务表(连接关系表除外),数据必须按以下规范建立,并包含以下字段:字段数据类型系统类型初始值说明F_IDintInt32主键/自增编号F_SNuniqueidentifierGuid单一序列号.业务字段F_IsDelintInt32标识删除F_Creatorvarchar(32)String创建人F_CreateDatedatetimeDateTime创建时间F_Updatervarchar(32)String更新人F_UpdateDatedatetimeDateTime更新时间F_StatusintInt32状态标识字典表关联必须使用F_ID,并应建立层次路径描述。例如:树形结构的数据表,外键字典关系。F_IDF_PIDF_PathF_LayerF_Text100Text12111Text2321/22Text3业务表关联必须使用F_SN,用以确保数据序号的唯一性和迁移的方便性。例如:主子表结构5.5代码书写规范5.3.1、SELECT语句:SELECT T1.F_Col1, T1.F_Col2, T1.F_Col3, T2.F_Col1, T2.F_Col2FROM T_Table1 AS T1INNER JOIN T_Table2 AS T2 ON T2.F_PID = T1.F_IDAND T2.F_Col5 = ConditionValueWHERE T1.F_Col2 = ConditionValueGROUP BY T1.F_Col1, T1.F_Col2, T1.F_Col3, T2.F_Col1, T2.F_Col2ORER BY T1.F_Col1, T1.F_Col2 DESC;5.3.2、INSERT语句:INSERT INTO T_Table1(F_Col1, F_Col2, F_Col3)VALUES (Value1, Value2, Value3);5.3.3、UPDATE语句:UPDATE T_Table1SET F_Col1 = value1, F_Col2 = value2FROM T_Table1 AS T1WHERE T1.F_Col3 = CondtionValue;5.3.4、DELETE语句:DELETE FROM T_Table1WHERE F_Col1 = ConditionValue;5.3.5、IF语句:IF (Condition1)BEGINProgram Block;ENDELSE IF (Condition2)BEGINProgram Block;ENDELSEBEGINProgram Block;END;5.3.6、CASE语句:CASE (Express)WHEN (Condition1 or Value1) THEN Result1WHEN (Condition2 or Value2) THEN Result2WHEN (Condition3 or Value3) THEN Result3ELSE Result4 END;5.3.7、WHILE语句:WHILE (Condition)BEGINProgram Block;BREAK;CONTINUE;END;六、版本控制软件使用规范6.1提交(Commit)提交修改时,必须注明所提交的修改内容,并使用符号标识6.2说明文字符号标识规范常用符号:+ 增加功能;- 减少功能;* 修正错误一次提交的说明范例:+ 增加开支记录报表打印页面- 删除残留已无法使用的项目管理模块* 修正开支记录报表页面搜索条件报错的问题注意:说明文字应正确清晰,不要出现“增加一个报表”等类似的文字附录:.Net命名规范1、变量命名规范类型前缀示例ArrayarrarrShoppingListboolbBooleanblnblnIsPostBackBytebytbytPixelValueCharchrchrDelimiterDateTimedtmdtmStartDateDecimaldecdecAverageHeightDoubledbldblSizeofUniversefloatfltIntegerIntintRowCounterLonglnglngBillGatesIncomeObjectobjobjReturnValuesbytesbShortshr、shtshrAverageSinglesngsngMaximumStringstrstrFirstNameuintuiulongul2、Web控件命名规范类型前缀示例AdRotatoradrtadrtTopAdButtonbtnbtnSubmitCalendarcalcalMettingDatesCheckBoxchkchkBlueCheckBoxListchklchklFavColorsCompareValidatorvalcvalcValidAgeCustomValidatorvalxvalxDBCheckCrystalReportViewerrpvwDataGriddgdgTitlesDataListdlstdlstTitlesDropDownListddlddlCountriesHyperLinklnklnkDetailsImageimgimgAuntBettyImageButtonibtnibtnSubmitLabellbllblResultsLinkButtonlbtnlbtnSubmitListBoxlstlstCountriesPanelpnlpnlForm2PlaceHolderplhplhFormContentsRadioButtonrbrbFemaleRadioButtonListrblrblGenderRangeValidatorvalgvalgAgeRegularExpressionvalevaleEmail_ValidatorRepeaterrptrptQueryResultsRequiredFieldValidatorvalrvalrFirstNameTabletbltblCountryCodesTableCelltblctblcGermanyTableRowtblrtblrCountryTextBoxtxttxtFirstNameTreeViewtvwValidationSummaryvalsvalsFormErrorsXmlControlxmlcxmlcTransformResults3、ADO.NET控件命名规范类型前缀示例ConnectionconconNorthwindCommandcmdcmdReturnProductsParameterparmparmProductIDDataAdapterdaddadProductsDataReaderdtrdtrProductsDataSetdsdsNorthWindDataTabledtdtProductDataRowdrdrRow98DataColumndcoldcolProductIDDataRelationdreldrelMasterDetailDataViewdvwdvwFilteredProducts4、Html控件命名规范类型前缀示例HtmlAnchorhahHtmlButtonhbtnHtmlFormhfrmHtmlGenericControlhgcHtmlImagehimgHtmlInputButton(按钮)hbtnHtmlInputButton(重置)hrbtnHtmlInputButton(提交)hsbtnHtmlInputCheckBoxhcbHtmlInputFilehfileHtmlInputHiddenhhidHtmlInputImagehiimgHtmlInputRadioButtonhrbHtmlInputText(密码)hpwdHtmlInputText(文本)htxtHtmlSelecthsltHtmlTablehtabHtmlTableCellhtcHtmlTableRowhtrHtmlTextAreahtxta5、客户端JavaScript规范类型前缀示例整型变量int长整型变量lng浮点型变量flt双精度变量dbl对象引用变量obj字符串变量strDate类型变量dtm6、命名规则补充类型前缀示例For
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防百科题目及答案
- 测井车司机培训考试题及答案
- 现在进行时题目及答案
- 曹县社工考试题型分布及答案
- 葡萄病虫害防法知识培训课件
- 2025采购合同承包方式
- 农村循环经济合作模式设计协议
- 新能源动力电池极片冲切模具研发生产项目可行性研究报告模板-立项备案
- 物联概论试题及答案
- 2025年搅拌车租赁合同范本
- 项目检查汇报报告(52张)课件
- 新版人教版八年级上册道德与法治全册课件(新版教材)
- 直螺纹套筒现场平行检查及记录表
- 精选芭蕾舞男女演员之间的潜规则汇总
- JJG 856-2015 工作用辐射温度计检定规程-(高清现行)
- 新人教版小学美术五年级上册教学设计(全册)
- 益美高引风式冷却塔特点介绍
- 1沥青混合料生产工艺
- 相亲相爱 简谱
- 考考你的反应能力(说出字体颜色)(课堂PPT)
- 中油即时通信安装手册(二厂)
评论
0/150
提交评论