C#语言编程规范_B/S开发框架_之一

本标准规定了B/S开发框架中C#语言的编程规范,主要包括基本原则、布局、注释、命名规则、声明、表达式与语句、类与接口等。




技 术 文 件



            技术文件名称:编码规范_C#

            技术文件编号:

            版       本:0.1

          



共27页

(包括封面)




                            拟 制                

                             审 核                    

                             会 签                    

                                                       

                                                       

                                                       

                             标准化 批 准                    






深圳市华晨信息技术有限公司

技术部



版本变更记录


版本号

拟制/修改日期

拟制/修改人

修改记录

批准人

0.1



根据公司设计技术标准改编












注:1)拟制、审核、会签、批准不走电子流程时,必须用钢笔或签字笔填写,不得用铅笔、圆珠笔填写,不得涂改。

<本模板中用“< >”括起来的内容包括本段,是编写指导,在最终的文档中应予以删除。其它内容应予以保留。

如果某节内容无需填写,则在该节下写“无”,而不要将本节删除或不填写任何内容(留白将无法判断:是本节内容无需填写还是因为疏忽而忘了填写。)>


前   言

编写本标准的目的是为了统一软件编程风格,提高软件源程序的可读性、可靠性和可重用性,提高软件源程序的质量和可维护性,减少软件维护成本,最终提高软件产品生产力。

本规范分成规则性和建议性两种:对于规则性规范,要求所有软件开发人员严格执行;对于建议性规范,各项目编程人员可以根据实际情况选择执行。本规范的示例都以C#语言描述。

本规范的内容包括:基本原则、布局、注释、命名规则、声名、表达式与语句、类与接口等。规范最后给出了标准模版供软件人员参考。

自本标准实施之日起,以后新编写的和修改的代码均应执行本标准。



                                                    




1   范围

   本标准规定了C#语言的编程规范,主要包括基本原则、布局、注释、命名规则、声明、表达式与语句、类与接口等。

   本标准适用于基于云微开发平台使用C#语言编码的所有软件。本规范自生效之日起,对以后新编写的和修改的代码有约束力。

2   术语和定义

下列术语和定义适用于本标准。


2.1    原则

编程时应该坚持的指导思想。

2.2    规则

编程时必须遵守的约定。

2.3    建议

编程时必须加以考虑的约定。

2.4    说明

对此规则或建议的必要的解释。

2.5    正例

对此规则或建议给出的正确例子。

2.6    反例

对此规则或建议给出的反面例子。

3   基本原则

【原则1-1】首先是为人编写程序,其次才是计算机。

说明:这是软件开发的基本要点,软件的生命周期贯穿产品的开发、测试、生产、用户使用、版本升级和后期维护等长期过程,只有易读、易维护的软件代码才具有生命力。


【原则1-2】保持代码的简明清晰,避免过分的编程技巧。

说明:简单是最美。保持代码的简单化是软件工程化的基本要求。B/S开发框架中代码不要过分追求技巧,否则会降低程序的可读性。


【原则1-3】所有的代码尽量遵循公共语言规范(CLS)。

说明:编程时以该规范为准,规范没有规定的内容参考上面的标准。


【原则1-4】编程时首先达到正确性,其次考虑效率。

说明:编程首先考虑的是满足正确性、健壮性、可维护性、可移植性等质量因素,最后才考虑程序的效率和资源占用。


【原则1-5】尽量避免使用GOTO语句。


【原则1-6】尽可能重用、修正老的代码。

说明:尽量选择可借用的代码,对其修改优化以达到自身要求。


【原则1-7】尽量减少同样的错误出现的次数。

说明:事实上,我们无法做到完全消除错误,但通过不懈的努力,可以减少同样的错误出现的次数。

4   布局

程序布局的目的是显示出程序良好的逻辑结构,提高程序的准确性、连续性、可读性、可维护性。更重要的是B/S开发框架中国统一的程序布局和编程风格,有助于提高整个项目的开发质量,提高开发效率,降低开发成本。同时,对于普通程序员来说,养成良好的编程习惯有助于提高自己的编程水平,提高编程效率。因此,统一的、良好的程序布局和编程风格不仅仅是个人主观美学上的或是形式上的问题,而且会涉及到产品质量,涉及到个人编程能力的提高,必须要引起重视。


