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.
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
1 def get_item_if_member(filenames, item) do 2 if Enum.member?(filenames, _____"/home/rene/projects/credo/lib/credo.ex") do 3 item 4 |> IO.inspect 5 end 6 end
1 def get_item_if_member(filenames, item) do 2 if Enum.member?(filenames, _____"/home/rene/projects/credo/lib/credo.ex") do 3 item 4 |> IO.inspect 5 end 6 end
1 def get_item_if_member(filenames, item) do 2 if Enum.member?(filenames, _____"/home/rene/projects/credo/lib/credo.ex") do 3 item 4 |> IO.inspect 5 end 6 end
# preferred way - common suffix Error defmodule BadHTTPHeaderError do defexception [:message] end defmodule UserRequestError do defexception [:message] end
# also okay - common suffix Exception defmodule BadHTTPHeaderException do defexception [:message] end defmodule UserRequestException do defexception [:message] end
# also okay - consistent *prefix* Invalid defmodule InvalidHTTPHeader do defexception [:message] end defmodule InvalidUserRequest do defexception [:message] end
# bad # there is no common naming scheme for exceptions defmodule InvalidHeader do defexception [:message] end defmodule UserRequestFailed do defexception [:message] end