Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Prove Your Code Works: How to Communicate Quality

Prove Your Code Works: How to Communicate Quality

Professionalism has two core features, expertise and guarantees. This talk delves into the topic of observability and how professional software developers can guarantee their software works and communicate this to others. It covers the checks to make, the metrics to collect and the documentation to write so developers can prove code works.

Rob Waller

June 03, 2020
Tweet

More Decks by Rob Waller

Other Decks in Technology

Transcript

  1. W: rbrt.wllr.info | T: @RobDWaller
    Prove Your
    Code Works
    How to Communicate Quality

    View Slide

  2. W: rbrt.wllr.info | T: @RobDWaller
    Hello!
    Rob Waller, Aylesbury UK
    Roles: Developer, Manager, Architect.
    Languages: PHP, JavaScript, Rust.
    Work: ReallySimpleJWT, csp_generator.
    Home: 1x , 2x

    View Slide

  3. W: rbrt.wllr.info | T: @RobDWaller
    What is Professionalism?
    Expertise Guarantees

    View Slide

  4. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  5. W: rbrt.wllr.info | T: @RobDWaller
    Checks
    Metrics
    Documentation

    View Slide

  6. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  7. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  8. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  9. W: rbrt.wllr.info | T: @RobDWaller
    Mutation Tests
    Fault Injection
    Failing Tests
    Effective Tests
    Infection PHP
    Stryker

    View Slide

  10. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  11. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  12. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  13. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  14. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  15. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  16. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  17. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  18. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  19. W: rbrt.wllr.info | T: @RobDWaller
    Code Validity

    View Slide

  20. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  21. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  22. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  23. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  24. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  25. W: rbrt.wllr.info | T: @RobDWaller
    LOC

    View Slide

  26. W: rbrt.wllr.info | T: @RobDWaller
    Cyclomatic Complexity
    N-Path Complexity

    View Slide

  27. W: rbrt.wllr.info | T: @RobDWaller

    CRAP

    View Slide

  28. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  29. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  30. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  31. W: rbrt.wllr.info | T: @RobDWaller
    Major.Minor.Patch

    View Slide

  32. W: rbrt.wllr.info | T: @RobDWaller
    Release Notes!!

    View Slide

  33. W: rbrt.wllr.info | T: @RobDWaller
    READMEs
    Introduction
    Installation
    Setup
    Basic Usage
    Advanced Usage

    View Slide

  34. W: rbrt.wllr.info | T: @RobDWaller

    View Slide

  35. W: rbrt.wllr.info | T: @RobDWaller
    Communicate Quality
    Run Checks
    Track Metrics
    Write Documentation

    View Slide

  36. W: rbrt.wllr.info | T: @RobDWaller
    Useful Tools & Links
    Mutation Tests
    Infection PHP: https://infection.github.io/guide/
    Stryker: https://stryker-mutator.io/
    Mess Detection
    PHPMD: https://phpmd.org/
    ESLint: https://eslint.org/docs/rules/complexity
    Lines of Code
    PHPLOC: https://packagist.org/packages/phploc/phploc
    CRAP Index
    PHPUnit: https://phpunit.readthedocs.io/en/9.1/code-
    coverage-analysis.html
    Semantic Versioning
    https://semver.org/
    Code Validity
    PHPStan: https://phpstan.org/
    Psalm: https://psalm.dev/
    TypeScript: https://www.typescriptlang.org/
    Code Coverage
    CodeCov: https://codecov.io/
    Coveralls: https://coveralls.io/

    View Slide

  37. W: rbrt.wllr.info | T: @RobDWaller
    T: @RobDWaller
    W: rbrt.wllr.info
    GH: RobDWaller

    View Slide