germsvel

germsvel

What topic do you think needs a course in the Elixir community?

:wave: hi there! I’m the creator of Testing LiveView. Now that the course is finished, I’m thinking of creating another one.

But I’d like to know what people think is missing in the community. Here’s a poll, and feel free to reply to the thread with more details too!

  • Phoenix (e.g. learning Phoenix, intermediate Phoenix, advanced Phoenix)
  • Elixir (e.g. learning Elixir)
  • OTP
  • Testing Elixir
  • Testing Phoenix
  • Test-driven development
  • Nerves
  • Machine Learning
  • LiveView
  • Refactoring
  • Something else (reply to thread)
0 voters

Most Liked

KP123

KP123

+1 for documentation around various deployment strategies

I think Elixir needs more example projects. One thing I enjoyed about the churn of the Javascript community is the constant releasing of “how to do the thing in Javascript” tutorials on the web. The examples range from really small one off tasks to building entire applications from scratch. This is especially true on YouTube and even TikTok where there are hundreds of code along videos in every language. The Elixir docs are excellent, best I’ve ever used, but docs are like dictionaries, useful if you know what you’re looking for. Examples and code alongs are great because they provide jumping off points for what to later search in documentation

15
Post #6
sodapopcan

sodapopcan

Would love more info on deploying multi-node set ups running different OTP Applications that communicate with each other. Most (all?) of the stuff out there is about clustering a single application.

13
Post #2
Hisako1337

Hisako1337

My “Other” List:

  • “High-Performance-Code” (however we call it): like doing Stream instead of Enum chains, when to leverage ETS instead of plain/big data structures, moving some code to compile time instead of runtime, when to MapSet instead of List, … basically what to do if my code becomes “slow” in incremental ways (extreme end: Rustler :D) and what tradeoffs do exist to make stuff fast

  • all the OTP primitives and when to use what and how. iE: when to use Agent over GenServer or ETS? Why? How to supervise it for different use-cases? Data bottlenecks (iE: Genserver state VS ETS with concurrent read when load increases)

  • Scripting with Livebook: I think its severe underrepresentated still. Nearly as lightweight as a script file, Nearly as powerful as a full phx app, but immediately available when needed without any fuzz. iE: are there some bash scripts or cleanup tasks that have to be done from time to time? make it interactive in a notebook with some info for everyone :slight_smile:

13
Post #3
dkulchenko

dkulchenko

For me, I’d love an intermediate/advanced-level course on LiveView patterns and best practices.

The docs are pretty solid, but they mostly cover the “what” and less so the “how” or “why”. Fly’s Phoenix Files and other blogs are an excellent resource, which help fill in a lot of the gaps. But ultimately, I think there’s still a huge need for guides/books/courses on things like:

  • async tasks in a LV (until it got added in officially into core in 0.20)
  • situations where it’s useful to keep state on the client and best ways to pass that to the server on load; manually restoring LV state using client-side persistence
  • complex, multi-step forms and different ways to approach those; how to keep and maintain partial state for each step in a multi-step wizard, sections of the form that are shown/hidden or trigger other actions depending on other selections in the form, etc.
  • more involved authentication/authorization patterns
  • passing user agent/other client-side info on load
  • sessions/cookies/LocalStorage and how to persist different state for different situations from a LV
  • complex interactions between client-side JS, hooks, and the server - best ways to coordinate multi-step transactions/operations between both, incl. how to pass data from the server to JS, how to trigger JS from the server, etc.; think, for example, a Stripe Elements purchase from a checkout cart
  • how to make decisions between using LiveViews/LiveComponents/etc and specific situations for which is appropriate, how many LVs to have per page, when to make LVs sticky
  • animations and transitions and how to make them work well with LV navigations
  • design patterns to avoid the dreaded “loss of state” on server restart/redeploy for non-form elements
  • optimistic client-side changes before receiving acknowledgment from the server
  • (a big sore spot:) communication between LVs, live components, functional components and how to design those well without ending up with spaghetti and hard-to-follow dependencies

There’s a substantial amount of content on beginner/intermediate LV work, but once you start to design a large-scale production app, for a lot of the above you end up completely on your own, so I think this could be a really useful resource.

12
Post #7
sodapopcan

sodapopcan

That would be great, I’d be extremely happy with that. I’d also be happy with a convoluted setup guide if that’s what actually needed but now that you mention it, it’s the gotchas I’m most interested in and being pointed in the right direction. I’ve heard lots of conflicting information.

Where Next?

Popular in Polls Top

AstonJ
We had a thread here recently that mentioned webservers in PHP, and it got me curious about the options in the BEAM world and what everyo...
New
New
AstonJ
Do you use Dialyzer/Dialyxir in your Elixir projects? poll If you only use it in some of them, which ones? If you don’t use it, why not...
New
AstonJ
Curious whether you’re using wired or wireless to connect to your main working machine to the internet - if you have any specific reasons...
New
josefrichter
There are two polls and a third question… 1) Displays poll 2) Orientation poll 3) Configuration Please let us know how you are using you...
New
New
matt-savvy
I see some people adopt this convention when naming fields or variables where the value is a boolean. I personally see this as an antipat...
New
AstonJ
Polls are a great way to easily get a snapshot of things, and we’ve had some really interesting polls over the years! Here are some tips...
New
hst337
Do you use hot-reload/recompilation in production? Please note that this poll is only about BEAM’s internal features of runtime upgrades ...
New
AstonJ
How often do you buy a new dev machine? poll If there is any particular reason why you’ve settled on the frequency you have, please shar...
New

Other popular topics Top

minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
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
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New

We're in Beta

About us Mission Statement