What are the characteristics of a well designed elixir program

While working on an elixir project what are things to keep in mind while designing the systems?

of course, it depends but I’m looking for general principles, programming idioms

Elixir itself… thats the first place I would look

Successful Elixir projects typically:

  • Focus on data flow. Static operations performed on data. Then chained.
  • Make liberal use of |> operator.
  • Keep functions small
  • Abuse pattern matching
  • Leverage OTP constructs
  • Leverage cheap processes
  • Leverage supervision
  • Leverage existing Elixir/Erlang libraries and frameworks
  • Ecto and Phoenix are super popular and well done. Consider Jason for JSON.
  • Leverage mix build tool and associated project structure

I’d start with those.

Edit:

  • Leverage this forum. I’ve found this place to be an amazing source of information and assistance.
3 Likes