【大家看看】,小生总结了下命名惯例和规范。

wiki14 2009-12-24 04:39:09
加精
命名惯例和规范

  Pascal 大小写形式-所有单词第一个字母大写,其他字母小写。

  Camel 大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。

变量和方法参数Camel 大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。

  类名使用Pascal 大小写形式
   public class HelloWorld{ ...}  
  方法使用Pascal 大小写形式
   public class HelloWorld { void SayHello(string name) { ... }}  

  用有意义的,描述性的词语来命名变量   
  - 别用缩写。用name, address, salary等代替 nam, addr, sal
- 别使用单个字母的变量象i, n, x 等. 使用 index, temp等

  用于循环迭代的变量例外:
  for ( int i = 0; i < count; i++ ){ ...}
- 变量名中不使用下划线 (_) 。
- 命名空间需按照标准的模式命名
  文件名要和类名匹配   
例如,对于类HelloWorld, 相应的文件名应为 helloworld.cs (或, helloworld.vb)

  缩进用 TAB . 不用 SPACES.。

  注释需和代码对齐.。

  花括弧 ( {} ) 需和括号外的代码对齐.。

  用一个空行来分开代码的逻辑分组,如string name = “a”;

  在一个类中,各个方法需用一空行,也只能是一行分开。

  花括弧需独立一行,而不像if, for 等可以跟括号在同一行。.
