Slide 1

Slide 1 text

Tools, tools everywhere. @dcarral dcarral.org

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

github.com/dcarral/ruby-tools

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

1. Intro Who are you? Why tools?

Slide 6

Slide 6 text

Who are you?

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

RUG::B Softwerkskammer Berlin

Slide 9

Slide 9 text

On a journey Corey Haines

Slide 10

Slide 10 text

And now...

Slide 11

Slide 11 text

Why tools?

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

“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

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

2. (Ruby) Tools

Slide 17

Slide 17 text

First one?

Slide 18

Slide 18 text

RuboCop

Slide 19

Slide 19 text

“A Ruby static code analyzer, based on the community Ruby style guide.”

Slide 20

Slide 20 text

RuboCop: tips & tricks

Slide 21

Slide 21 text

Brakeman

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

By the way…

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

bundler-audit

Slide 26

Slide 26 text

“Patch-level verification for Bundler”

Slide 27

Slide 27 text

Reek

Slide 28

Slide 28 text

“Reek is a code smell detector for Ruby.”

Slide 29

Slide 29 text

Flog

Slide 30

Slide 30 text

“Reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.”

Slide 31

Slide 31 text

By the way… (2)

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

“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

Slide 34

Slide 34 text

SandiMeter

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Just those?

Slide 37

Slide 37 text

● Our text editor / IDE ● Command line ● Bundler ● Rake ● Our testing framework ● Mutant ● Approvals ● ... ● Travis ● Code Climate ● Danger ● Guard ● Flay ● Rubrowser ● Bundler-audit ● Peek

Slide 38

Slide 38 text

3. Outro

Slide 39

Slide 39 text

Using the source

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

“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

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

And now?

Slide 44

Slide 44 text

“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

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

● 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