Refactorizando de código con Collections de Laravel

Refactorizando con Collections de Laravel

Deja una respuesta

Comment as a guest.

  1. Tu c√≥digo queda mucho m√°s claro, sin dudas. Y es m√°s f√°cil para generar pruebas automatizadas. Solo cambiar√≠a tu fromAmsterdan() por un m√©todo que reciba la ciudad como par√°metro en vez de tenerla hardcodeada ūüôā
    El video de Adam Wathan tiene ya 3 a√Īos, si le preguntas hoy seguramente √©l tambi√©n lo refactorizar√≠a distinto ūüėČ

    1. Marcelo habría que ver el tema de fromAmsterm() porque si la regla de negocio solo contempla Amsterdam entonces estaría de mas parametrizarla. Pero bueno, es válido tu comentario porque todo depende del requerimiento que justamente no es lo que tenemos por ser un ejemplo. Lo que si, si te tomo lo del hardcode, hubiera Sido mejor que la ponga como una constante, cómo hice con 7500.

      Y lo de Adam, seguramente. C√°lculo que su idea de la charla era hacer el m√°ximo foco sobre las collection.

      Muchas gracias por tu comentario bro! ūüėÄ

  2. Me parace genial tu refactorizacion. La verdad llevo solo un mes usando laravel y en el trabajo he visto códigos que no me han gustado nada. Te pierdes tratando de leer que hace realmente.

  3. A mi parecer tu código es mas legible, pero agradecería que me orienten un poco mas sobre las colecciones, a simple vista, el ejemplo sin simplificar los veo mas legible, ya que solo 9 lineas aprox., agradecería si me orientan porque el agregar colecciones y clases lo hace mas legible, si veo que tiene mas lineas de código. Gracias de antemano.

  4. Lo que me choca del refactor propueto es: ¬ŅQue responsabilidades le pertenecen a las clases Collection?. Siento que terminan siendo helpers donde vas a arrojar todo.

    Me encanta el concepto de las Collections Class y me encantar√≠a que fueran parte del framework (i.e: Que User::where(…)->all() te retorne un UserCollection en vez de un Collection), pero, el ejemplo me causa el mismo ruido que me causa escuchar a gente hablar de DRY.

    DRY se trata de no repetir la logica de negocios en varios lugares, no de juntar el código que se parece.

    En lo personal prefiero dejar esos ¬ęhelpers¬Ľ inline dentro del controlador/servicio y no crear una clase con una responsabilidad super poco definida que aguanta todo

    1. Como estas Luciano? Gracias por tu comentario.
      Yo creo que las collections de cada modelo no terminarían siendo una bolsa de gatos o contener solo helpers. Estas clases deberían tener los métodos necesarios para trabajar con una colección de Users (por ejemplo) y sus métodos deberían reflejar la intención del dominio.

  5. Tu c√≥digo queda m√°s entendible para ti, pero para otro da igual, como bien dices ¬ęEncerraste nomas el flatMap¬Ľ ahora para saber que chingados hace hay que ir a ver tus m√©todos que si bien, ya dan mas o menos una idea, pero no quita el problema al 100.

    ESO SI, TU C√ďDIGO QUEDO BIEN BONITO como debe ser. Pero creo que tienes TOC.

    En lo personal prefiero ver 5 l√≠neas de c√≥digo y si no entiendo algo ir directamente a la funci√≥n a ver que chingados hace… que andar navegando entre carpetas/clases hasta llegar a la puta funci√≥n…

    O sea no critico tu forma de trabajar es muy bonito hacer eso, pero volvemos a lo mismo es m√°s trabajo, tiraste m√°s lineas de c√≥digo, hiciste m√°s carpetas… y aunque ganas LEGIBILIDAD EN EL C√ďDIGO … ROBUSTECES EL Scafolding … Y a mi en lo particular no me gusta generar un mont√≥n de archivos/carpetas o digamos no me gusta tener tanto ¬ępedacer√≠a de c√≥digo¬Ľ. Sino solamente despedazar el c√≥digo donde realmente es mucho y vale la pena.

    1. ¬ęque chingados hace¬Ľ, ¬ęcreo que tienes TOC¬Ľ, ¬ęputa funci√≥n¬Ľ?? Tranquilo amigo, no es necesario faltar el respeto y no ser educado.

Sliding Sidebar

Matias Echazarreta

¬°Hola!

Mi nombre es Matias Echazarreta.
Soy desarrollador web con m√°s de 12 a√Īos de experiencia.¬†Amante de Laravel, de los libros y del rock de los ’90. Te puedes comunicar conmigo¬† por trabajos de contrataci√≥n, haciendo click aqu√≠.

Nuestro Patreon

Desde Patreon puedes solicitar asesoria personalizado. ¬°Ir a Patreon!

Suscríbete a nuestra lista de correo