No uses interfaces de administración generadas

English version of this post here (EN)
Spanish version of this post here (ES)
French version of this post here (FR)
No uses interfaces de administración generadas
Todos los desarrolladores de Rails hemos pasado por ahí. Necesitas una interfaz de administración, así que recurres a ActiveAdmin o RailsAdmin. Parece la decisión inteligente—¿por qué reinventar la rueda? Pero después de años construyendo productos, he aprendido que las interfaces de administración generadas crean más problemas de los que resuelven.
La trampa de la personalización
Las herramientas de administración generadas prometen ahorrarte tiempo, pero consiguen lo contrario. Empiezas con sus configuraciones por defecto, y después inmediatamente necesitas algo personalizado. Un filtro especial aquí, una acción personalizada allá, alguna lógica de negocio que no encaja en sus patrones.
Antes de darte cuenta, estás escribiendo código personalizado dentro de su framework. Estás duplicando lógica que ya existe en tu aplicación principal. Estás aprendiendo su DSL en lugar de usar las herramientas que ya conoces.
Distancia de la realidad
Cuando tu cliente reporta un bug, ¿dónde vas a investigar? Si estás usando un panel de administración separado, estás cambiando de contexto. Estás abriendo una URL diferente, navegando por patrones de interfaz diferentes, tratando de entender lo que tu cliente realmente experimentó.
Compáralo con tener funcionalidades de administración integradas en tu aplicación principal. Añade simplemente una pestaña “Admin” a tu interfaz existente. Ahora cuando debugueas, estás viendo exactamente lo que tu cliente ve, con los mismos datos, en el mismo contexto.
Tu admin es tu lógica de negocio
Aquí está la verdad incómoda: tu interfaz de administración no es solo una interfaz CRUD. Es donde viven tus reglas de negocio. La lógica de validación, los estados de workflow, los permisos—esto es lógica de negocio fundamental, no una preocupación secundaria.
Cuando tratas las funcionalidades de administración como una “cosa externa” que vive en una herramienta generada, estás separando tu lógica de negocio de tu negocio. ¿Ese workflow de aprobación personalizado? No es genérico—es únicamente tuyo.
Una mejor manera
En lugar de luchar contra las herramientas de administración generadas, abraza construir funcionalidades de administración como parte de tu aplicación principal. Usa los mismos componentes, el mismo estilo, los mismos patrones que tus usuarios ya conocen.
Tus usuarios admin siguen siendo usuarios. Se merecen la misma UX cuidada que proporcionas a tus clientes.