.NET环境下我的的编码准则

1.1       命名规则

1.1.1    数据库元素命名规则

名称全部采用小写字母。
类型
前缀
举例
说明
表单
T
t_bi_city
 
视图
V
v_bi_city
 
存储过程
P
p_bi_city_insert
 
触发器
Tg
tg_bi_city
 

1.1.2    常用控件命名规则

类型
前缀
例子
说明
TextBox
Txt
tbx_custNo
 
CheckBox
Chk
cbx_yN
 
Button
Btn
btn_ok
 
ComboBox
Cmb
cbx_department
 
ListBox
Lst
lbx_students
 
ImageButton
Ibt
ibt_confirm
 
DataGrid
Dgd
dgd_dataQuery
 

1.1.3    函数命名规则

具有意义的英文单词组合,每个单词的首字母大写。
如:HasOprRight ()(表示是检查用户是否有某项操作的权限)

1.1.4    常量命名规则

全部采用大写字母。

1.1.5    变量命名规则

为了便于代码阅读,查找错误,变量命名可采用下表的命名规则:
类型
前缀
举例
说明
Int
I
i_totalCount
 
String
S
s_userName
 
Bool
B
b_hasOperateRgt
 
Date
D
d_nowDate
 

1.2       编码规则

1.2.1    代码中SQL语句规则

1 SQL语句中关键字统一用小写;
2 SQL语句中,表名和字段统一采用大写;
3 SQL语句,如果属于通用查询,将SQL语句作为常量存放到公共函数的常量表中。否则也必须存放类头常量变量定义的位置。
如:private const string updateRoleSql = " update T_USR_ROLE_ASS set DATA_RIGHT='{2}' where USR_ID={0} and ROLE_ID={1}";

1.2.2    Session变量规则

1 所有的Session的关键字名程必须在公用模块的常量表定义;
2 在定义Session的时候给出Session的说明;
如://Session["MultiPageListCont"]       ---->       存放多页面对象   
3 Session在说明的时候必须说明Session传递范围,如在那个页面,或者在那些模块,或全部范围内使用,并且必须说明在哪些地方清除Session。将清除Session的语句写到公共函数中,方便核对检查。

1.2.3    注释规则

1在需要的地方注释,不要每行代码,每个声明的变量都做注释。
2 对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由;
3 对注释做拼写检查,保证语法和标点符号的正确使用。

1.2.4 类的规则

1 一个类的代码不能超过400行。如果一个类的代码超过300~400行,必须考虑将代码分开到不同的类中。
2一个类中不同的方法需以空行隔开。

1.2.5 函数规则

1 一个函数的代码不能超过25行。一个典型的方法代码在1~25行之间。如果一个方法代码超过25行,应该考虑将其分解为不同的方法;
2一个函数只能完成一个任务。即使任务非常小,也别把多个任务组合到一个函数中;
3 必须能从函数的函数名中看出该函数的功能,别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了;
4 花括弧需独立一行,而不象if, for 等可以跟括号在同一行;
5在每个运算符和括号的前后都补一个空格;
6 使用C# 或 VB.NET的特有类型,而不是System命名空间中定义的别名类型。
如好的解决方法是:
int age;
string name;
object contactInfo;
不妥当的方法是:
  Int16 age;
    String name;
    Object contactInfo;
7 别在程序中使用固定数值,用常量代替;
8 别用字符串常数。用资源文件;
9 避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值;
10 必要时使用enum ,别用数字或字符串来指示离散值。
如好的做法是:
enum MailType
  {
        Html,
     lainText,
     ttachment
  }
 void SendMail (string message, MailType mailType)
 {
  switch ( mailType )
  {
   case MailType.Html:
    // Do something
    break;
   case MailType.PlainText:
    // Do something
    break;
   case MailType.Attachment:
    // Do something
    break;
   default:
    // Do something
    break;
  }
 }
不妥的做法是:
 void SendMail (string message, string mailType)
 {
  switch ( mailType)
  {
   case "Html":
    // Do something
    break;
   case "PlainText":
    // Do something
    break;
   case "Attachment":
    // Do something
    break;
   default:
    // Do something
    break;
  }
 }
11别把成员变量声明为 public 或 protected。都声明为 private ,用 public/protected 的Properties.
12 不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。 永远别设想你的代码是在“C:”盘运行。你不会知道,一些用户在网络或“Z:”盘运行程序。
13应用程序启动时作些“自检”并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。
14 如果找不到必须的配置文件,应用程序需要能创建使用默认值的一份。
15 如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。
16 错误消息需要能帮助用户解决问题。永远别用类似于“应用程序出错”、 “发现一个错误” 等错误消息。而应给出类似于 “更新数据库失败。请确保登录ID和密码正确。”的具体消息。显示错误消息时,除了说哪里错了,还应提示用户如何解决问题。不要用类似于“更新数据库失败。”这样的,要提示用户怎么做,如:“更新数据库失败。请确保登录ID和密码正确。”
17显示给用户的消息要简短而友好。但要把所有可能的信息都记录下来,以助诊断问题。

1.2.6 异常处理

1不要“捕捉了异常却什么也不做“。如果隐藏了一个异常,用户将永远不知道异常到底发生了没有。
2发生异常时,给出友好的消息给用户,精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。
3只捕捉特定的异常,而不是一般的异常。
如:好的做法是:
 void ReadFromFile ( string fileName )
 {
  try
  {
   // read from file.
  }
  catch (FileIOException ex)
  {
   // log error.
   //  re-throw exception depending on your case.
   throw;
  }
 }
不好的做法是:
 void ReadFromFile ( string fileName )
 {
  try
  {
   // read from file.
  }
  catch (Exception ex)
  {
   // Catching general exception is bad... we will never know whether it
   // was a file error or some other error.
   // Here you are hiding an exception.
   // In this case no one will ever know that an exception happened.
   return ""; 
  }
 }
4在开发周期内,不要在所有的方法中都捕捉一般异常。直接让程序抛出异常,这将在开发周期就能发现大多数的错误;
5可以用应用程序级(线程级)错误处理器处理所有一般的异常。遇到“以外的一般性错误”时,此错误处理器应该捕捉异常,给用户提示消息,在应用程序关闭或用户选择“忽略并继续”之前记录错误信息;
6不必每个方法都用try-catch。当特定的异常可能发生时才使用。比如,当你写文件时,处理异常FileIOException;
7 try-catch 模块包含内容不能太多。如果需要,为每个执行的任务编写单独的 try-catch 模块。
8如果应用程序需要,可以编写自己的异常类。自定义异常不应从基类SystemException派生,而要继承于IApplicationException。
 
posted @ 2005-06-21 16:31  让心灵去旅行  阅读(603)  评论(3编辑  收藏  举报