Aplicar lo aprendido: Libro de visitas
Clase 25 de 26 • Curso de Patrones de Diseño y Buenas Prácticas en PHP
Resumen
¿Cómo se organiza un proyecto usando principios sólidos?
La organización y estructuración de un proyecto son cruciales para su buen desarrollo y mantenimiento. Tomando como referencia un ejemplo de un "libro de visitas", observamos cómo aplicar los principios S.O.L.I.D. en su estructura de directorios y archivos:
- Directorio Public: Este contiene los controladores frontales que reciben las peticiones del usuario.
- Directorio SRC: Aquí se encuentran las clases auxiliares que facilitan la funcionalidad del proyecto.
- Directorio Text: Incluye los archivos necesarios para ejecutar pruebas automatizadas.
- Directorio Ben Dor: Aloja las librerías de terceros empleadas en el desarrollo del proyecto.
Cada archivo se nombra de manera descriptiva, lo que facilita entender su propósito, como el archivo AddComment
, que añade comentarios.
¿Qué rol juega el principio de responsabilidad única?
La aplicación del principio de responsabilidad única es evidente cuando se observan clases cuya única tarea es una función específica y no otras actividades colaterales. Un ejemplo en este caso es una clase dedicada exclusivamente al manejo de mensajes que pueden emitirse al usuario. Esta clase no se ocupa ni de leer archivos ni de otras operaciones más allá de gestionar y traducir mensajes.
¿Cómo manejamos la serialización y la deserialización?
El proceso de serialización transforma un objeto en una representación de texto, frecuentemente en formato JSON. El ejemplo brindado en el contexto del libro de visitas utiliza un serializador especializado que convierte comentarios a formato JSON CommentSerializer
. A través de la implementación de una interfaz, se garantiza la facilidad de expandir y modificar la manera en que los comentarios se serializan sin cambiar la estructura general del código. Esto demuestra el principio de segregación de interfaces, permitiendo que se use cualquier clase que implemente la interfaz definida para la serialización, otorgando flexibilidad al desarrollo.
¿Cómo se implementan pruebas automatizadas?
El directorio de pruebas es fundamental para aplicar el desarrollo guiado por pruebas (TDD). Cada clase tiene un test asociado que permite verificar su funcionamiento. Estos tests son cruciales, ya que validan que el comportamiento esperado se mantenga incluso al realizar modificaciones. Por ejemplo, al implementar un repositorio de comentarios, se verifica que todas las instancias devueltas pertenezcan efectivamente a la clase Comment
.
Para ejecutar pruebas, se utiliza un servidor PHP, que permite comprobar desde una interfaz de línea de comandos la correcta ejecución de los tests. Esto nos brinda confianza para realizar cambios futuros sin comprometer la integridad del sistema.
¿Cómo se materializa el respeto por los principios sólidos?
El respeto por los principios sólidos en este tipo de aplicaciones no solo posibilita el desarrollo eficiente sino que también habilita modificaciones y expansiones robustas y seguras. La capacidad de reemplazar implementaciones, como cambiar el formato de almacenamiento de JSON a XML sin alterar otras partes del código, demuestra su poder y flexibilidad. La aplicación de estos principios permite al código ser modificado sin demasiadas reverberaciones en la estructura general, otorgando un mantenimiento y escalabilidad efectivos.