🔑 Principios SOLID al Descubierto - Ep05: Domina la Inversión de Dependencia | Code Like a Pro

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 พ.ค. 2020
  • Domina la arquitectura de software con la serie "Principios SOLID al Descubierto": Este quinto y último episodio aborda el vital Principio de Inversión de Dependencia. Te lo explicamos de forma clara y accesible, con ejemplos de código y gráficos explicativos, para que puedas diseñar sistemas desacoplados y con bajo mantenimiento. ¡Es la culminación de nuestra serie y un principio fundamental para cualquier arquitecto de software!
    Completa tu formación SOLID con la serie completa:
    • 🔑 Principios SOLID al ... 📐 | 1) Principio de Responsabilidad Única
    • 🔑 Principios SOLID al ... 🔒 | 2) Principio Abierto Cerrado
    • 🔑 Principios SOLID al ... 🔀 | 3) Principio de Sustitución de Liskov
    • 🔑 Principios SOLID al ... 🧩 | 4) Principio de Segregación de Interfáz
    • 🔑 Principios SOLID al ... 🔗 | 5) Principio de Inversión de Dependencia
    💰 Apoya el Canal: 💰
    Para apoyar mi contenido directamente: paypal.me/jorgecortesdev ⬅️⬅️⬅️
    Lograr las 4,000 horas de visualización para monetizar en TH-cam parece un reto monumental. Si disfrutas de mi contenido y quieres apoyar su creación, cada aporte me acerca a seguir compartiendo mi pasión. ¡Gracias por tu apoyo!
    Usa el hashtag #CodigoyCafeDev para unirte a nuestra comunidad de expertos en #ArquitecturaDeSoftware y #PrincipiosSolid.
    🎵 Música cortesía de Bensound: www.bensound.com/royalty-free-...
  • แนวปฏิบัติและการใช้ชีวิต

