C#开发者通用性代码审查清单

这是为C#开发者准备的通用性代码审查清单,能够当作开发过程当中的参考。这是为了确保在编码过程当中,大部分通用编码指导原则都能注意到。对于新手和缺少经验(0到3年工做经验)的开发者,参考这份清单编码会很帮助。程序员

 

 清单

  1. 确保没有任何警告(warnings)。web

  2.若是先执行Code Analysis(启用全部Microsoft Rules)再消除全部警告就更好了。算法

  3. 去掉全部没有用到的usings。编码过程当中去掉多余代码是个好习惯。(参考:msdn数据库

  4. 在合理的地方检查对象是否为’null’,避免运行的时候出现Null Reference Exception。编程

  5. 始终遵循命名规范。通常而言变量参数使用驼峰命名法,方法名和类名使用Pascal命名法。(参考:msdn设计模式

  6. 请确保你了解SOLID原则。安全

  根据维基百科定义:在程序设计领域,SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一块儿应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。SOLID所包含的原则是经过引起编程者进行软件源代码的代码重构进行软件的代码异味清扫,从而使得软件清晰可读以及可扩展时能够应用的指南。SOLID被典型的应用在测试驱动开发上,而且是敏捷开发以及自适应软件开发的基本原则的重要组成部分。参考:wiki/SOLID_(面向对象设计)网络

  7. 代码可重用性:若是一块代码已经被使用超过一次,或者你但愿未来使用它,请提取成一个方法。将重复的工做作成通用的方法放在相关的类中,这样一旦你完成别人就可使用了。将经常使用功能开发成用户控件,这样能够跨项目重用它们。(参考: 、 架构

  8. 代码一致性:比方说,Int32写成int,String写成string,应该在代码里保持统一形式。不能一会二写成int一下子写成Int32。工具

  9. 代码可读性:代码应该是可维护的,便于其余开发者理解。(参考:msdn

  10. 释放非托管资源,好比文件I/O,网络资源等。一旦使用结束就应该释放它们。若是你想一旦超出使用范围就自动释放对象,可使用usings将非托管代码括起来。参考:msdn

  11. 合理实现异常处理(try/catch和finally块)和异常记录。参考:msdn

  12. 确保代码中方法的行数不要过多,不超过30到40行。

  13. 及时用代码管理工具check-in/check-out代码。(好比TFS) 参考:codeproject.com

  14. 相互审查代码:和你的同事交换代码,实现内部审查。

  15. 单元测试:编写开发测试用例完成单元测试,确保代码被送到QA之前,基本测试完成。参考:msdn

  16. 尽可能避免for/foreach循环嵌套和if条件嵌套。

  17. 若是代码只会使用一次,请使用匿名类型。参考:msdn

  18. 尽可能使用LINQ查询和Lambda表达式,增长可读性。参考:msdn

  19. 合理使用var、object和dynamic关键字。因为不少开发者会感到困惑或者知道的不多,会以为它们有些类似,故而交换使用,这是要避免的。参考:blogs.msdn

  20. 使用访问限定符(private, public, protected, internal, protected internal)限定每一个方法、类或变量的须要范围。比方说若是一个类只会在程序集内使用,那么定义成internal就足够了。参考:msdn

  21. 在须要保持解耦的地方使用接口,有些设计模式的出现也是因为接口的使用。参考:msdn

  22. 按照用法和须要将类定义为sealed、static或abstract。参考:msdn

  23. 若是须要屡次串联,请使用Stringbuilder代替string,这能够节省堆内存。

  24. 检查是否有不可能执行的代码,若是有,请修改。

  25. 在每一个方法前注释,说明它的用法、输入类型和返回值类型信息。

  26. 使用相似Silverlight Spy的工具,检查和操控Silverlight应用在运行时对XMAL的渲染,以此来改善效率。这能够在设计执行XAML时,节省大量退回和来回修改的时间。

  27. 使用filddler工具经过检查HTTP/网络流量和带宽,来跟踪web应用和服务的性能。

  28. 若是你想确认Visual Studio之外的方法,请使用WCFTestClient.exe工具,或者装载它的进程到Visual Studio来进行调试。

  29. 在任何合理的地方使用constants和readonly。参考:/msdnmsdn

  30. 尽可能避免强制转换和类型转换,由于会形成性能损失。参考:msdn

  31. 对于你想提供自定义信息的类,请重载ToString(来自Object类)。参考:msdn

  32. 避免直接从其余代码中ctrl+c/ctrl+v。一直建议仍是本身用手敲,即便你已经找到相关代码。这样能够锻炼本身写代码能力,还能正确理解那段代码的用法。最终你永远都不会忘记那段代码。

  33. 保持阅读书籍和文章的良好习惯,遵循大神们的实践指导。(好比微软专家和一些著名的专家,Martin Fowler, Kent Beck, Jeffrey Ritcher, Ward Cunningham, Scott Hanselman, Scott Guthrie, Donald E Knuth.)

  34. 确认代码是否有内存泄漏。若是有,请确保已修正。参考:blogs.msdn.com

  35. 尽量参加专家们组织的技术研讨会,能够接触到最新的软件趋势、技术和最佳实践

  36. 要透彻理解OOP概念,并尽量在代码里实现。

  37. 知道项目设计架构,能够从总体上理解程序的执行流程。

  38. 采起必要措施阻止避免任何交叉脚本攻击、SQL注入和其余安全漏洞。

  39. 永远记得将保密和敏感信息加密(经过使用好的加密算法),好比保存到数据库的密码和保存在web.config文件中的链接字符,要避免被非认证的用户操纵。

  40. 避免对已知类型(原始类型)使用默认关键字,好比int, decimal, bool等。多数状况下,若是不肯定是值类型仍是引用类型,就使用泛型类型(T)。参考:msdn

  41. 微软(在代码分析条例和指导中)并不推荐使用’out’和’ref’,这些关键字是经过引用传参,请注意,’ref’参数在传入被调用方法以前,应当在调用方法中先初始化,但’out’参数就不是这样。参考:msdn

相关文章
相关标签/搜索