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

ElixirRuhr.001: Good Tooling educates

ElixirRuhr.001: Good Tooling educates

Where are we in Elixir right now and what are the challenges faced by both newcomers and tool designers? This talk tries to answer these questions and advocates taking humans into account when designing even the nerdiest software tools.

René Föhring

February 11, 2016
Tweet

More Decks by René Föhring

Other Decks in Programming

Transcript

  1. @rrrene (read in pirate voice) coding @ . teacher ∙

    researcher (insert more self-description here)
  2. Elixir’s recent rise from “totally unknown” to “still definitely unknown

    but mentioned in hushed tones” [...] Clark Kampfe in “Elixir is not Ruby” https://zeroclarkthirty.com/2015-11-01-elixir-is-not-ruby.html
  3. GREAT FOUNDATION elixirc mix Hex Ecto Phoenix is Rails 5

    https://medium.com/infinite-red/phoenix-is-rails-5-f6d28e57395
  4. 1 defmodule ElixirRuhr do 2 @github_url "https://github.com/" 3 end 4

    5 defmodule ElixirRuhr2 do 6 @githubURL "https://github.com/" 7 end
  5. issues ordered by priority 20 12 11 6 5 1

    -1 -2 -2 -10 -11 -100 (normal)
  6. issues ordered by priority 20 12 11 6 5 1

    -1 -2 -2 -10 -11 -100 (strict)
  7. # preferred way - common suffix Error defmodule BadHTTPHeaderError do

    defexception [:message] end defmodule UserRequestError do defexception [:message] end
  8. # also okay - common suffix Exception defmodule BadHTTPHeaderException do

    defexception [:message] end defmodule UserRequestException do defexception [:message] end
  9. # also okay - consistent *prefix* Invalid defmodule InvalidHTTPHeader do

    defexception [:message] end defmodule InvalidUserRequest do defexception [:message] end
  10. # bad # there is no common naming scheme for

    exceptions defmodule InvalidHeader do defexception [:message] end defmodule UserRequestFailed do defexception [:message] end
  11. END-OF-TALK # Credo – Static code analysis https://github.com/rrrene/credo # Bunt

    – 256 colors for your CLI https://github.com/rrrene/bunt # @rrrene‘s personal blog http://trivelop.de