Sacándole el jugo al Patrón Repository 🥝

Sacándole el jugo al Patrón Repository

Deja una respuesta

Comment as a guest.

  1. debemos separar las operaciones de escritura de las operaciones de lectura? Esto no me queda claro podría darme un ejemplo o explicación de como conseguir esto.

    1. Como va Enrique? Una operación de lectura le diga a una consulta a la base de datos que solo trae datos (un SELECT) y tu programa solo maneja esos datos para mostrarlos al usuario (o, como en el ejemplo del artículo, para exportarlos a un Excel). Y una operación de escritura es aquella que inserta, elimina o actualiza datos de la base de datos, por ejemplo una registración de un nuevo usuario.

      Cualquier duda, déjala por aquí. Saludos.

  2. Que tal, de mi parte he usado este patron, pero donde lo aprendí, vi que se creaba un repo por cada model, esta bien asi? Adicional a ello tenia un BaseRepo, de cual todos los repos extendian de este, en BaseRepo tenia las funciones como create, update, delete, etc.
    Esta bien que use un repo por cada model o tendria que cambiar algo?

    1. Hola Marco, como estas?
      Utilizar el patrón de esa forma te da el beneficio de poder testear y desacoplar la capa de persistencia. Si eso es lo que buscabas y tu proyecto lo requiere, esta perfecto.

      Ahora, si tu proyecto no va a cambiar la base de datos en el futuro, ni tampoco estas haciendo test automatizados sobre esto, entonces no los necesitas.

  3. en java tenemos los entity(modelo), reposity(métodos comunes), service(lógica de trabajo), controller (endpoint).

    ¿En laravel hacen la lógica en que seccion?

    1. Hola Omar, como estas?

      Donde poner la lógica de negocio en Laravel es una gran duda ya que Laravel no te dice donde debes hacerlo.
      Muchos dicen que el mejor lugar es en los Modelos porque son los que están más cerca de los datos. Pero las clases de los Modelos terminan siendo enormes y muy poco reutilizables.

      Para mí, lo mejor es meter toda la lógica en clases Services.

      Gracias por comentar.

      1. Hace poco empece a ver Laravel.
        quería implementar un patrón repository, con una capa DTO.
        En java dentro de los DTO podemos hacer la validación de tipos con etiquetados.
        Pero aquí no se si usar el Validate Form para hacer un objeto DTO. Y muchas otras cosas que me plantean dudas.
        Creo que me volveré ha Java.
        Gracias por tu respuesta.

        1. Como estas Omar?
          En Laravel lo mas importante son sus Routes, Controllers, Models y Views, luego el resto de clases (FormRequest, Scopes, etc.) son solo «herramientas» que el framework te brinda, pero el framework es bastante flexible para que utilices la arquitectura que quieras.
          Si quieres utilizar Laravel como venias acostumbra en Java, esta perfecto. Después depende de uno y del proyecto que estes haciendo, si quieres utilizar el resto de cosas que tiene el framework o no.

          Acá explico unos principios de otra arquitectura con Laravel, por si la quieres ver: https://www.laraveltip.com/desacoplando-laravel-de-tu-aplicacion/

          Saludos.

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