|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
|
1. 避免将多个类放在一个文件里面。 NALLinux联盟 NALLinux联盟 2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。 NALLinux联盟 NALLinux联盟 3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。 NALLinux联盟 NALLinux联盟 4. 一个方法的代码长度最好不要超过25行。 NALLinux联盟 NALLinux联盟 5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。 NALLinux联盟 NALLinux联盟 6. 每行代码不要超过80个字符。 NALLinux联盟 NALLinux联盟 7. 不要手工的修改机器产生的代码。 NALLinux联盟 NALLinux联盟 a) 如果需要编辑机器产生的代码,编辑格式和风格要符合该编码标准。 NALLinux联盟 NALLinux联盟 b) Use partial classes whenever possible to factor out the maintained portions. NALLinux联盟 NALLinux联盟 8. 避免利用注释解释显而易见的代码。 NALLinux联盟 NALLinux联盟 a) 代码应该可以自解释。好的代码由可读的变量和方法命名因此不需要注释。 NALLinux联盟 NALLinux联盟 9. Document only operational assumptions, algorithm insights and so on. NALLinux联盟 NALLinux联盟 10. 避免使用方法级的文档。 NALLinux联盟 NALLinux联盟 a) 使用扩展的API文档说明之。 NALLinux联盟 NALLinux联盟 b) 只有在该方法需要被其他的开发者使用的时候才使用方法级的注释。(在C#中就是///) NALLinux联盟 NALLinux联盟 11. 不要硬编码数字的值,总是使用构造函数设定其值。 NALLinux联盟 NALLinux联盟 12. 只有是自然结构才能直接使用const,比如一个星期的天数。 NALLinux联盟 NALLinux联盟 13. 避免在只读的变量上使用const。如果想实现只读,可以直接使用readonly。 NALLinux联盟 NALLinux联盟 public class MyClass NALLinux联盟 NALLinux联盟 { NALLinux联盟 NALLinux联盟 public readonly int Number; NALLinux联盟 NALLinux联盟 public MyClass(int someValue) NALLinux联盟 NALLinux联盟 { NALLinux联盟 NALLinux联盟 Number = someValue; NALLinux联盟 NALLinux联盟 } NALLinux联盟 NALLinux联盟 public const int DaysInWeek = 7; NALLinux联盟 NALLinux联盟 } NALLinux联盟 NALLinux联盟 14. 每个假设必须使用Assert检查 NALLinux联盟 NALLinux联盟 a) 平均每15行要有一次检查(Assert) NALLinux联盟 NALLinux联盟 using System.Diagnostics; NALLinux联盟 NALLinux联盟 NALLinux联盟 NALLinux联盟 object GetObject() NALLinux联盟 NALLinux联盟 {…} NALLinux联盟 NALLinux联盟 NALLinux联盟 NALLinux联盟 object obj = GetObject(); NALLinux联盟 NALLinux联盟 Debug.Assert(obj != null); NALLinux联盟 NALLinux联盟 15. 代码的每一行都应该通过白盒方式的测试。 NALLinux联盟 NALLinux联盟 16. 只抛出已经显示处理的异常。 NALLinux联盟 NALLinux联盟 17. 在捕获(catch)语句的抛出异常子句中(throw),总是抛出原始异常维护原始错误的堆栈分配。 NALLinux联盟 NALLinux联盟 catch(Exception exception) NALLinux联盟 NALLinux联盟 { NALLinux联盟 NALLinux联盟 MessageBox.Show(exception.Message); NALLinux联盟 NALLinux联盟 throw ; //和throw exception一样。 NALLinux联盟 NALLinux联盟 } NALLinux联盟 NALLinux联盟 18. 避免方法的返回值是错误代码。 NALLinux联盟 NALLinux联盟 19. 尽量避免定义自定义异常类。 NALLinux联盟 NALLinux联盟 20. 当需要定义自定义的异常时: NALLinux联盟 NALLinux联盟 a) 自定义异常要继承于ApplicationException。 NALLinux联盟 NALLinux联盟 b) 提供自定义的序列化功能。 NALLinux联盟 NALLinux联盟 21. 避免在单个程序集里使用多个Main方法。 NALLinux联盟 NALLinux联盟 22. 只对外公布必要的操作,其他的则为internal。 NALLinux联盟 NALLinux联盟 23. Avoid friend assemblies, as it increases inter-assembly coupling. NALLinux联盟 NALLinux联盟 24. Avoid code that relies on an assembly running from a particular location. NALLinux联盟 NALLinux联盟 25. 使应用程序集尽量为最小化代码(EXE客户程序)。使用类库来替换包含的商务逻辑。 NALLinux联盟 NALLinux联盟 26. 避免给枚举变量提供显式的值。 NALLinux联盟 NALLinux联盟 //正确方法 NALLinux联盟 NALLinux联盟 public enum Color NALLinux联盟 NALLinux联盟 { NALLinux联盟 NALLinux联盟 Red,Green,Blue NALLinux联盟 NALLinux联盟 } NALLinux联盟 NALLinux联盟 //避免 NALLinux联盟 NALLinux联盟 public enum Color NALLinux联盟 NALLinux联盟 { NALLinux联盟 NALLinux联盟 Red = 1,Green = 2,Blue = 3 NALLinux联盟 NALLinux联盟 } NALLinux联盟 NALLinux联盟 27. 避免指定特殊类型的枚举变量。 NALLinux联盟 NALLinux联盟 //避免 NALLinux联盟 NALLinux联盟 public enum Color : long NALLinux联盟 NALLinux联盟 { NALLinux联盟 NALLinux联盟 Red,Green,Blue NALLinux联盟 NALLinux联盟 } NALLinux联盟 NALLinux联盟 28. 即使if语句只有一句,也要将if语句的内容用大括号扩起来。 NALLinux联盟 NALLinux联盟 29. 避免使用trinary条件操作符。 NALLinux联盟 NALLinux联盟 30. 避免在条件语句中调用返回bool值的函数。可以使用局部变量并检查这些局部变量。 NALLinux联盟 NALLinux联盟 bool IsEverythingOK() NALLinux联盟 NALLinux联盟 {…} NALLinux联盟 NALLinux联盟 //避免 NALLinux联盟 NALLinux联盟 if (IsEverythingOK ()) NALLinux联盟 NALLinux联盟 {…} NALLinux联盟 NALLinux联盟 //替换方案 NALLinux联盟 NALLinux联盟 bool ok = IsEverythingOK(); NALLinux联盟 NALLinux联盟 if (ok) NALLinux联盟 NALLinux联盟 {…} NALLinux联盟 NALLinux联盟 31. 总是使用基于0开始的数组。 NALLinux联盟 NALLinux联盟 32. 在循环中总是显式的初始化引用类型的数组。 NALLinux联盟 NALLinux联盟 public class MyClass NALLinux联盟 NALLinux联盟 {} NALLinux联盟 NALLinux联盟 MyClass[] array = new MyClass[100]; NALLinux联盟 NALLinux联盟 for(int index = 0; index < array.Length; index++) NALLinux联盟 NALLinux联盟 { NALLinux联盟 NALLinux联盟 array[index] = new MyClass(); NALLinux联盟 NALLinux联盟 } NALLinux联盟 NALLinux联盟 33. 不要提供public 和 protected的成员变量,使用属性代替他们。 NALLinux联盟 NALLinux联盟 34. 避免在继承中使用new而使用override替换。 NALLinux联盟 NALLinux联盟 35. 在不是sealed的类中总是将public 和 protected的方法标记成virtual的。 NALLinux联盟 NALLinux联盟 36. 除非使用interop(COM+ 或其他的dll)代码否则不要使用不安全的代码(unsafe code)。 NALLinux联盟 NALLinux联盟 37. 避免显示的转换,使用as操作符进行兼容类型的转换。 NALLinux联盟 NALLinux联盟 Dog dog = new GermanShepherd(); NALLinux联盟 NALLinux联盟 GermanShepherd shepherd = dog as GermanShepherd; NALLinux联盟 NALLinux联盟 if (shepherd != null ) NALLinux联盟 NALLinux联盟 {…} NALLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|