Checklist
1. Make sure that there shouldn't be any project warnings.
2. It will be much better if Code Analysis is performed on a project (with all Microsoft Rules enabled)
and then remove the warnings.
3. All unused usings need to be removed. Code cleanup for unnecessary code is always a good
practice.
Refer: http://msdn.microsoft.com/en-us/magazine/ee335722.aspx.
4. 'null' check need to be performed wherever applicable to avoid the Null Reference Exception at
runtime.
5. Naming conventions to be followed always. Generally for variables/parameters follow Camel casing
and for method names and class names follow Pascal casing.
Refer: http://msdn.microsoft.com/en-us/library/ms229043.aspx.
6. Make sure that you are aware of SOLID principles.
Definition from Wikipedia: In computer programming, SOLID (Single responsibility, Open-closed,
Liskov substitution, Interface segregation and Dependency inversion) is a mnemonic acronym
introduced by Michael Feathers for the "first five principles" identified by Robert C. Martin[1][2] in the
early 2000s[3] that stands for five basic principles of object-oriented programming and design. The principles when applied together intend to make it more likely that a programmer will create a system that is easy to maintain and extend over time.[3] The principles of SOLID are guidelines that can be applied while working on software to remove code smells by causing the programmer to refactor the software's source code until it is both legible and extensible. It is typically used with test-driven development, and is part of an overall strategy of agile and adaptive programming.
Refer: http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
7. Code Reusability: Extract a method if same piece of code is being used more than once or you expect it to be used in future. Make some generic methods for repetitive task and put them in a related class so that other developers start using them once you intimate them. Develop user controls for common functionality so that they can be reused across the project.
Refer: http://msdn.microsoft.com/en-us/library/office/aa140806(v=office.10).aspx
http://blogs.msdn.com/b/frice/archive/2004/06/11/153709.aspx
8. Code Consistency: Let's say that an Int32 type is coded as int and String type is coded as string then they should be coded in that same fashion across the application. But not like sometimes int and sometimes as Int32.
9. Code Readability: Should be maintained so that other developers understand your code easily.
Refer: http://msdn.microsoft.com/en-IN/library/aa291591(v=vs.100).aspx
10. Disposing of Unmanaged Resources like File I/O, Network resources, etc. They have to be disposed of once their usage is completed. Use usings block for unmanaged code if you want to automatically handle the disposing of objects once they are out of scope.
Refer: http://msdn.microsoft.com/en-us/library/498928w2.aspx
11. Proper implementation of Exception Handling (try/catch and finally blocks) and logging of exceptions.
Refer: http://msdn.microsoft.com/en-us/library/vstudio/ms229005(v=vs.100).aspx
12. Making sure that methods are having less number of lines of code. Not more than 30 to 40 lines.
13. Timely check-in/check-out of files/pages at source control (like TFS).
Refer: http://www.codeproject.com/Tips/593014/Steps-Check-in-Check-Out-Mechanism-for-TFS-To-avoi
14. Peer code reviews. Swap your code files/pages with your colleagues to perform internal code reviews.
15. Unit Testing. Write developer test cases and perform unit testing to make sure that basic level of testing is done before it goes to QA testing.
Refer: http://msdn.microsoft.com/en-us/magazine/cc163665.aspx
16. Avoid nested for/foreach loops and nested if conditions as much as possible.
17. Use anonymous types if code is going to be used only once.
Refer: http://msdn.microsoft.com/en-us/library/vstudio/bb397696.aspx
18. Try using LINQ queries and Lambda expressions to improve Readability.
Refer: http://msdn.microsoft.com/en-us/library/bb308959.aspx
19. Proper usage of var, object, and dynamic keywords. They have some similarities due to which most of the developers have confusions or don’t know much about them and hence they use them interchangeably, which shouldn't be the case.
Refer: http://blogs.msdn.com/b/csharpfaq/archive/2010/01/25/what-is-the-difference-between-dynamic-and-object-keywords.aspx
20. Use access specifiers (private, public, protected, internal, protected internal) as per the scope need of a method, a class, or a variable. Let's say if a class is meant to be used only within the assembly then it is enough to mark the class as internal only.
Refer: http://msdn.microsoft.com/en-us/library/kktasw36.aspx
21. Use interfaces wherever needed to maintain decoupling. Some design patterns came into existence due to the usage of interfaces.
Refer: http://msdn.microsoft.com/en-IN/library/3b5b8ezk(v=vs.100).aspx
22. Mark a class as sealed or static or abstract as per its usage and your need.
Refer: http://msdn.microsoft.com/en-us/library/ms173150(v=vs.100).aspx
23. Use a Stringbuilder instead of string if multiple concatenations required, to save heap memory.
24. Check whether any unreachable code exists and modify the code if it exists.
25. Write comments on top of all methods to describe their usage and expected input types and return type information.
26. Use a tool like Silverlight Spy to check and manipulate rendered XAML in Runtime of a Silverlight application to improve productivity. This saves lot of back & forth time between Design & Run views of the XAML.
27. Use fiddler tool to check the HTTP/network traffic and bandwidth information to trace the performance of web application and services.
28. Use WCFTestClient.exe tool if you want to verify the service methods out of the visual studio or by attaching its process to visual studio for debugging purpose.
29. Use constants and readonly wherever applicable.
Refer:
o http://msdn.microsoft.com/en-us/library/acdd6hb7(v=vs.100).aspx
o http://msdn.microsoft.com/en-us/library/e6w8fe1b(v=vs.100).aspx
30. Avoid type casting and type conversions as much as possible; because it is a performance penalty.
Refer: http://msdn.microsoft.com/en-us/library/ms173105.aspx
31. Override ToString (from Object class) method for the types which you want to provide with custom information.
Refer: http://msdn.microsoft.com/en-us/library/ms173154(v=vs.100).aspx
32. Avoid straightaway copy/pasting of code from other sources. It is always recommended to hand written the code even though if you are referring the code from some sources. By this you will get good practice of writing yourself the code and also you will understand the proper usage of that code; finally you never forget it.
33. Always make it a practice to read books/articles, upgrade and follow the Best Practices and Guidelines by industry experts like Microsoft experts and well-known authors like Martin Fowler, Kent Beck, Jeffrey Ritcher, Ward Cunningham, Scott Hanselman, Scott Guthrie, Donald E Knuth.
34. Verify whether your code have any memory leakages. If yes, make sure that have been fixed.
Refer: http://blogs.msdn.com/b/davidklinems/archive/2005/11/16/493580.aspx
35. Try attending technical seminars by experts to be in touch with the latest software trends and technologies and best practices.
36. Understand thoroughly the OOPs concepts and try implementing it in your code.
37. Get to know about your project design and architecture to better understand the flow of your application as a whole.
38. Take necessary steps to block and avoid any cross scripting attacks, SQL injection, and other security holes.
39. Always encrypt (by using good encryption algorithms) secret/sensitive information like passwords while saving to database and connection strings stored in web.config file(s) to avoid manipulation by unauthorized users.
40. Avoid using default keyword for the known types (primitive types) like int, decimal, bool, etc. Most of the times it should be used in case of Generic types (T) as we may not be sure whether the type is a value type or reference type.
Refer: http://msdn.microsoft.com/en-us/library/xwth0h0d(v=vs.100).aspx

