clsource

joined 1 year ago
MODERATOR OF
5
Erlang Computerphile (www.youtube.com)
submitted 11 months ago by clsource to c/elixir
1
Patrones CUPID (dannorth.net)
submitted 11 months ago by clsource to c/elixir
2
Usando Credo (elixircasts.io)
submitted 11 months ago by clsource to c/elixir
0
submitted 11 months ago by clsource to c/elixir
2
submitted 1 year ago by clsource to c/elixir
1
submitted 1 year ago by clsource to c/elixir
1
submitted 1 year ago by clsource to c/elixir
1
submitted 1 year ago by clsource to c/elixir
1
submitted 1 year ago by clsource to c/elixir
2
Introducción a Prolog (www.youtube.com)
submitted 1 year ago by clsource to c/elixir
2
submitted 1 year ago by clsource to c/elixir
 

Entrevistas con los exponentes de la tecnología

[–] clsource 3 points 1 year ago

No taria mal un libro sobre Elixir y Mote con Huesillos xd

[–] 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

[–] clsource 2 points 1 year ago (1 children)

¿Qué stack usaste?

[–] clsource 1 points 1 year ago

Es un lenguaje de programación muy bonito. Puedes hacer muchas pócimas locas :)

[–] clsource 1 points 1 year ago
[–] clsource 1 points 1 year ago

¡Hola!, Sí Elixir trae muchas pilas de fábrica (y esto sumado a los más de 30 años de erlang en libs y funciones adicionales) Por el momento no tengo un ejemplo de producción, ya que no me he topado con la necesidad.

Pero por ejemplo si necesitaras crear un listado de nombres y su correo podría ser usado.

[–] clsource 2 points 1 year ago* (last edited 1 year ago)

En mis trabajos se ha usado elixir para lo siguiente:

  • Crear un buscador para autos en subastas (https://www.classic.com/) Todo el frontend está realizado en Liveview + Surface. Mientras que el backend es una mezcla de JS y Django. Decidieron ir por Phoenix + Liveview para el frontend migrándolo de React por que lograron tener desempeños de velocidad y carga mucho mejores, primero intentaron pasarlo a NextJS pero aún así se demoraba demasiado para sus métricas. Cuando usaron LiveView se redujeron los tiempos y pesos de los archivos nivel cliente. Además de que usar Surface les permitió aprender fácilmente el framework, ya que es similar a React en términos de sintaxis.

--

  • Crear un backend de alto rendimiento en contextos concurrentes. Para un retail de calibre internacional. En el Cyber Day se comportó como un toro sin pastillas. Se decidió por Elixir para este backend por que ya se habían hecho proyectos anteriores con la tecnología y habían tenido buenas experiencias y resultados. Las capacidades de la BEAM para soportar alta carga y concurrencia es de vital importancia, demostrando calidad y robustez, en por ejemplo cargas de 50K peticiones por segundo.
view more: next ›