Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:cursos:laravel_8:20250605

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
informatica:programacion:php:cursos:laravel_8:20250605 [2023/06/05 12:34] – creado tempwininformatica:programacion:php:cursos:laravel_8:20250605 [2023/06/05 15:02] (actual) tempwin
Línea 2: Línea 2:
  
 Notas sobre la clase del 05/06/2023 del curso [[informatica:programacion:php:cursos:laravel_8|Curso de Laravel 8.0]] Notas sobre la clase del 05/06/2023 del curso [[informatica:programacion:php:cursos:laravel_8|Curso de Laravel 8.0]]
 +
 +Libro recomendado por el profe sobre testing:
 +
 +  * **Working Effectively with Legacy Code** (de Michael Feathers)
 +
 +La primera parte se enfoca en cómo trabajar con código heredado (cuando no hay tests). En la segunda parte propone técnicas para trabajar con este tipo de código.
 +
 +Otro libro más que recomienda el profe:
 +
 +  * **Clean Code: A Handbook of Agile Software Craftsmanship** (de Robert C. Martin)
 +
 +Este libro no se centra en test, pero se centra en los "code smells", lo que no se debería hacer. Aplica una serie de técnicas sobre este tipo de código.
 +
 +Estos dos libros dice que son obligatorios para partir de una buena base en la carrera de desarrolladores.
 +
 +Terminología:
 +
 +  * Acoplamiento secuencial.
 +
 +Repaso de la semana pasada:
 +
 +  * Repaso de MVC
 +  * Empezar con CRUD básico en Laravel.
 +  * Capa de diseño: dominio, infraestructura y aplicación
 +
 +La carpeta ''app'' de Laravel es infraestructura, lo que pasa es que metemos la carpeta de Infraesetructure y Models dentro de ''app'' para no complicarnos más con Laravel. Qué metimos en cada carpeta:
 +
 +  * Infraestuctura: creamos la carpeta "Repositories" y metimos la implementación de Eloquent (porque estamos en Laravel)
 +  * Dominio: metimos la carpeta "Contracts" y dentro una interfaz ''IProductRepository''
 +
 +Esta división de carpetas es **DDD** (Domain-drive Design).
 +
 +Acóplate con lo abstracto y no con lo concreto (SOLID - D, principio de inversión de dependencias)
 +
 +Tenemos que crear nuestra propia clase de producto para desacoplarnos de lo que ofrece Laravel. Dice el profesor que hagamos el Provider y producto que sea nuestro.
 +
 +El **patrón repositorio** siempre devuelve entidades de dominio, entidades nuestras. Contienen todo lo necesario para que nosotros trabajemos.
 +
 +Si un proyecto es largo, es muuuy probable que vaya a cambiar (requisitos, funcionalidades...). Con lo que estamos viendo, nos estamos preparando para que venga cualquier cambio y eso suponga poco esfuerzo para adaptar nuestro proyecto.
  
  
informatica/programacion/php/cursos/laravel_8/20250605.1685961241.txt.gz · Última modificación: por tempwin