ความคิดเห็น • 54

  •  4 ปีที่แล้ว +1

    Para ver el código de este video ¡HAZ CLICK! 👇👇👇
    💻Código en GitHub: git.io/JfzIr

  • @dayanafulla3125
    @dayanafulla3125 3 ปีที่แล้ว +10

    Tienes un don para explicarlo todo de manera sencilla, ni mi docente en 3 horas de explicación de SOLID pudo poner ejemplos tan claros como los tuyos

    •  3 ปีที่แล้ว +1

      Muchísimas gracias Dayana, algo tarde la respuesta pero llegó. He retomado el canal espero que te sigan agradando los videos nuevos. Saludos!

  • @tzalejo82
    @tzalejo82 2 ปีที่แล้ว

    Excelente explicación amigo!gracias!!

  • @nicolassilva7938
    @nicolassilva7938 ปีที่แล้ว

    Que buen video, gracias!

  • @MagnusAnand
    @MagnusAnand ปีที่แล้ว

    muy bien explicado!

  • @gmddmg
    @gmddmg 3 ปีที่แล้ว

    Muy bueno, excelentemente bien explicado

    •  3 ปีที่แล้ว

      Hola, muchas gracias

  • @JorgeLuis-ts6qp
    @JorgeLuis-ts6qp ปีที่แล้ว

    Creo que es la explicación más clara y concreta que he visto nunca de este concepto. ¡Felicidades!

  • @joselinefebres4877
    @joselinefebres4877 2 ปีที่แล้ว

    Muchas gracias por tu contenido!

    •  2 ปีที่แล้ว

      Gracias a ti!

  • @raydeleon7806
    @raydeleon7806 2 ปีที่แล้ว

    Explicación muy sencilla sin tanto rodeo, excelente.

  • @DavidRuiz-lx2jm
    @DavidRuiz-lx2jm 2 ปีที่แล้ว

    Después de ver muchos videos por fin encontré uno con el que entendí este principio SOLID y de paso el patrón de diseño ADAPTER, Mil gracias eres un crak 👌

  • @marcosbarrera8183
    @marcosbarrera8183 2 ปีที่แล้ว

    Que explicacion y que video tan excelente. Buen trabajo!

  • @daniscanada7155
    @daniscanada7155 2 ปีที่แล้ว

    Buen capitulo, me ha servido para recordar y aprender de paso algo nuevo.

  • @jesusvelazquez5276
    @jesusvelazquez5276 3 ปีที่แล้ว +1

    Muchas gracias por esta serie de los principios solid, para los que empezamos es un tesoro encontrar material como el tuyo, magnífica la forma en que explicaste los principios. Había visto otros vídeos pero nada que ver con los tuyos. Te reitero mi agradecimiento por compartir tus conocimientos.

    •  2 ปีที่แล้ว +1

      Muchas gracias Jesús, saludos!

  • @CarlosReyes-wx8pr
    @CarlosReyes-wx8pr 2 ปีที่แล้ว

    Exelente serie y muy buenas explicaciones. Gracias!!

    •  2 ปีที่แล้ว

      Muchas gracias Carlos!

  • @gerzepellin2350
    @gerzepellin2350 3 ปีที่แล้ว

    Te adoro jefe! Logre entender este principio!!

  • @666zulett
    @666zulett 4 ปีที่แล้ว +3

    Muy buena serie de videos me ayudo a entender un poco mas sobre principios solid son re complicados de implementar en programas ya contruidos

    •  4 ปีที่แล้ว +1

      Gracias maestro, tienes razón en ocasiones resulta complicado en código ya elaborado, pero no imposible, se puede ir refactorizando poco a poco. Te platico un poco mi experiencia, me encuentro trabajando en una migración de un código legacy a Laravel y cuando ya creo que logré desacoplar el código me encuentro con más cosas que me regresa a volver a pensar como hacerle y al final me doy cuenta que los campos de la base de datos de las tablas involucradas que deberían de tener los mismos valores los campos los llamaron diferentes y pues ya estoy a punto de darme por vencido con eso. Tendría que meterme a cambiar la base de datos y no es algo que me gustaría enfrentar en este proyecto.

    • @petro13cid
      @petro13cid 4 ปีที่แล้ว

      @ Te entiendo, maestro, a mi también me ha pasado. Es muy importante el análisis y diseño de la solución para evitar futuros dolores de cabeza, muchas gracias por tus explicaciones, están geniales

  • @unnicksimple3096
    @unnicksimple3096 4 ปีที่แล้ว +4

    Excelente como siempre... Estaría genial un ejemplo de arquitectura hexagonal en php ... des de la vista hasta la persistencia.
    Felicitaciones

    •  4 ปีที่แล้ว +2

      Muchas gracias maestro, para ser honesto no tengo mucha experiencia en ese tema, pero voy a ver qué se puede hacer, o si tienes algún otro tema que estes interesa con gusto.

    • @unnicksimple3096
      @unnicksimple3096 4 ปีที่แล้ว +1

      @ Hace mucho tiempo que programo principalmente en php y Nunca preste atención a SOLID arquitecturas y demas... cuando vi lo de arquitectura hexagonal me pareció interesante. Y me pregunte como pasar de modelos MVC MVP a una Arquitectura Hexagonal como es el proceso donde van las vistas, donde quedan los controladores, modelos los helpers... y no encontré a nadie que de un ejemplo claro. Y veo que tienes gran potencial dando explicaciones.. y LOS CANALES GRANDES ya son muy grandes como para tirarles ideas... :)

    •  4 ปีที่แล้ว +5

      Muchas gracias, me di a la tarea de investigar sobre este tema y coincido contigo esta muy interesante, por lo que veo está basado en SOLID por todos lados, además de utilizar un par de patrones de diseño, antes de hacer un video sobre esto haré los videos de los patrones de diseño que utiliza que hasta lo que he visto no son muchos pero podría estar equivocado. Realmente me pareció muy buen material, gracias por la sugerencia!

  • @cristianjesus3250
    @cristianjesus3250 3 ปีที่แล้ว

    Tienes buena facilidad para explicarlo. Ojala puedas subir mas videos.

    •  3 ปีที่แล้ว

      Me da gusto leer esto mi amigo, había tenido abandonado el canal pero estoy por retomarlo y generar nuevo contenido. Muchas gracias por tu comentario y saludos.

  • @eduardobravo1985
    @eduardobravo1985 4 ปีที่แล้ว +3

    Muy bien explicado! Gracias. Podrías hacer una serie sobre patrones de diseño?

    •  4 ปีที่แล้ว +3

      Muchas gracias! Claro que si, también me gustaría una serie de patrones, espero que pronto pueda darme el tiempo para enfocarme en eso o al menos en los más principales

  • @HighOctaneNews570
    @HighOctaneNews570 ปีที่แล้ว

    excelente, tienes videos sobre la arquitectura hexagonal que se basa mucho en este principio?

  • @franciscobusleiman5295
    @franciscobusleiman5295 3 ปีที่แล้ว

    Nuevo suscriptor. Excelente

    •  3 ปีที่แล้ว

      Muchas gracias Francisco! 😊 Saludos!

  • @elkyngustavodiosamartinez2626
    @elkyngustavodiosamartinez2626 3 ปีที่แล้ว

    Hey men eres bueno! 😁 Deberias seguir con los videos, no estaba claro y con estos videos quede meló! Gracias! Sigue con los patrones de diseño!

    •  3 ปีที่แล้ว

      Muchas gracias Elkyn, por fin he podido regresar a grabar videos, y prestarle más atención al canal, espero que los videos nuevos te sigan siendo de utilidad!

  • @elmanotas4041
    @elmanotas4041 3 ปีที่แล้ว +2

    Y en store cómo agregaste el Paypal?

  • @willianandresbustos6920
    @willianandresbustos6920 3 ปีที่แล้ว

    Buen dia, excelente video. Si por ejemplo necesitas que pay devuela algo como respuesta. Como sería la implementación?

  • @atherbsc5384
    @atherbsc5384 2 ปีที่แล้ว +1

    Hola, me imagino que el metodo de la interfaz puede llevar un parámetro del objeto que compro el usuario lo envio por la clase Tienda y lo recibo en la clase adaptador y hacer toda la logica?

    •  2 ปีที่แล้ว

      Claro, la interfaz presentada en el video es super sencilla, tu puedes agregar los métodos que sean necesarios con los parámetros que requieras. Saludos!

  • @chrisytbexp6705
    @chrisytbexp6705 4 ปีที่แล้ว +2

    Excelente video, solo tengo una duda
    ¿Cómo puedo identificar en mi código las entidades de alto y bajo nivel?

    ¿Existe alguna regla para identificarlas? ... estaria buenisimo que las explicaras
    Este paradigma me recuerda mucho al que se explica en el libro de Kotlin en el problema de "fragile base class" el cual ocurre cuando las clases base pueden causar un comportamiento incorrecto porque el código modificado de la clase base ya no coincide con los supuestos en sus subclases, basicamente dice "diseña y documenta para la herencia de otra manera prohibelo"
    la verdad esto es muy nuevo para mi que aprendí a programar con Java entre otros donde todo es "extendible" y "modificable" a menos que se especifique, en Kotlin como en otros es "todo está cerrado y final a menos que se especifique como abierto" es bastante contradictorio de hecho, pero tiene sus ventajas creo ...
    Saludos Jorge

    •  4 ปีที่แล้ว +6

      Esas son preguntas excelentes, en ocasiones asumo que todo se entiende y omito partes que pienso son innecesarias de explicar (malamente), puedes identificar a los módulos de alto nivel como el código que depende de otro y la dependencia sería el módulo de bajo nivel. Algo así como, el módulo de alto nivel es donde se invoca la acción y el módulo de bajo nivel donde se realiza la acción.
      Espero que esa breve explicación sea suficiente de no ser así déjame otro comentario con tu duda. Muchas gracias por ver el video y saludos!

    • @ivangalicia4618
      @ivangalicia4618 4 ปีที่แล้ว

      @ ME queda la duda... bajo el diagrama del tio Bob, las apis de Paypal y el banco serían las de alto nivel no? ya me confundí. (aqui el diagrama github.com/mattia-battiston/clean-architecture-example/blob/master/docs/images/clean-architecture-diagram-2.png)

  • @agustinperez8700
    @agustinperez8700 ปีที่แล้ว

    no entiendo la interfaz PaymentProcessor, y porque cada vez que se implementa se la sobrescribe el método pay por el de la api.

  • @MultiTelefono
    @MultiTelefono 3 ปีที่แล้ว +1

    Muy Bueno el video. Tengo una duda, que pasaria si en las API de banco y Paypal, los datos de requeridos por cada una cambian? por ejemplo en paypal solicita al usuario el correo de la cuenta, y en el banco piden el numero de cuenta y contraseña

    •  3 ปีที่แล้ว

      Hola Jeff, muchas gracias! Y respondiendo a tu pregunta (espero que haya entendido correctamente), en el ejemplo si te fijas en los adaptadores ya se han creado las instancias de las clases de las APIs y se les inyectan por medio del constructor, por ejemplo: $myBankApi = new BankApi($numero_de_cuenta, $contraseña); y teniendo esa instancia creada ya la podrías usar en el adaptador, así mismo la instancia de la API de PayPal se construye antes. Lo que creo que te serviría en este caso es utilizar el patrón de fábrica para elaborar tus procesadores de pago, lamentablemente no alcancé a grabarlo pero creo que te puede servir si buscas al respecto. Espero haber despejado tu duda. Gracias nuevamente!

    • @robertoflores1274
      @robertoflores1274 3 ปีที่แล้ว

      re4xhw4yu

  • @maryta22
    @maryta22 3 ปีที่แล้ว +1

    Gracias :)
    ¿Podrías recomendar las fuentes de donde lo aprendiste?

    •  3 ปีที่แล้ว

      Hola María, pues no tengo una sola fuente, busqué la info en google y fui recopilando información y practicando. Saludos!

  • @sirfreedom
    @sirfreedom 2 ปีที่แล้ว

    Claro man... pero siempre que veo ejemplos les falta UTILIZARLOS ... sea en un metodo MAIN si es una aplicacion en en algun lado, porque estoy enviandole instancias de objetos en los contructores, pero no se que objeto deberia utilizar.. calculo que store, pero que instancia de pago le envio? la del adapter?

    • @masterjj24_channel_28
      @masterjj24_channel_28 2 ปีที่แล้ว

      Yo sin haber probado el código, diría que sí, debes pasarle instancias de los adaptadores a la clase Store. Así cuando ejecutes el método Purchase() de la clase Store, en realidad estarás pagando con el adaptador que le hayas suministrado.

  • @eq2_c2
    @eq2_c2 ปีที่แล้ว

    Si cada módulo de cada banco utiliza la interfaz que es invocada desde Store. ¿Quién se encarga de comunicar el módulo con la API de cada banco? ¿Quién evalúa hacia qué banco se realiza el pago? Entonces... ¿Qué beneficia la interfaz en store?

    • @federicobaez1572
      @federicobaez1572 11 หลายเดือนก่อน

      Tambien me quedo la duda, jeje