好: if ( ... ) { // Do something }
不好: if ( ... ) { // Do something }

  在每个运算符和括号的前后都空一格。.   
好: if ( showResult == true ) { for ( int i = 0; i < 10; i++ ) { // } }
不好: if(showResult==true) { for(int i= 0;i<10;i++) { // } }

  避免使用大文件。如果一个文件里的代码超过300~400行,必须考虑将代码分开到不同类中。

  避免写太长的方法。一个典型的方法代码在1~25行之间。如果一个方法发代码超过25行,应该考虑将其分解为不同的方法。

  方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。  
好:void SavePhoneNumber ( string phoneNumber ) { // Save the phone number. }  
不好:// This method will save the phone number. void SaveData ( string phoneNumber ) { // Save the phone number. }

  一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。  
好:// Save the address. SaveAddress ( address ); // Send an email to the supervisor to inform that the address is updated. SendEmail ( address, email ); void SaveAddress ( string address ) { // Save the address. // ... } void SendEmail ( string address, string email ) { // Send an email to inform the supervisor that the address is changed. // ... }  
不好:// Save address and send an email to the supervisor to inform that the address is updated. SaveAddress ( address, email ); void SaveAddress ( string address, string email ) { // Job 1. // Save the address. // ... // Job 2. // Send an email to inform the supervisor that the address is changed. // ... }

  使用C# 或 VB.NET的特有类型,而不是System命名空间中定义的别名类型。  
好:int age; string name; object contactInfo;  
不好:Int16 age; String name; Object contactInfo;

  别在程序中使用固定数值,用常量代替。

  避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。

  别把成员变量声明为 public 或 protected。都声明为 private 而使用 public/protected 的Properties.

  不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。

  应用程序启动时作些“自检”并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。

  显示给用户的消息要简短而友好。但要把所有可能的信息都记录下来,以助诊断问题。

  别每行代码,每个声明的变量都做注释。在需要的地方注释。可读性强的代码需要很少的注释。如果所有的变量和方法的命名有意义,会使代码可读性很强并无需太多注释。

  行数不多的注释会使代码看起来优雅。但如果代码不清晰,可读性差,那就糟糕。

  对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由。

  简言之,要写清晰,可读的代码以致无须什么注释就能理解。
  发生异常时,给出友好的消息给用户,但要精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。

  只捕捉特定的异常,而不是一般的异常。  

  不必每个方法都用try-catch。当特定的异常可能发生时才使用。比如,当你写文件时,处理异常FileIOException.

  别写太大的 try-catch 模块。如果需要,为每个执行的任务编写单独的 try-catch 模块。 这将帮你找出哪一段代码产生异常,并给用户发出特定的错误消息




占用您的时间了。
最近要做个项目,需要这类文档。网上也有不少,小生自己总结了一下,大家有什么意见可以提出来一起交流。
交流才有进步,也希望可以帮助到需要的朋友。版主考虑推荐下哈。^ ^



最后:提前祝大家新年快乐!2010加油!!!
...全文
3443 238 打赏 收藏 转发到动态 举报
写回复
用AI写文章
238 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxuxinzzzz 2011-05-23
  • 打赏
  • 举报
回复
不错不错了!!值得应用
zhangxuyu1118 2010-02-24
  • 打赏
  • 举报
回复
喜欢楼主,纯洁的,呵呵。
louti 2010-02-23
  • 打赏
  • 举报
回复
围观,回复内容太短了!
talentzzrr 2010-02-22
  • 打赏
  • 举报
回复
<font color="red">这样子可以吗,</font>
jenny0810 2010-01-29
  • 打赏
  • 举报
回复
学习
DayDayUp2010 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 234 楼 renzhexy 的回复:]
清晰了好多!
[/Quote]

网上这种资料都泛滥成灾了,还有人扩大再生产这种东西,还被推荐了,无语 ... ...
renzhexy 2010-01-04
  • 打赏
  • 举报
回复
清晰了好多!
WSLAN002 2010-01-01
  • 打赏
  • 举报
回复
学习!
slowgrace 2009-12-30
  • 打赏
  • 举报
回复
谢谢。不了解C#的错误处理机制,只能大致了解一下了。我猜后来的朋友一定会受益的。
wiki14 2009-12-30
  • 打赏
  • 举报
回复
另外找了点资料,

代码质量保证优先原则
(1)正确性,指程序要实现设计要求的功能。
(2)稳定性、安全性,指程序稳定、可靠、安全。
(3)可测试性,指程序要具有良好的可测试性。
(4)规范/可读性,指程序书写风格、命名规则等要符合规范。
(5)全局效率,指软件系统的整体效率。
(6)局部效率,指某个模块/子模块/函数的本身效率。
(7)个人表达方式/个人方便性,指个人编程习惯。



使用第三方提供的软件开发工具包或控件时,要注意以下几点:
(1)充分了解应用接口、使用环境及使用时注意事项。
(2)不能过分相信其正确性。
(3)除非必要,不要使用不熟悉的第三方工具包与控件。
说明:使用工具包与控件,可加快程序开发速度,节省时间,但使用之前一定对它有较充分的了解,同时第三方工具包与控件也有可能存在问题。
wiki14 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 229 楼 slowgrace 的回复:]
请问“只捕捉特定的异常,而不是一般的异常”这句话什么意思?
[/Quote]


在声明一个函数时,将它所抛出的异常列出,便于函数的使用者了解可能会发生哪些异常。
但并不是每一个函数都需要声明异常。当特定的异常可能发生时才使用。比如,当你写文件时,处理异常FileIOException. 应该用什么异常的时候,就用什么异常。


好:
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 "";
}
}


你可以用应用程序级(线程级)错误处理器处理所有一般的异常。遇到“以外的一般性错误”时,此错误处理器应该捕捉异常,给用户提示消息,在应用程序关闭或用户选择”忽略并继续“之前记录错误信息。

另外,如果应用程序需要,可以编写自己的异常类。
自定义异常不应从基类SystemException派生,而要继承于. IApplicationException。
slowgrace 2009-12-30
  • 打赏
  • 举报
回复
请问“只捕捉特定的异常,而不是一般的异常”这句话什么意思?
slowgrace 2009-12-30
  • 打赏
  • 举报
回复
呱唧呱唧。

建议请斑竹把小结拷贝到0楼。
haifeng39 2009-12-29
  • 打赏
  • 举报
回复
up
zfj1981 2009-12-29
  • 打赏
  • 举报
回复
其实我觉得最简单的办法就是看微软msdn里面关于变量,函数名称怎么定义的,毕竟好多开发工具都是微软的,效仿微软的还是没有大问题的,不过最重要的就是变量名和方法名起的要有意义,让人一看就明白是做什么用的,这点最重要。
hello411 2009-12-29
  • 打赏
  • 举报
回复
学习一下!
zhuoyue 2009-12-29
  • 打赏
  • 举报
回复
mark
baobei7758 2009-12-29
  • 打赏
  • 举报
回复
mark
pemi2010 2009-12-29
  • 打赏
  • 举报
回复
看着很累~~
pettor 2009-12-29
  • 打赏
  • 举报
回复
verygood,studying
加载更多回复(218)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