Best Practices in Coding Standards and Code Review Guidelines

Slide Note
Embed
Share

Embrace coding standards and code review practices to ensure unified, clean, and efficient code. Follow guidelines for coding standards, property design, collections, commenting, and more to enhance code quality and reduce bugs. Learn from industry experts like Steve McConnell, Krzysztof Cwalina, and Brad Adams to build robust and maintainable software frameworks.


Uploaded on Sep 29, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Coding Standard & Code Review Milan Vukoje www.vukoje.net

  2. Soprex SkfOffice2 SkfOffice3 Big5 Quality oriented We are hiring

  3. Themes Coding Standard Code Review Tools

  4. Coding Standard In a complex program, architectural guidelines give the program structural balance and construction guidelines provide low-level harmony. Without a unifying discipline, your creation will be jumble of sloppy variations in style. One key to successful programming is avoiding arbitrary variations so that your brain can be free to focus on the variations that are really needed. -- Steve McConell

  5. CS Advantages Unified code Faster code understanding/modifying Easier code smell identification Cleaner API Avoiding genius solutions (KISS) Reducing chances for bugs Real working framework

  6. The Book Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries -- Krzysztof Cwalina and Brad Adams

  7. Soprex Coding Standard Code Commenting Naming Code Layout Type Design Guidelines Member Design Exception Management Stored Procedures .NET types usage

  8. Available Tools VS compiler warnings Code Analysis StyleCop TFS check in policy Performance issues

  9. Coding Standard 1. Code Commenting DO comment API. DO NOT comment whole methods or method bodies. If some code is not used, it should be deleted. DO comment complex methods, especially if/else statements.

  10. Coding Standard 2. Property Design DO NOT provide set-only properties. DO provide sensible default values for all properties. DO NOT implement time consuming operations in properties.

  11. Coding Standard 3. Collections DO NOT use weakly typed collections in public APIs. DO use ReadOnlyCollection<T> for properties representing read-only collections. DO NOT return null values from collection properties or from methods returning collections DO NOT return snapshots collections from properties

  12. Coding Standard 4. Event Design DO use System.EventHandler<T> DO use a return type of void for event handlers DO NOT pass null as the event data ,pass EventArgs.Empty instead. DO use a protected virtual method to raise each event. public event EventHandler<AlarmRaisedEventArgs> AlarmRaised; protected virtual void OnAlarmRaised (AlarmRaisedEventArgs e) { EventHandler<AlarmRaisedEventArgs> handler = AlarmRaised; if (handler ! = null ) { handler (this, e); } }

  13. Coding Standard 5. Exception Management DO NOT return error codes. DO NOT throw or catch System.Exception. DO provide a rich and meaningful message text targeted at the developer when throwing an exception. DO throw an InvalidOperationException if the object is in an inappropriate state. DO throw ArgumentException or one of its subtypes if bad arguments are passed to a member. AVOID catching and wrapping nonspecific exceptions. DO specify the inner exception when wrapping exceptions.

  14. Rules origin Standardization (Readability) Common mistakes Future bugs OOP best practices API usability

  15. Big Investment? Well NO! Only for frameworks? Takes to much time? Reduces bugs? Tools are free

  16. Adopting the standard Real challenge Needs support in upper management and team leader determination Should everybody agree? Redefine what does done mean

  17. Getting clean code Start small Add rules incrementally Divide and conquer Use tools Intensive code reviews

  18. Code Review

  19. Organizing Code Review Formal CR Informal CR Coding time reviewing Pair programming Code testing with code inspections Keep it integrated

  20. What to review? Newbie's code Challenging tasks Spikes Buggy code Architecture significant tasks Widely reused code

  21. Code Review Checklist Clarity Maintainability Accuracy Security Scalability Reusability OOP principles, encapsulation

  22. Advantages Two heads are smarter Collective code ownership Enhances communication and learning Discovering bugs/problems early

  23. Potential problems Consumes time Focusing on enhancing code rather than criticism Avoiding general arguments and theoretical discussion Encouraging positive critics

  24. Tools Code smells Code Metrics TFS Support

  25. Summary Programming is hard (Clean) Code is very important Coding Standard is essential tool Code Review takes time but brings many advantages Requires firm climate change Use tools

  26. Questions? Milan Vukoje www.vukoje.net vukoje@gmail.com

  27. Molimo vas da popunite ankete! Please fill out the evaluations! Va e mi ljenje ini osnovu slede e Sinergije i omogu ava nam da oblikujemo sadr aj u skladu sa Va im eljama. Your opinion forms the next Sinergija conference, and it provides us with the means to shape its content to best suit you. Svi posetioci koji popune ankete ulaze u nagradnu igru All attendees that fill out the evaluations are taking part in drawing of special prizes

More Related Content