axelson

axelson

Scenic Core Team

8) ElixirConf 2017 - Phoenix after 100000 lines - Renan Ranelli

ElixirConf 2017 - Phoenix after 100000 lines - Renan Ranelli

Given phoenix’s rise in popularity, the internet is flooded with examples and “getting started” tutorials.

What happens when your phoenix app grows beyond the “trivial” examples we see in the wild? What are the good patterns you should adopt and what are the ones you should avoid?

In this talk I’m going to share the problems (and solutions!) we encountered while growing our 2+ year old phoenix app beyond 100,000 lines of code, while also migrating from server-side html to a full fledged SPA.

After this talk, the listener will be able to (hopefully) better access the trade-offs and impacts on using Phoenix for their next (hopefully big) project.

Audience: All

All talks are available in the Elixir Conf 2017 Talks List or via the elixirconf2017 tag

Most Liked

josevalim

josevalim

Creator of Elixir

I just finished the talk, I just want to clarify one more thing regarding the compilation. Renan mentioned that the Phoenix router takes a long time to compile but that’s likely not the case. The issue is that a lot of his application likely depends on the router and that holds everything else back. To some extent this is Phoenix’s fault since controllers and views import the router and that sets up a compile time dependency. I have pinged Renan to confirm this and opened up an issue on Phoenix’s issues tracker.

josevalim

josevalim

Creator of Elixir

I would say that’s fine. The real issue is that many modules have a compile time dependency on the router and that could be solved if we aliases the router helpers instead of importing them.

JEG2

JEG2

Author of Designing Elixir Systems with OTP

This was a pretty good description of real world Phoenix. I enjoy hearing what worked and didn’t for other groups.

Where Next?

Popular in Talks Top

axelson
ElixirConf 2017 - Embedded Elixir for Monitoring the Built Environment - Christopher Coté At CRT Labs (Natio...
New
axelson
ElixirConf US 2018 – Architecting Flow in Elixir - From Leveraging Pipes to Designing Token APIs – René Föhring (@rrrene) ...
New
AstonJ
Just starting to go up - here’s the first three: By @lpil By @Crowdhailer By Evadne Wu (Why aren’t you a mem...
New
axelson
ElixirConf US 2018 – Meet Virtuoso: The Chatbot Orchestration Framework Built with Elixir – Justus Eapen (@justuseapen) ...
New
axelson
Here’s the last ElixirConf 2017 video of day one! ElixirConf 2017 - Scaling up Elixir at TpT - by @shanti I...
New
ElixirConf
ElixirConf: ElixirConf 2023 - Tim Gremore - Replacing React: How Liveview solved our performance problems Comments welcome! View the <sp...
New
axelson
ElixirConf 2017 - Its Better Unstated - @tjstankus This is a story about transitioning an obsession with obj...
New
axelson
I really like the idea of discussing one Elixirconf talk each day and since @brightball hasn’t posted the second talk I’ll post it. Elix...
New
Lawrence_elixir
ElixirConf EU 2019 talk videos ElixirConf EU 2020 - Early bird tickets on sale now! Website: http://www.elixirconf.eu Twitter: www.t...
New
ElixirConf
ElixirConf: ElixirConf 2023 - German Velasco - Using DDD concepts to create better Phoenix Contexts Comments welcome! View the <span cla...
New

Other popular topics Top

sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID&lt;0.412.0&gt; terminating ** (Postgrex.Error) FATAL...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New

We're in Beta

About us Mission Statement