this post was submitted on 26 Sep 2023
1 points (100.0% liked)

Elixir Chile

69 readers
1 users here now

El lenguaje de programación más bacán

founded 1 year ago
MODERATORS
 

Razón Técnica: La Erlang VM (Beam) tiene más de 30 años de evolución en entornos distribuidos y concurrentes, lo que la hace ideal para los sistemas de hoy.

Razón Negocio: Utilizar tecnologías modernas como Elixir permite contratar personas curiosas, lo que es más probable que sean buenos candidatos. La disminución de las dependencias permitirá ahorrar costos a mediano y largo plazo.

Razón Emocional: Elixir y Phoenix son lenguajes y frameworks modernos y fáciles de aprender, lo que lo haces entretenidos y permite motivar a las personas a experimentar y generar nuevas ideas o soluciones.

you are viewing a single comment's thread
view the rest of the comments
[–] clsource 1 points 1 year ago* (last edited 1 year ago)

Hola, gracias por comentar. Acá algunas respuestas.

  1. Puedes armar proyectos de APIs solo utilizando Plug y Mix, Phoenix solo te da una estructura estandarizada y herramientas adicionales. En nuestro bot de MSN Messenger solamente utilizamos Plug sin Phoenix ya que solo se necesitaba un endpoint GET simple.

https://github.com/ElixirCL/msn-chatbot/blob/main/lib/msn_chatbot.ex

  1. Es bastante normal tener GenServers en proyectos Phoenix, sobre todo para cosas que requieren algo que guarde estado. Por ejemplo en nuestro Bot de Discord, usamos un elemento supervisado para la conexión a Discord, y en nuestro bot de MSN Messenger guardamos el historial de conversaciones.

https://github.com/ElixirCL/mate/blob/main/lib/mate/application.ex#L22

  1. PubSub de Phoenix es una abstracción que nos permite simplificar el uso del patrón de Publishers/Subscribers. El implementar este patrón con un GenServer o GenStage es viable, sin embargo, se debe considerar la persistencia y tomar casos de uso de reintentos al enviar los eventos, para estos casos es mejor utilizar soluciones estandarizadas que elaborar algo propio.

Algunos links de interés.

Según nuestro amigo @emoragaf de nuestro Discord

Sip, por ejemplo en teoría yo podría usar unos gen stages para manejar alertas en tiempo real en live view, pero hay cosas extra que gen stage provee que probablemente nunca aprovecharía, en ese sentido pubsub es más simple, pero se adapta mejor a ese caso de uso en particular Por el otro lado, yo podría usar pubsub para procesar datos, pero quizás tendría que implementar a mano batching, gen stage en ese caso sería mejor fit ya que incluye abstracciones como esa