5 ms·
I built a personal project on Elixir, Phoenix, and Postgresql(currently on hiatus). It have a somewhat steep learning curve with the ORM Ecto. Debugging Ecto,
by anthony_doan 7y ago
I built a personal project on Elixir, Phoenix, and Postgresql(currently on hiatus).
It have a somewhat steep learning curve with the ORM Ecto. Debugging Ecto, changeset, etc.. is not fun. Dumping whatever Ecto returns can be a puzzle because by default other than the main tables are not preloaded and it loaded with meta data. Also how you deal with Ecto and forms in phoenix is not clear, lots of gotchas. The common thing is that you have a form template that update/edit and new/create share. The problem here is if you don't know what you're doing one of your template will expect a changeset and the other will expect a list. I forgot which one gotta look into my code but it was an annoying gotcha.
The lack of things baked into Phoenix makes it a hunt to find packages/libraries to add features to it.
Examples are Laravel having rate limiting router built in and signed links built-in. I don't believe the html form is as good as other frameworks; can be at time confusing. I think while Phoenix may not be aiming to be full features as Laravel, I believe security measure such as rate limiter and signed links should be built in.
Deploying is also a learning curve. You need to compile Elixir in production server and then the folder layouts is different than development. So hunting for the root web folder of your application is a thing I did and learning about the layout of production.
Having said all that, I enjoy coding in Elixir and using Phoenix. It is fun getting better at it. While there aren't many thing baked in like Laravel, it made me more educated in the things I've taken for granted. I re-did the authentication system 3 times. I tried jwt, did more research and realize when to use session and when to use them.
I enjoy coding in Elixir more than PHP. I see myself building my side web projects in Elixir in the foreseeable future. I do recognize that it's a smaller community with less contributors so I hope this come off as a constructive criticism of something I love and know well enough.