tio407
New programmer here. What is the best Elixir codebase to study?
One of the tips I got from a programmer I look up to is that they studied a codebase and reverse-engineered how they made each decision.
In your opinion, what is the best Elixir codebase to study and why?
Most Liked
Marcus
For the essentials you can take a look in to the Elixir Github Repo.
Or take a look here: Elixir Examples - Feedback Wanted
Or, if you also interested in Phoenix:
Are Hex.pm and Constable code bases considered good practice examples for building applications? .
Phoenix (wiki) section “Example Applications”
Good example project using Ecto.
chouzar
For a full featured app there’s ExVenture - Text based MMORPG I just heard about it thanks to the Elixir Wizards - Betweenisode.
maz
Last Post!
chouzar
I will go slightly out of topic here. If you’re just starting out I would suggest that you go for the documentation; Elixir docs work like a really well explained guide from which then you can branch your own patterns.
The Docs
Just in case you haven’t tried the “embedded docs” try to use the h function in iex you can “query” any module or function in your project:
shell$ iex
Interactive Elixir (1.10.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> h Enum
Enum
Provides a set of algorithms to work with enumerables.
Supervision Trees
To understand how a Phoenix (or any) application is structured I would suggest that you understand how “Supervised Applications” work. You can quickly create one with:
$ mix new game_of_life --sup
The --sup option will generate an additional application.ex file. Then go and read the docs for GenServer, Supervisor, Application (which you can also check with h Genserver at iex).
Phoenix Generators
These generators are really well thought, for a very classic MVC style try:
shell$ mix help phx.gen.html
shell$ mix help phx.gen.json
Run a generator and try to follow how all your web directory is intertwined; you can start with the the endpoint.ex or your router.ex then go to specific views or controllers; a lot might seem hidden or “magical” because Phoenix leans a lot of boilerplate into macros, but the project structure gets to become very simple with the pass of time ![]()
Popular in Discussions
Other popular topics
Chat & Discussions>Discussions
Latest on Elixir Forum
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









