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

(Ruby) Tools, tools everywhere

(Ruby) Tools, tools everywhere

Session delivered at several Ruby User Groups during December 2017 and March 2018. A living repository provided as companion material to the talk can be found @ https://github.com/dcarral/ruby-tools.

Talk description:

There are a myriad of open-source tools which can help us in our day-a-day coding activities. Most of them, however, are unknown or rarely used by most developers.

During this session we walk through some (Ruby) tools, covering interesting configuration options and discussing ideas on how to incorporate them into our development workflow.


Daniel Carral

December 12, 2017

More Decks by Daniel Carral

Other Decks in Programming


  1. Tools, tools everywhere. @dcarral dcarral.org

  2. None
  3. github.com/dcarral/ruby-tools

  4. Agenda ➔ Intro (2 min) Who are you? Why tools?

    ➔ (Ruby) Tools (15-20 mins) Happy hacking! :) ➔ Outro (2 mins) Using the source And now?
  5. 1. Intro Who are you? Why tools?

  6. Who are you?

  7. None
  8. RUG::B Softwerkskammer Berlin

  9. On a journey Corey Haines

  10. And now...

  11. Why tools?

  12. None
  13. “Tools amplify your talent. The better your tools, and the

    better you know how to use them, the more productive you can be.” David Thomas & Andrew Hunt The Pragmatic Programmer
  14. None
  15. None
  16. 2. (Ruby) Tools

  17. First one?

  18. RuboCop

  19. “A Ruby static code analyzer, based on the community Ruby

    style guide.”
  20. RuboCop: tips & tricks

  21. Brakeman

  22. “A static analysis security vulnerability scanner for Ruby on Rails

  23. By the way…

  24. None
  25. bundler-audit

  26. “Patch-level verification for Bundler”

  27. Reek

  28. “Reek is a code smell detector for Ruby.”

  29. Flog

  30. “Reports the most tortured code in an easy to read

    pain report. The higher the score, the more pain the code is in.”
  31. By the way… (2)

  32. None
  33. “Metrics are fallible but human opinion is no more precise.

    Checking metrics regularly will keep you humble and improve your code.” Sandi Metz & Katrina Owen 99 bottles of OOP
  34. SandiMeter

  35. None
  36. Just those?

  37. • Our text editor / IDE • Command line •

    Bundler • Rake • Our testing framework • Mutant • Approvals • ... • Travis • Code Climate • Danger • Guard • Flay • Rubrowser • Bundler-audit • Peek
  38. 3. Outro

  39. Using the source

  40. None
  41. “The best way to prepare [to be a programmer] is

    to write programs, and to study great programs that other people have written. I went to the garbage cans at the CS center and fished out listings of their operating system.” Bill Gates Programmers at work
  42. None
  43. And now?

  44. “Start with a basic set of generally applicable tools. As

    you gain experience, and as you come across special requirements, you’ll add to this basic set.” David Thomas & Andrew Hunt The Pragmatic Programmer
  45. None
  46. • Enforcing standards • Code smells • Software metrics •

    Using the source • .. • Open spaces • Deliberate practice • Code katas / dojos • Code retreats • Journey-crafter tours • XP explained • The Pragmatic Programmer • 99 bottles of OOP • Apprenticeship Patterns • RuboCop • Brakeman • Reek • Flog • SandiMeter • bundler-audit @dcarral dcarral.org