christopheradams
The Elixir Style Guide
I was recently asked to step up and become the maintainer for the Elixir Style Guide. It was, I believe, the first, and is now the most popular, community-driven style guide for Elixir.
The guide aims to be very accessible and open to contributions, and if you’re willing to send us your changes and feedback, it’s a great way to give back to the Elixir community that has given us so much.
As the guide says:
Style matters. Elixir has plenty of style but like all languages it can be stifled. Don’t stifle the style.
If you have a little time please check the open issues and pull requests, and leave a comment or question. Looking forward to hearing from you!
Most Liked
josevalim
@lexmag, from Elixir, maintains a style guide mostly aligned with Elixir source: https://github.com/lexmag/elixir-style-guide. If we are ever going to adopt something as official, which is unlikely, that one is the most likely.
Eiji
How about merge this guide with: Credo’s Elixir Style Guide and add issue to Credo github project?
Qqwy
For some things it can clearly be seen that one kind of writing will be less error-prone than another.
But in many other cases, the exact method used is not as important as that you (and your team) are consistent: Things like tabs vs. spaces, order of pattern-matching in parameters (x = %{} or %{} = x?), names given to exception classes, et al. I really like Credo’s approach of saying “It doesn’t matter which one you like best, but pick one and stick with it”.
I think it is great that we have multiple style guides, because this means that people will stay conscious about the choices w.r.t style they make.
I think that right now we do not need an officially endorsed (or enforced) style guide, because Elixir’s syntax itself is already a great tool to help developers write reasonably readable and consistent code.
christopheradams
Since Credo was mentioned, I’m not aware of anything in the Elixir Style Guide that contradicts it. (We might however be missing a few rules that we should fill in.) I think you should be able to follow any of the style guides and get Credo’s linter to pass.
However, we also have some guidelines that will probably never make it into a linter, such as how to organize your module attributes/directives.
As long as you’re enjoying Elixir and sticking to a style you’re doing well!
eidge
Having tried go before, I’d just really like to leave my 2 cents here:
Go imposes a style guide, which I found a bit awkward at the beginning but then grew in me as I found it very liberating. Style is one of those things that’s a bit pointless to discuss, any sensible option is more than good enough.
Anyways, forcing a style does have quite a few good things, especially if it comes:
- No pointless discussions about what one should use.
- Every repo is just like your own code.
- You can easily automate it.
I do agree with @christopheradams, if an official style guide is enforced (and the tools to do so are built) it needs to be something minimal and to the point rather than a complete style guide.







