1 / 36

Rules to Healthier Code

Rules to Healthier Code. Presented by Adam Cogan ( Chief Architect for www.ssw.com.au ). About. Chief Architect for www.ssw.com.au doing: internal corporate development and generic off-the-shelf databases Clients: Royal & Sun Alliance, Westbus, Microsoft…

snana
Download Presentation

Rules to Healthier Code

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rules to Healthier Code Presented by Adam Cogan (Chief Architect for www.ssw.com.au)

  2. About • Chief Architect for www.ssw.com.au doing: • internal corporate development and • generic off-the-shelf databases • Clients: Royal & Sun Alliance, Westbus, Microsoft… • President .NET User Group, Sydney • Speaker for Microsoft TechEd and Roadshows, Dev Conn, VSLive…. • Microsoft Regional Director, Australia… • AdamCogan@ssw.com.au

  3. Agenda • Unit Testing • NUnit • Test Driven • Other Unit Tests • Code Analysis • Microsoft FxCop • SSW Code Auditor • Code Profiling • JetBrains dotTrace Profiler • Build Server • Cruise Control • The Future • Other Tools • Visual Studio Team System

  4. What is Healthy code? What is Healthy Code anyway? Why is it Important? What about Documentation? Is your spec in bite-sized pieces? Does your spec have the 3 important things?

  5. NUnit How many unit tests do you write…? www.nunit.org

  6. When do you write Unit Tests? 100% unit tests is 100% impractical Unit tests should be written for: • Dependencies – e.g. DLLs Run time errors (JIT) • Dependencies – e.g. Database Schema, Datasets, Web Services • Fragile Code – e.g. Regular Expressions • When errors can be difficult to spot – e.g. Rounding, arithmetic, calculations • Performance – e.g. Slow forms • Don’t: • When the unit tests are bigger than the original (Insert) • Generated Code like Insert, Update, Delete Rules to Better Unit Testing http://www.ssw.com.au/ssw/standards/Rules/RulesToBetterUnitTests.aspx

  7. Do you have ‘Run Unit Tests’ on your Help Menu? • http://www.ssw.com.au/ssw/Rules/RulesToBetterUnitTests.aspx#MenuUnitTests • A user should be able to run unit tests through an application. • This aids the developers quickly identify any problems with the application by running the unit tests.

  8. Test Driven .NET • Do you run Unit Tests with the right click of your mouse? • Run unit tests from your right click menu http://www.testdriven.net/

  9. What about other things? • Access Unit Tests • SSW Performance PRO (www.ssw.com.au/ssw/PerformancePRO) • FMS Total Access Analyzer (http://www.fmsinc.com/Products/analyzer/) • SQL Reporting Services Unit Tests • SSW Report Validator • Performance Unit Tests • MBUnit (http://mbunit.tigris.org) • Javascript Unit Tests • JsUnit (http://www.edwardh.com/jsunit/) • www.edwardh.com/jsunit/runner/tests/jsUnitTestFailures.html • And The Backend?

  10. SSW Performance Pro

  11. SSW Report Validator

  12. MBUnit

  13. JsUnit

  14. FxCop What is FxCop? Code analysis tool • for .NET managed code assemblies Checks: • Library design • Naming conventions • Performance • Security Don’t: • Globalization http://www.gotdotnet.com/team/fxcop/

  15. SSW Code Auditor What is Code Auditor? • Maintains coding standards • Checks C# and VB.NET code • Prevents bad coding practices • Integration into Visual Studio www.ssw.com.au/ssw/CodeAuditor

  16. SSW Code Auditor • Extensive rule set that is customizable • http://www.ssw.com.au/ssw/CodeAuditor/default.aspx#Rules

  17. SSW Code Auditor • Produces an XML Report

  18. JetBrains dotTrace Profiler • Measures the performance of ASP.NET or Windows Form Application • Quickly identify bottle necks through Hot Spots http://www.jetbrains.com/profiler/

  19. Test Driven Process Q: What is VSS? A: It is not a file share • Check Out • Compile • Run Unit Tests • If it is OK then Start • Develop… Develop… Develop… • Run Unit Tests • If OK Check In • Get Latest • Run Unit Tests Again to confirm • http://www.ssw.com.au/SSW/Standards/Rules/RulesToBetterUnitTests.aspx#TestDrivenProcess • Want to poison the system – I smell a rat

  20. Cruise Control What is Cruise Control? • Automated Continuous Integration server • Integration with a variety of Source Control systems • Integration with other external tools, such as NAnt and Visual Studio • Can build multiple projects on one server • Remote management and reporting • There is always one http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET

  21. Cruise Control Features: • Web Portal for build info • Tray icon notification

  22. Visual Studio Team System Key Features: • Integration of: • Unit Testing • Code Coverage • Source Control • Code Analysis (FxCop) • Code Profiling http://lab.msdn.microsoft.com/teamsystem/

  23. TeamCommunication QualityEarly & Often Design forOperations Platform For Innovation Developer Tester SolutionArchitect ProjectManager InfrastructureArchitect Overview

  24. Visual Studio Team System • Integrated Unit Testing • Code coverage • See what code has been executed • Static code analysis • FxCop in the task list • Code profiling • Based on two internal profilers: • Sampling (Light weight) • Instrumented (Heavy duty) • Sequence view examines running threads • Caller-callee, callstack, and function views (there today) • Why was it built? To avoid the cat problem

  25. Integrated Unit Testing Integrated Unit Testing

  26. Code Coverage

  27. Static Code Analyzer

  28. Code Profiling

  29. Load Testing Perf Counter integrationand monitoring

  30. Integrated Reporting

  31. Integrated Build Server

  32. Conclusion • To achieve healthy code: • Unit Testing - NUnit • Code Analysis – FxCop and SSW Code Auditor • Build Server – Cruise Control .NET • Visual Studio Team System (everything is integrated) • The resources don’t hurt either! • http://www.ssw.com.au/ssw/Standards/DeveloperGeneral/netTools.aspx

  33. Resources • SSW .NET Toolkit http://www.ssw.com.au/ssw/NetToolkit/ • SSW Code Auditor http://www.ssw.com.au/ssw/CodeAuditor/ • SSW Performance PRO http://www.ssw.com.au/ssw/PerformancePro/ • FMS Total Access Analyzer http://www.fmsinc.com/products/analyzer/ • NUnit http://www.nunit.org • MBUnit http://mbunit.tigris.org • Test Driven http://www.testdriven.net/

  34. Resources • JetBrains dotTrace Profiler http://www.jetbrains.com/profiler/ • JsUnit http://www.edwardh.com/jsunit/ • FxCop http://www.gotdotnet.com/team/fxcop/ • Cruise Control .NEThttp://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET • Visual Studio Team System http://lab.msdn.microsoft.com/teamsystem/default.aspx

  35. 2 things AdamCogan@ssw.com.au

  36. Thank You!

More Related