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 full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    CRAP

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide