8
¿Qué genera `mix phx.gen.auth` y por qué es la forma recomendada de implementar auth?
💡 Explicación: Genera código de autenticación completo que vive en tu aplicación (no en una librería): migraciones, schemas, contexts, controllers, LiveViews, templates, y tests. A diferencia de Devise (Rails), el código es tuyo y transparente, fácil de personalizar sin pelear con una librería opaca.
16
¿Qué ventaja ofrece Oban sobre soluciones como GenServer o Task para background jobs?
💡 Explicación: Oban persiste jobs en PostgreSQL, garantizando que no se pierdan si la app crashea. Ofrece: reintentos configurables, scheduling, prioridades, cron jobs, rate limiting, jobs únicos, y un dashboard. GenServer/Task pierden estado al crashear. Es el equivalente a Sidekiq/Celery en el ecosistema Elixir.
19
¿Cuándo elegirías Phoenix+LiveView sobre una SPA con React/Vue y una API?
💡 Explicación: LiveView es ideal cuando: la app es mayormente CRUD con interactividad moderada, se quiere evitar mantener dos codebases (frontend+backend), se necesita tiempo real nativo, y el equipo conoce Elixir. Una SPA es mejor para: interacciones complejas offline-first, apps móviles con la misma API, o equipos con experiencia JS.