¿Eres un desarrollador organizado que mantiene los códigos simples y limpios? ¿Utilizas los controladores correctamente? ¿Te adhieres a los 7 métodos relajantes de manera consistente?
Si la mayoría de tus respuestas a estas preguntas es SÍ, permíteme felicitarte por llevar a cabo las prácticas correctas en el framework M-V-C. Sin embargo, si la mayoría de tus respuestas son NO, debes cambiar tus hábitos. Los códigos desordenados son difíciles de entender y pueden causarle a alguien un terrible dolor de cabeza al depurar errores de programación.
El framework Modelo-Vista-Controlador
En programación, un controlador es uno de los componentes principales del framework Modelo-Vista-Controlador o estructura M-V-C. Su propósito principal es administrar o dirigir el flujo de datos entre el Modelo y la Vista para mantener la eficiencia y el orden. Los desarrolladores trabajan en varias funciones y, como resultado, los Controladores pueden contaminarse y llenarse con toneladas de cosas, ya sea debido al hábito perezoso del desarrollador al implementar una nueva función o a la falta de conocimiento sobre cómo usar los Controladores correctamente.
Pero seamos honestos, juntar métodos “relevantes” en un solo controlador tiene grandes ventajas; hace las cosas más rápidas en comparación con la creación de una clase de controlador completamente nueva. Por lo tanto, tener conocimiento de los 7 métodos relajantes, un sistema introducido y definido en el año 2000 por Roy Fielding en su tesis doctoral, sería beneficioso a la hora de explorar y probar las API porque cada método varía según su función. Si los aplicas a tu trabajo, te ahorrarán tiempo y esfuerzo. De hecho, no solo harán que tu código sea más fácil de leer para los demás y para ti, sino que también pueden facilitar la implementación de la API en cuestión.
7 métodos relajantes
- Conseguir: ofrece una colección de recursos
- Nuevo: expone un formulario para crear un nuevo recurso
- Editar: ofrece un formulario para editar un recurso existente
- Publicar: guarda un nuevo recurso en la base de datos
- Mostrar: muestra un recurso existente
- Poner: actualiza un recurso existente en la base de datos
- Eliminar: borra un recurso existente en la base de datos
Recuerda, los 7 métodos relajantes son públicos de forma predeterminada y se usan comúnmente al navegar por la web. Por ejemplo, cuando visitas un sitio web, recibes una representación del recurso de los extremos de Conseguir, Nuevo, Mostrar o Editar, o de los métodos de la página. Y cuando envías algo a un sitio web a través de formularios, estás enviando la representación del recurso a los extremos de Publicar, Poner o Eliminar, o a los métodos del sitio web.
Nota: Estoy usando el stack MEAN en los siguientes ejemplos de código, pero siéntete libre de verlo con cualquier framework MVC de tu elección.
Para entender cómo funciona, imagina que tenemos una aplicación de seguimiento de gastos de viaje, por lo que crearemos un ControladordeViajes para eso:
Ya sabes que hacer. Estas solicitudes deben devolver o procesar recursos de formas específicas. Pero, ¿y si queremos añadir un gasto a un viaje en concreto? ¿Deberíamos agregar una URL Publicar /travels/:id/add_expense y adjuntarla a un método add_expense en el ControladordeViajes? ¿Qué tal cancelar un gasto de viaje? ¿O mostrar qué viajes se cancelaron?
Estos son algunos ejemplos de métodos que puedes agregar a tu controlador:
Si bien está bien agregar estos métodos al ControladordeViajes, recuerda que cuantos más métodos crees en tu controlador, más complicado será a largo plazo porque se alejará más de los métodos públicos iniciales. Una buena manera de administrar estos métodos personalizados es colocarlos en sus controladores.
En el ejemplo anterior, tenemos dos que se ocupan de los gastos de viaje. En este caso, considera crear una nueva clase de controlador y asígnale el nombre ControladordeGastosdeViaje:
Y en cuanto a mostrar todos los viajes cancelados, tienes dos opciones:
- Implementar filtros para el método Conseguir en el ControladordeViajes.
- Crear un ControladordeViajesCancelados.
Para la opción 2, puedes usar el método Conseguir para recopilar todos los viajes cancelados, así como para manejar acciones relacionadas con el procesamiento de viajes cancelados. Al usar este enfoque, aún se adhiere a los 7 métodos relajantes. Eso también se aplica a los viajes pendientes, etc. Sería mejor crear una nueva carpeta para almacenar todos los archivos del controlador relacionados con “viajes” para organizar múltiples controladores de la misma categoría.
¡Pero no te emociones demasiado! No es la única solución para controladores grandes. No tienes que aplicar este enfoque en todos los escenarios posibles. Si planeas implementar nuevas funciones y crees que los métodos deben tener su propio controlador, entonces probablemente deberías hacerlo.
Si estás interesado en obtener más información sobre el desarrollo web, visita nuestro sitio web.
Autor original: Juan Oliver Rosales