본문 바로가기
소프트웨어 개발(SW Dev)/C#

Code Review checklist and guidelines for C# Developers

by flowhistory 2021. 3. 22.

Introduction This is a General Code Review checklist and guidelines for C# Developers, which will be served as a reference point while development.

 

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: docs.microsoft.com/en-us/archive/msdn-magazine/2010/january/code-cleanup-9-useful-tactics-for-paying-back-technical-debt

 

Code Cleanup - 9 Useful Tactics for Paying Back Technical Debt

12/15/2015 15 minutes to read In this article --> January 2010 Volume 25 Number 01 Code Cleanup - 9 Useful Tactics for Paying Back Technical Debt By David Laribee | January 2010 In the December 2009 issue of MSDN Magazine I gave advice for identifying and

docs.microsoft.com

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: docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions?redirectedfrom=MSDN

 

Capitalization Conventions - Framework Design Guidelines

Apply capitalization conventions for identifiers, compound words, and common terms. Understand how case sensitivity works in .NET.

docs.microsoft.com

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: en.wikipedia.org/wiki/SOLID

 

SOLID

Object-oriented programming design principles This article is about the SOLID principles of object-oriented programming. For the fundamental state of matter, see Solid. For other uses, see Solid (disambiguation). In object-oriented computer programming, SO

en.wikipedia.org

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.

 

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.

 

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.

 

11. Proper implementation of Exception Handling (try/catch and finally blocks) and logging of exceptions.

 

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: www.codeproject.com/Tips/593014/Steps-Check-in-Check-Out-Mechanism-for-TFS-To-Avoi

 

Steps: Check-in/Check-Out Mechanism for TFS - To Avoid Build Errors and Improve Productivity

Check-in/Check-Out mechanism for TFS - To avoid Build errors and improve productivity.

www.codeproject.com

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.

 

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.

 

18. Try using LINQ queries and Lambda expressions to improve Readability.

 

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.

 

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.

 

21. Use interfaces wherever needed to maintain decoupling. Some design patterns came into existence due to the usage of interfaces.

Refer: docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/3b5b8ezk(v=vs.90)?redirectedfrom=MSDN

 

When to Use Interfaces

When to Use Interfaces 11/16/2012 2 minutes to read In this article --> Interfaces are a powerful programming tool because they let you separate the definition of objects from their implementation. Interfaces and class inheritance each have advantages and

docs.microsoft.com

22. Mark a class as sealed or static or abstract as per its usage and your need.

Refer: docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/ms173150(v=vs.100)?redirectedfrom=MSDN

 

Abstract and Sealed Classes and Class Members (C# Programming Guide)

Abstract and Sealed Classes and Class Members (C# Programming Guide) 02/04/2013 2 minutes to read In this article --> The abstract keyword enables you to create classes and class members that are incomplete and must be implemented in a derived class. The s

docs.microsoft.com

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 docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/acdd6hb7(v=vs.100)?redirectedfrom=MSDN

 

readonly (C# Reference)

readonly (C# Reference) 02/04/2013 2 minutes to read In this article --> The readonly keyword is a modifier that you can use on fields. When a field declaration includes a readonly modifier, assignments to the fields introduced by the declaration can only

docs.microsoft.com

 

30. Avoid type casting and type conversions as much as possible; because it is a performance penalty.

 

31. Override ToString (from Object class) method for the types which you want to provide with custom information.

 

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.

 

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.



출처 :

www.codeproject.com/Reference/593751/Code-Review-Checklist-and-Guidelines-for-Csharp-De

 

Code Review Checklist and Guidelines for C# Developers

This is a general code review checklist and guidelines for C# developers, which will serve as a reference point for development.

www.codeproject.com

 

728x90

'소프트웨어 개발(SW Dev) > C#' 카테고리의 다른 글

Clearcove.Logging  (0) 2021.06.18
c# 언어 표준  (0) 2021.04.07
Visual Studio Code로 C# 프로그램 개발  (0) 2021.03.19
.NET Framework 다운로드 경로  (0) 2021.03.17
DataGridView 컬럼 폰트 설정  (0) 2020.12.11

댓글