AstonJ
What does your ideal version of Phoenix look like?
One thing I love about our community is the high standard set by the Elixir, Phoenix, Nerves and Erlang core teams… another thing I like is how others wish to raise those standards even higher ![]()
So I thought it would be a nice idea to post a series of threads for just that ![]()
Please let us know what your ideal version of Phoenix looks like in this thread ![]()
Other threads in this series
Most Liked
mbuhot
I love the explicit parts of Phoenix, like endpoint.ex listing out all the plugs that run before the router.
I remove web.ex from Phoenix projects, as it hides the source of the functions that are imported.
My ideal Phoenix wouldn’t support convention based selection of the view module from the controller module name for the sake of saving a single function parameter.
It’s great that Phoenix lets me use it in a way that is explicit and free of magic ![]()
hauleth
Less macros, more functions instead. Most irritating examples:
my_app_web.exwhich use__using__/1magic for including different set of modules in different parts of the application, especially when most of them do not need such at all, and should be left up to the user whether they want to include some of the headersPhoenix.Channel.intercept/1, is there any good reason why this is macro rather than just module attribute?Phoenix.ConnTest.{method}macros, what is the advantage over plain functions?
Also I would change naming from MyAppWeb.ActionController to MyAppWeb.Controllers.Action (the same for views, channels, sockets, etc.) so it will suit general naming convention within Elixir.
lpil
I would prefer MyAppWeb.Action.Controller, MyWebApp.Action.View etc so modules are grouped by the business domain rather than the “kind” of module.
Popular in Discussions
Other popular topics
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
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