Code Review Checklist and Guidelines for C# Developers的更多相关文章

  1. Code Review Checklist

    左按:当年需要一份详细的代码评审清单作参考,翻译了此文. 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] General Code Smoke Test 通用测试 Comm ...

  2. Java相关|Code Review Checklist(Server)

    安全 所有入参均经过校验,包括验证参数数据类型.范围.长度,尽可能采用白名单形式验证所有的输入.对于非法请求,记录WARN log.参考Input Validation Cheat Sheet:前后端 ...

  3. 0919-The Standard of Code Review

    The primary purpose of code review is to make sure that the overall code health of Google’s code bas ...

  4. 15个最佳的代码评审(Code Review)工具

    代码评审可以被看作是计算机源代码的测试,它的目的是查找和修复引入到开发阶段的应用程序的错误,提高软件的整体素质和开发者的技能.代码审查程序以各种形式,如结对编程,代码抽查等.在这个列表中,我们编制了1 ...

  5. 大家是怎么做Code Review的?

    先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Juni ...

  6. Code Review Engine Learning

    相关学习资料 https://www.owasp.org/index.php/Code_review https://www.owasp.org/images/8/8e/OWASP_Code_Revi ...

  7. 什么是Code Review(转)

    Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节.本文通过对Code Review的一些概念和经验的探讨,就如何进行C ...

  8. 17款code review工具

    本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作! 好的代码审查器可以大大地帮助程序员提高代码质量,减少错误几率. 虽然现在市场上有许多可用的代码审查工具,但如何挑选也是一个艰巨的任务.在咨询 ...

  9. 什么是Code Review

    Code Review 是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节. 本文通过对Code Review的一些概念和经验的探讨,就如何进 ...

随机推荐

  1. haproxy 学习

    https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#4-option%20tcp-check https://www.hapro ...

  2. struts框架之总结OGNL表达式的特殊的符号

    1. # 符号的用法 * 获得contextMap中的数据 > <s:property value="#request.name"/> > <s:pr ...

  3. 无法更新 EntitySet 因为它有一个 DefiningQuery

    DbFirst 使用 MVC+EF+仓储+ADO.NET实体数据模型 无法更新 EntitySet“Book”,因为它有一个 DefiningQuery definingqueryentityfram ...

  4. linux下添加用户并赋予root权限

    1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码Changing pass ...

  5. 全基因组测序 从头测序(de novo sequencing) 重测序(re-sequencing)

    全基因组测序 全基因组测序分为从头测序(de novo sequencing)和重测序(re-sequencing). 从头测序(de novo)不需要任何参考基因组信息即可对某个物种的基因组进行测序 ...

  6. 8.15 自定义tr行 滚动 信息行的滚动

    <table class="zixun-con-table"> <tr class="hover"> <th style=&quo ...

  7. DevExpress VCL 13.1.2 发布

    DevExpress VCL 的2013 第一个公开版发布, 基本上就是一些维护,没有大的变化,也没有FM 的支持. What's New in DevExpress VCL 13.1.2   Rel ...

  8. Kubernetes web界面kubernetes-dashboard安装

    本文讲述的是如何部署K8s的web UI,前提是已经有一个k8s集群后,按照如下步骤进行即可.(如下步骤都是在master节点上进行操作) 1.下载kubernetes-dashboard.yaml文 ...

  9. SQL之mysql常用操作语句(入门级)

    1.进入数据库: mysql -u root -p mysql -h localhost -u root -p database_name 2.列出数据库 show databases; 3.选择数据 ...

  10. matplotlib在MAC系统下中文字体显示问题

    最近想把部分python数据分析的代码从win系统迁移到MAC上,有部分图片上涉及中文显示,迁移到MAC上warning: UserWarning: findfont: Font family [u' ...