小弟我想有必要重新学习一次,不在仅仅是开发,还有程序设计与语言的结构理念

我想有必要重新学习一次,不在仅仅是开发,还有程序设计与语言的结构理念。

        工作*年了,写过.NET、Java还有VB程序,到现在对WEB前段写的多一点。一直是在中小公司型游走,从刚开始的代码拷贝、粘贴、模仿,到按自己的想法写出令自个儿满意的代码。当时间再久一点,发现又在拷贝、粘贴、模仿,不过这次是在模仿自己曾写过的案例。也在时不时的给自己充电,学习一些新的技术与框架,但实际发现在项目里并没有真正、完全的用到,还有就是不被你的技术经理认可。不例外,他也是在拷贝、粘贴他的案例与经验,讲述着他过去的种种。我想,也真是自己经验仍然不足吧。
        想重新学习一次,确切的说也是一次重温。今儿,从语言的开发规范开始......

 

C#命名规范(注:摘录自一本C#语言开发的书,也有自己的一点想法

一、三种命名方式

1、 骆驼命名法(Camel):要求名称的首单词要小心,随后的单词首字母要大写,如参数、私有字段等;

2、 帕斯卡命名法(Pascal):要求首字母要大写,随后的单词首字母也要大写,如类或结构等;

3、 匈牙利命名法(Hungarian):变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

二、语言规范化

1、 类:

1)、使用帕斯卡命名法;

2)、使用能够反映类功能的名词或名词短语命名;

3)、不要使用 _、C、I 等特定含义前缀;

4)、自定义异常类应以Exception结尾;

5)、文件名要能反映类的内容,最好是和类同名。

    2、类字段:

        1)、使用骆驼命名法;

        2)、类字段变量名前可加‘_’前缀;

        3)、坚决禁止在普通变量前加‘m_’前缀。

    3、方法:

        1)、使用帕斯卡命名法;

        2)、方法名应使用动词或动词短语;

        3)、类中访问修饰符或功能相同的方法应该放在一起,且公共或实现接口的方法在前。

    4、属性:

        1)、使用帕斯卡命名法;

        2)、使用名词定义属性;

        3)、属性和相应字段名称要关联。

    5、参数:

        1)、使用骆驼命名法;

        2)、使用描述性参数名称,参数名称应当具有足够的说明性;

        3)、不要给参数加匈牙利类型表示法的前缀。

    6、常量:

        1)、多使用帕斯卡命名法,即手写字母要大写;

        2)、枚举值从小到大顺序定义。

    7、接口:

       1)、使用帕斯卡命名法,且使用大写字母“I”开头;

       2)、接口名称要有意义,中间不要有下划线等字符;

       3)、如果实现了接口,名称尽量和接口相同,但要省略字母“I”。

    8、事件:

       1)、使用帕斯卡命名法;

       2)、定义事件的委托要使用EventHandler后缀,且包括sendere两个参数;

       3)、事件用到的参数类,名称要带EventArgs后缀。

    9、命名空间:

       1)、使用帕斯卡命名法;

        2)、命名空间名称尽量反映其内容所提供的整体功能。

三、注视规范

    1、文件头部注释:

1)、文件都包含文件头, 要说明文件名、作者、创建时间、变更记录;

2)、推荐采用.NET形式书写头部注释。

///<summary>

///

///</summary>

2、类及其成员注释:

1)、对方法和类使用“///”三斜线注释;

2)、代码行文注释采用“//”和“/**/”进行,应该尽量说明问题;

3)、所有的注释都应该用中文或英文,同一行注释不要使用多语言混合;

4)、代码变更要将旧代码注释,并说明变更原因、变更作者、变更时间。

四、行文规范

    1、缩写规范:

       1)、标识符应当直观可望文知意,不提倡使用任何缩写;

       2)、字符串变量推荐是用“str”或“s”开头,采用string.Empty来初始化;

       3)、普通对象可以以“obj”开头;

    4)、一般情况下不要让缩写破坏标识符的含义。

    2、排版:

       1)、每行语句至少占一行,如果语句过长(超过一屏),则该语句断为两行显示;

       2)、把相似的内容放在一起,比如字段、属性、方法、事件等,使用“#region--#endregion”命令分组;

       3)、多个程序元素进行对等操作是, 操作符之前、之后或者前后都要加空格;

       4)、每个方法的源程序行数原则上应该少于200行;

    5)、语句嵌套层次不得超过3层;

    6)、避免相同的代码段在多个地方出现。

3、语句结构:

    1)、如果使用了异常结构,一定要处理异常,一般是要写日志文件;

       Log.WriteLine(e.Messsage.ToString());

    2)、分支语句不应该使用复杂长条件,应该将长条件封装成方法;

    3)、禁止使用goto语句进行跳转;

4)、switch语句,case后面必须接break

5)、在switch语句中总是要有default字句,建议使用断言;

    Debug.Assert(false);

6)、特定含义的常数必须定义成枚举或常量;

7)、不同类型的操作符混合使用时,使用括号给出优先级;

8)、不允许使用复杂的操作符组合等;

9)、 循环、判断语句的程序块部分用花括号括起来,即使只有一条语句;

10)、每个类和方法完成单一的功能,不设计多用途面面俱到的类或方法;

11)、严禁使用未经初始化的变量,变量通常使用构造方法来初始。

4、大小写

1)、不要创建名称相同,但大小写区别的任何元素;

2)、应当大写仅有两个字符的缩写;

3)、不要把易混淆的数字和字符放在一起;

4)、使用英文命名标识符。

5、SQL编码规范

1)、SQL语句全部大写;

2)、对较为复杂的SQL语句加上注释,说明其功能;

3)、连接符OR、IN、AND、以及 =、<=、>= 等前后加空格;

4)、使用明确的列代替 SELECT *