4.1    基本格式

【规则2-1-1】源代码文件(.cs)的布局顺序是:using语句、命名空间、注释、类。

说明:以下内容如果某些节不需要,可以忽略。但是其它节要保持该次序。

正例:

         

using System;


namespace hocode.xxx

{

/// <summary>

/// 版权所有: 版权所有(C) 2004,华晨信息

/// 内容摘要: 本类是…..,包括主要……模块、……函数及功能是…….

 /// 完成日期: 输入完成日期,例:2004年3月1日

/// 版    本:

/// 作    者:

     ///

     /// 修改记录1: 修改历史记录,包括修改日期、修改者及修改内容

     /// </summary>        

public class Sample

{


}

}



【规则2-1-3】程序中一行的代码和注释不能超过180列。

说明:包括空格在内不超过180列。


【规则2-1-4】if、else、else if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{ }。

说明:这样可以防止书写失误,也易于阅读。

正例:

if (varible1 < varible2)

{

varible1 = varible2;

}

反例:下面的代码执行语句紧跟if的条件之后,而且没有加{},违反规则。


if (varible1 < varible2) varible1 = varible2; 



〖建议2-1-4〗云微开发平台源程序中关系较为紧密的代码应尽可能相邻。

说明:这样便于程序阅读和查找。

正例:

iLength    = 10;

iWidth     = 5;     //矩形的长与宽关系较密切,放在一起。

StrCaption =“Test”;

反例:

iLength    = 10;

strCaption =“Test”;

iWidth     = 5;


4.2   对齐

【规则2-2-1】禁止使用TAB键,必须使用空格进行缩进。B/S开发框架中代码缩进为4个空格。

说明:消除不同编辑器对TAB处理的差异,有的代码编辑器可以设置用空格代替TAB键。


【规则2-2-2】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。{ }之内的代码块使用缩进规则对齐。

说明:这样使代码便于阅读,并且方便注释。

do while语句和结构的类型化时可以例外,while条件和结构名可与}在同一行。

正例:

void Function(int iVar)

{                       //独占一行并与引用语句左对齐。

while (condition)

{

DoSomething();   //与{ }缩进4格

}

}

反例:

void Function(int iVar){

while (condition){

DoSomething();

}}



4.3   空行空格

【规则2-3-1】不同逻辑程序块之间要使用空行分隔。

说明:空行起着分隔程序段落的作用。开发框架开发的代码适当的空行可以使程序的布局更加清晰。

正例:

void Hey(void)

{

[Hey实现代码]

}

//空一行

void Ack(void)

{

[Ack实现代码]

}

反例:

void Hey(void)

{

  [Hey实现代码]

}

void Ack(void)

{

[Ack实现代码]

}

//两个函数的实现是两个逻辑程序块,应该用空行加以分隔。



4.4   断行

【规则2-4-1】长表达式(超过120列)要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐。

说明:条件表达式的续行在第一个条件处对齐。

for循环语句的续行在初始化条件语句处对齐。

函数调用和函数声明的续行在第一个参数处对齐。

赋值语句的续行应在赋值号处对齐。

正例:

if ((iFormat == CH_A_Format_M)

&& (iOfficeType == CH_BSC_M)) //条件表达式的续行在第一个条件处对齐

{

DoSomething();

}


for (long_initialization_statement;

long_condiction_statement;     // for循环语句续行在初始化条件语句处对齐

long_update_statement)

{

        DoSomething();

}


//函数声明的续行在第一个参数处对齐

BYTE ReportStatusCheckPara(BYTE ucCallNo,

                    BYTE ucStatusReportNo);


//赋值语句的续行应在赋值号处对齐

fTotalBill = fTotalBill + faCustomerPurchases[iID]

+ fSalesTax(faCustomerPurchases[iID]);


【规则2-4-2】函数声明时,类型与名称不允许分行书写。

正例:

double  CalcArea(double dWidth, double dHeight);

反例:

double

CalcArea(double dWidth, double dHeight);


5   注 释

注释有助于理解代码,有效的注释是指在代码的功能、意图层次上进行注释,提供有用、额外的信息,而不是代码表面意义的简单重复。


【规则3-1】类、方法、属性的注释采用XML文档格式注释。代码间多行注释为“/* … */”,单行注释采用“// …”。

