WRP 19. Refactorizar una aplicación legacy (Parte 2)

Este podcast dura 37:22. Solo puedes acceder al contenido completo si te suscribes a la zona premium.

Continuamos refactorizando: abstracción, paquetes y microframeworks.

En el episodio anterior sentamos las bases de todo nuestro trabajo de refactorización. En este vamos a seguir avanzando hacia esa arquitectura MVC.

En las noticias repasaremos el nuevo sistema de formación tecnológica que se quiere implantar en España o los trucos para convertir una web 100% accesible en inaccesible. En el paseo por Github hablaremos sobre las novedades de Apple y asíncronía en PHP.

Además esta semana poníamos el broche final al audiocurso Marketing online para programadores, con un último episodio donde te cuento mis entretelas de estos dos últimos años para mejorar mi vida.

Siguientes pasos de la refactorización

En el episodio anterior sentamos las bases de todo nuestro trabajo de refactorización. En este vamos a seguir avanzando hacia esa arquitectura MVC.

Seguimos basándonos en el ejemplo de los últimos capítulos de Pro PHP Refactoring tal y como comentamos. Nos separamos algo más hoy de lo allí expuesto.

Gestor de dependencias

En algún momento debemos incluir un gestor de paquetes, para hacer más confortable el esfuerzo de gestionar las dependencias. No es para nuestro código principalmente, es para no preocuparnos en los siguientes pasos de añadir nuevas librerías de forma manual.

Así que como trabajamos contra PHP usaremos composer.

  • Puedes acceder al contenido completo (con todos los enlaces) si te suscribes.

Descomponiendo el código

Nos arrancamos ya a desmontar el código y convertirlo en otra cosa. Para eso tenemos los tests de regresión del episodio pasado. Recordar que nuestra interfaz siempre va a ser la misma y esos tests nos dan la seguridad de que estamos haciendo las cosas bien.

Utilizaremos la nomenclatura y estructura de ficheros propuesta por el PHP Standard Platform. Para reconvertir esos ficheros sueltos en métodos del mismo controlador aprovecharemos las funciones de captura de búfer que nos ofrece este lenguaje de programación.

Abstrayendo la conexión a la base de datos

Es el punto que parece más crítico. Pasar de nuestras consultas de MySQL embebidas a una sistema que no imponga la obligatoriedad de esta base de datos, es muy importante.

Todo lo que podamos desacoplar, nos facilitará la vida para seguir creciendo.

Mi recomendación es usar DBAL de Doctrine. Es un salto importante, así que mejor si vas aprendiendo en otro proyecto concreto cuestiones concretas de esta abstracción para luego pasar a nuestro proyecto de refactorización.

Peticiones y respuestas gestionadas por otro

Ahora llega el punto de capturar en controladores separados las peticiones y pasar a través de plantillas las respuestas en formato vista. Construimos aquí la V y la C de la arquitectura MVC.

Lo sé, hemos visto un montón de cosas en esta miniserie. Podemos ver en detalle las que más dudas te sugieran, no dejes de escribirme a través de los comentarios o el formulario de contacto para seguir construyendo nuestra ruta indomable hacia el código perfecto.

Suscríbete para disfrutar de todo este contenido :)

No hay comentarios aún, ¿te animas?

Para escribir comentarios puedes identificarte o suscribirte.