La versión 1.7 de Phoenix Framework ha supuesto un cambio tan abrupto con respecto a versiones anteriores que ha dejado casi obsoleto el libro escrito hace apenas un par de años de Red Social en 7 días. Todo por la introducción de los componentes, ¿sabes lo que son los componentes de Phoenix Framework?
En Phoenix Framework al igual que muchos otros frameworks de construcción de páginas web, se emplean patrones para organizar el código. La mayoría de frameworks emplean el famoso patrón MVC, llamado así por hacer referencia a Modelo, Vista y Controlador.
Phoenix Framework implementó inicialmente este patrón pero pronto desligó la parte del modelo construyendo contextos en su lugar, sin embargo, los controladores y las vistas seguían estando presentes. Hasta ahora.
LiveView
Si has empleado Phoenix Framework de seguro hayas oído hablar de LiveView. LiveView es un constructo entre el navegador y el servidor que mantiene una línea abierta de comunicación a través de los canales y permite modificar lo que se muestra en la página en cualquier momento sin necesidad de recargar, así como enviar eventos del usuario o de la página directamente hacia el servidor.
Este modo de desarrollar webs tomó fuerza hace un par de años y LiveView comenzó a estar tan presente que en esta versión de Phoenix Framework (1.7) ya forma parte de la base del framework. Tanto es así que ha desplazado a las vistas (llamadas también dead-view haciendo referencia a que es lanzada y ya no se modifica) y ha motivado la reorganización de los ficheros dejando únicamente controladores, componentes y plantillas.
Componentes
Ahora sí, componentes, como habrás imaginado por el transcurso de la narración, un componente reemplaza en parte a una vista. Pero va algo más allá. Si tenemos en cuenta el enfoque funcional e incluso la dinámica de divide y vencerás, podrás ver a los componentes como pequeñas iteraciones de MVC o realmente solo de controlador y vista.
Un componente encapsula la funcionalidad necesaria para funcionar y los elementos visuales necesarios para ser renderizado, e incluso los eventos que puede escuchar o recibir desde LiveView.
Un componente por tanto puede ser algo tan sencillo como un elemento de formulario, una lista desplegable que nos proporcione capacidades extra como búsqueda, o puede ser algo mucho más complejo como un formulario completo. A su vez, un componente puede estar compuesto por muchos otros componentes.
De esta forma, Phoenix Framework nos permite crear páginas complejas agregando componentes de alto nivel y mantener una visión de alto nivel simple. Además, cada elemento puede ser comprobado con su propio conjunto de pruebas y ser agregado como dependencia a nuestro proyecto, pudiendo disponer de una biblioteca de componentes para nuestros proyectos.
¿Qué pasa con el Libro?
Como comenté anteriormente, el libro de Phoenix Framework queda completamente desfasado y si instalas la nueva versión de Phoenix Framework y compruebas con el libro, descubrirás que hay muchos elementos eliminados o cambiados.
No obstante, como dije hace tiempo, esto no afectará a los que adquirieron el libro hace tiempo a través de la página de Altenwald en formato digital. El libro será actualizado sin coste adicional para ellos y pronto habrá nuevos artículos y vídeos cubriendo otros aspectos de Phoenix Framework, así que, ¿qué esperas para hacerte con una copia del Phoenix Framework: Red Social en 7 días?