请问:ASP.NET程序设计详细文档的编写规范怎么写啊?
是写程序设计的编写流程,变量的定义,输入输出都写吗?
有没有个模板可以套用啊?谢谢啦!

解决方案 »

  1.   

    1   目的
    一.为了统一公司软件开发设计过程的编程规范
    二.使网站开发人员能很方便的理解每个目录,变量,控件,类,方法的意义
    三.为了保证编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。
    四.编码规范和约定必须能明显改善代码可读性,并有助于代码管理、分类范围适用于企业所有基于.NET平台的软件开发工作
    2   范围
    本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。
    3   注释规范
    3.1 概述
    a)       注释要求中文及中文的标点符号。
    b)       注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。
    c)       每行注释的最大长度为100个字符。
    d)       将注释与注释分隔符用一个空格分开。
    e)       不允许给注释加外框。
    f)       编码的同时书写注释。
    g)       重要变量必须有注释。
    h)       变量注释和变量在同一行,所有注释必须对齐,与变量分开至少四个“空格”键。
    如:int  m_iLevel,m_iCount;     // m_iLevel ....tree level                                          // m_iCount items 
         string m_strSql;               //SQL
    i)       典型算法必须有注释。
    j)       在循环和逻辑分支地方的上行必须就近书写注释。
    k)       程序段或语句的注释在程序段或语句的上一行
    l)       在代码交付之前,必须删掉临时的或无关的注释。
    m)       为便于阅读代码,每行代码的长度应少于100个字符。
    3.2      自建代码文件注释
    对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释:
    /*******************************************    
    FileName:
    Copyright  (c)  2005-xxxx *********公司技术开发部
    Writer:
    create Date:
    Rewriter:
    Rewrite Date:
    Impact:
    Main Content(Function Name、parameters、returns)
    *******************************************/
      

  2.   

    3.3     模块(类)注释
    模块开始必须以以下形式书写模块注释:
    ///<summary>
    ///Module ID:<模块编号,可以引用系统设计中的模块编号>
    ///Depiction:<对此类的描述,可以引用系统设计中的描述>
    ///Author:作者中文名
    ///Create Date:<模块创建日期,格式:YYYY-MM-DD>
    ///</summary>
    如果模块只进行部分少量代码的修改时,则每次修改须添加以下注释:
    ///Rewriter Rewrite Date:<修改日期:格式YYYY-MM-DD> Start1:         
    /* 原代码内容*/
    ///End1:                               
    将原代码内容注释掉,然后添加新代码使用以下注释:
    ///Added by Add date:<添加日期,格式:YYYY-MM-DD> Start2:        
    ///End2:                                 
    如果模块输入输出参数或功能结构有较大修改,则每次修改必须添加以下注释:
    ///<summary>
              ///Log ID:<Log编号,从1开始一次增加>
              ///depiction:<对此修改的描述>
              ///Writer:修改者中文名
              ///Rewrite Date:<模块修改日期,格式:YYYY-MM-DD>
              ///</summary>
    3.4    类属性注释
    在类的属性必须以以下格式编写属性注释:
                /// <summary>
                /// <Properties depiction>
    /// </summary>
    3.5     方法注释
    在类的方法声明前必须以以下格式编写注释
                 /// <summary>
                 /// depiction:<对该方法的说明>
                 /// </summary>
                 /// <param name="<参数名称>"><参数说明></param>
                  /// <returns>
                 ///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
                 /// </returns>
                 ///Writer:作者中文名
                 ///Create Date:<方法创建日期,格式:YYYY-MM-DD>
    3.6     代码间注释
    代码间注释分为单行注释和多行注释:
    //<单行注释>
               /*多行注释1
                 多行注释2
                 多行注释3*/
    代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。
    4    命名总体规则
             名字应该能够标识事物的特性。
             名字使用英文单词或拼音。
             名字尽量不使用缩写,除非它是众所周知的。
             名字可以有两个或三个单词组成,但不应多于三个,控制在3至30个字母以内。
            在名字中,局部变量多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。全局变量全部大写,例如:USERNAME
            名字尽量使用前缀而不是后缀。
           名字中的单词尽量使用名词,如有动词,也尽量放在后面。例如:FunctionUserDelete(而不是FunctionDeleteUser)。
    5    命名规范
    5.1   变量(Variable)命名
    a)    程序文件(*.cs)中的变量命名
             程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写或拼音。
            类模块级的变量请用“m_” +数据类型缩写作为前缀(其中,m 为“memory”缩写,数据类型缩写见附件中的《数据类型缩写表》)。  
    public class hello
    {
                   private string m_strName;
                   private DateTime m_dtDate;
       }
            类的属性所对应的变量,采用属性名前加“m_”+ 类型缩写前缀的形式
    public class hello
    {
            private string m_strName;
            public string Name
            {
             Get
    {
                   return m_strName;
    }
    }
    }
    过程级的变量使用类型缩写前缀
    public class hello
    {
            void say()
            {
              string strSayWord;
    }
    }
    过程的参数使用“p_”+ 类型缩写作为前缀(其中,p&#61656; 为“parameter”缩写)
         public class hello
         {
             void say(string p_strSayWord)
             {
             }
         }
    补充说明:
    针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为err;
    如果有冲突的情况下,可以用“err”+ 标志名称,如:expSql。
    Try
    {
             //your code
            Try
    {
    //code
    }
    catch(Exception err)
    {
    //your code

    }
    catch(Exception errSql)
    {
           //your code
    }
    补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例。
    例:
    Try
    {
         //your code
    }
    catch( Exception exp)
    {
    }
     鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.
    即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。
    在变量名中使用互补对,如 min/max、begin/end 和 open/close。
    不要使用原义数字或原义字符串,如 For (i = 1;i <= 7;i++)。而是使用命名常数,如 For (i = 1;i <= NUM_DAYS_IN_WEEK;i++) 以便于维护和理解。b)    控件命名
    控件命名 = 控件名称缩写 + 名称,如Labl控件(labUserName)
    5.2    常量命名
    常量名也应当有一定的意义,格式为 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 个字符应当足够了。
    5.3      类(Class)命名
    a)       名字应该能够标识事物的特性。
    b)       名字尽量不使用缩写,除非它是众所周知的。
    c)       名字可以有两个或三个单词组成,但通常不应多于三个。
    d)       在名字中,所有单词第一个字母大写。例如  IsSuperUser,包含ID的,ID全部大写,如CustomerID。
    e)       使用名词或名词短语命名类。 
    f)       少用缩写。 
    g)       不要使用下划线字符 (_)。 
    例:     public class FileStream
    public class Button
    public class String
    5.4      接口(Interface)命名
          和类命名规范相同,唯一区别是  接口在名字前加上“I”前缀
          例:
          interface IDBCommand;
          interface IButton;
    5.5  方法(Method)命名
         和类命名规范相同。
    5.6      命名空间(NameSpace)命名
    和类命名规范相同。
    6        编码规则
    6.1      错误检查规则
    a)     编程中要考虑函数的各种执行情况,尽可能处理所有流程情况。
    b)     检查所有的系统调用的错误信息,除非要忽略错误。
    c)     将函数分两类:一类为与屏幕的显示无关, 另一类与屏幕的显示有关。对于与屏幕显示无关的函数,函数通过返回值来报告错误。对于与屏幕显示有关的函数,函数要负责向用户发出警告,并进行错误处理。
    d)     错误处理代码一般放在函数末尾。
    e)     对于通用的错误处理,可建立通用的错误处理函数,处理常见的通用的错误。
    6.2      大括号规则
    将大括号放置在关键词下方的同列处,例如:
    if ($condition)       while ($condition)
    {                  {
          ...                   ...
    }                  }
    6.3 缩进规则
    使用一个“Tab”为每层次缩进。例如:
    function func()
       {
          if (something bad)
          {
             if (another thing bad)
             {
                while (more input)
                {
                }
             }
          }
       }
    6.4      小括号规则
    a)     不要把小括号和关键词(if 、while等)紧贴在一起,要用空格隔开它们。
    b)     不要把小括号和函数名紧贴在一起。
    c)     除非必要,不要在Return返回语句中使用小括号。因为关键字不是函数,如果小括号紧贴着函数名和关键字,二者很容易被看成是一体的。
    6.5      If Then Else规则
    如果你有用到else if 语句的话,通常最好有一个else块以用于处理未处理到的其他情况。可以的话放一个记录信息注释在else处,即使在else没有任何的动作。其格式为:
    if (条件1)                 // 注释
       {
       }
       else if (条件2)            // 注释
       {
       }
       else                           // 注释
       {
       }
    注:if 和循环的嵌套最多允许4层
    6.6      比较规则
    总是将恒量放在等号/不等号的左边。一个原因是假如你在等式中漏了一个等号,语法检查器会为你报错。第二个原因是你能立刻找到数值而不是在你的表达式的末端找到它。例如:
    if ( 6 == $errorNum ) ...
    6.7      Case规则
    default case总应该存在,如果不允许到达,则应该保证:若到达了就会触发一个错误。Case的选择条件最好使用int或string类型。
      

  3.   

    还给大家推荐一个学习地址:http://programmerplane.vicp.net/Forums/13/ShowForum.aspx希望共同学习交流