正例:public class Sample

    {  

        //数据成员    (单行注释)

private int m_iProperty1;      


        /// <summary>    (XML注释)

        /// 示例属性

        /// </summary>

        public int Property1

        {

            get

            {

            return m_iProperty1;

            }

         /* set        (    多行注释)

            {

            m_iProperty1 = value;

            } */

        }      


【规则3-2】一般情况下,源程序有效注释量必须在20%以上。

说明:注释的原则是有助于对程序的阅读理解,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。有效的注释是指在代码的功能、意图层次上进行注释,提供有用、额外的信息。


【规则3-3】注释使用中文。

说明:对于特殊要求的可以使用英文注释,如工具不支持中文或国际化B/S开发框架版本时。



【规则3-4】类、接口头部应进行XML注释。

说明:注释必须列出:内容摘要、版本号、作者、完成日期、修改信息等。

正例:

/// <summary>

/// 版权所有: 版权所有(C) 2004,华晨信息

/// 内容摘要:本类的内容是…..

/// 完成日期:2004年3月1日

/// 版   本:V1.0

/// 作    者:小张

///    

/// 修改记录1: 修改内容、人、日期

/// </summary>



【规则3-5】公共方法前面应进行XML注释,列出:函数的目的/功能、输入参数、返回值等。



【规则3-6】web开发框架中包含在{ }中代码块的结束处应加注释,便于阅读。特别是多分支、多重嵌套的条件语句或循环语句。

说明:此时注释可以用英文,方便查找对应的语句。

正例:

void Main()

{

if (…)

{

    while (…)

{

}  /* end of while (…) */      //指明该条while语句结束

}  /* end of if (…) */          //指明是哪条语句结束

}  /*  end of void main()*/      //指明函数的结束


【规则3-7】保证代码和注释的一致性。修改代码同时修改相应的注释,不再有用的注释要删除。


【规则3-8】注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

说明:在使用缩写时或之前,应对缩写进行必要的说明。

正例:

如下书写比较结构清晰


/*获得子系统索引*/

iSubSysIndex = aData[iIndex].iSysIndex;


/*代码段1注释*/

[代码段1 ]


/*代码段2注释*/

[代码段2 ]

反例1:

如下例子注释与描述的代码相隔太远。

/*获得子系统索引*/


iSubSysIndex = aData[iIndex].iSysIndex;

反例2:

如下例子注释不应放在所描述的代码下面。


iSubSysIndex = aData[iIndex].iSysIndex;

/*获得子系统索引*/

反例3:

如下例子,显得代码与注释过于紧凑。

/*代码段1注释*/

[代码段1 ]

/*代码段2注释*/

[代码段2 ]

   

【规则3-9】注释与所描述内容进行同样的缩排。

说明:可使程序排版整齐,并方便注释的阅读与理解。

正例:

如下注释结构比较清晰

int DoSomething(void)

{

/*代码段1注释*/

    [代码段1 ]


    /*代码段2注释*/

    [代码段2 ]

}


反例:

如下例子,排版不整齐,阅读不方便;

int DoSomething(void)

{

/*代码段1注释*/

    [代码段1 ]


/*代码段2注释*/

    [代码段2 ]

}


【规则3-10】对分支语句(条件分支、循环语句等)必须编写注释。

说明:这些语句往往是程序实现某一特殊功能的关键,对于维护人员来说,良好的注释有助于更好的理解程序,有时甚至优于看设计文档。


〖建议3-1〗通过对函数或过程、变量、结构等正确的命名以及合理地组织代码结构,使代码成为自注释的。

说明:清晰准确的函数、变量命名,可增加代码的可读性,减少不必要的注释。


〖建议3-2〗尽量避免在注释中使用缩写,特别是不常用缩写。

说明:在使用缩写时,应对缩写进行必要的说明。


网站&系统开发技术学习交流群:463167176

本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:华晨软件-云微开发平台 » C#语言编程规范_B/S开发框架
本文标题:C#语言编程规范_B/S开发框架
本文地址:http://www.hocode.com/OrgTec/Plugin/0012.html

相关文章: View表单提交检测到有潜在危险的Request.Form值

电话
电话 18718672256

扫一扫
二维码