SOLID Principles in JavaScript

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.พ. 2025

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

  • @dereksamuelpaulpena9197
    @dereksamuelpaulpena9197 ปีที่แล้ว +23

    No es sencillo encontrar una definición tan clara de los principios SOLID con JavaScript, pero lo explicaste muy claro y entendible Carlos, muchas gracias

  • @justblueman
    @justblueman ปีที่แล้ว +32

    *S* - Single Responsability Principle (Principio de Responsabilidad Única) 1:37
    *O* - Open/Closed Principle (Principio de Abierto/Cerrado) 4:34
    *L* - Liskov Substitution Principle (Principio de Sustitución Liskov) 8:46
    *I* - Interface Segregation Principle (Principio de Segregación de la Interfaz) 13:10
    *D* - Dependency Inversion Principle (Principio de Inversión de Dependencia) 16:43

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

    Huy!! primer vídeo de SOLID que me chuto completo 😵 lo veré de nuevo je je

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

    El ejemplo de LSP me sonó mucho al de OCP, dado que la función makeRequest está abierta a recibir cualquier handler siempre que este cumpla con el contrato de tener un método handle, y a su vez está cerrada a modificaciones. De igual manera cumple con el SRP. Mismo caso que el DIP.
    Gran video como siempre Carlos! 👏🏼

  • @frako23
    @frako23 3 หลายเดือนก่อน

    Excelente video Carlos! Para entender mejor el SOLID que para mí es un poco complicado 😂

  • @elvisgarcia1822
    @elvisgarcia1822 ปีที่แล้ว +13

    un video de patrones de diseños en javascript con functions (nose si se puede hacer con functiones) estaria genial, por lo menos 5-8 patrones de diseños,
    no he visto a nadie explicandolo en espa;ol y si hay nadie lo explicara como tu :)

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

    Gracias Carlos por el video, sé que no es un tema fácil de enseñar, encontré un ejemplo sobre DIP, allí muestra las dependencias entre clases y el uso de interfaces como abstracciones, espero ayude, cito a Gemini: "En lugar de que una jaula dependa directamente de la clase Leon, hacemos que dependa de una interfaz Felino (que hereda de Animal). Esto significa que la jaula puede contener cualquier tipo de felino, no solo leones. Si queremos agregar un nuevo tipo de felino (por ejemplo, un puma), solo necesitamos crear una nueva clase que implemente la interfaz Felino y no tenemos que modificar la clase Jaula"

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

    Nunca habia visto a nadie explicar esto con tanta claridad usando JS , Gracias!!

  •  ปีที่แล้ว

    No soy de JS ni de web, pero me he dado cuenta que algunos los voy usando por las ostias que me he dado anteriormente! Un video muy interesante.

  • @lara97196516
    @lara97196516 ปีที่แล้ว +6

    En el segundo ejercicio de open closed, me da la impresión que lo que hizo fue el principio de responsabilidad única. Creaste dos funciones con diferentes responsabilidad. El principio de open closed, en si es como el más complejo 😊

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

      A mí me gusta más pensarlo como en una interfaz, al crear una interfaz tienes que crear métodos que pueden contener unos parámetros y un valor de retorno. Entonces cuando creas un método y lo implementas en una clase ese método se queda tal cual como está, si el día de mañana necesitas agregar una nueva función a la interfaz, no vas a modificar los métodos ya creados sino que agregarlas uno nuevo. Así dejas quieto lo que ya está construido pero amplias a partir de lo ya existente. Logrando mantener así el principio, cerrado a modificaciones pero abierto a la extensión

  • @CristianRomero-up1nj
    @CristianRomero-up1nj ปีที่แล้ว

    Bro de lo mejor de js en toda la web, las entrañas de js explicadas magicamente

  • @frankaguadol.5273
    @frankaguadol.5273 ปีที่แล้ว

    Excelente explicación, clara y concisa. ¡Muchas gracias! ¡Saludos!

  • @Ruben3D
    @Ruben3D 4 หลายเดือนก่อน

    Me ha gustado muchísimo!

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

    gracias son excelentes bases para practicar muy amable por subir este conocimiento!

  • @PlunkyDavid
    @PlunkyDavid 3 หลายเดือนก่อน

    Mejor explicado que la IA, gracias Bro.

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

    ¡Que buena explicación! Conceptos que son super importantes recordar constantemente incluso si ya tenemos experiencia, porque con el tiempo se nos olvidan.

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

      Hey Manu! Muchas gracias por comentar :)

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

    Excelente explicación, sigue asi mi hermano

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

    que buen video, la mejor explicacion que pude ver en 2023

  • @ADR-DEV
    @ADR-DEV ปีที่แล้ว

    Muchas gracias caballero. Perfecto!

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

    Excelente explicación!!! Muchas gracias por compartir este contenido

  • @deivi1790
    @deivi1790 10 หลายเดือนก่อน

    Podrías hacer un video sobre Patrones de arquitectura y patrones de diseño.
    Dando ejemplos para cada situación o caso en especifico.
    Usando js y java para ver sus diferencias entre ambos lenguajes.
    Y otro video aplicando estos patrones en react.
    Te lo agradecería mucho 🎉

    • @CarlosAzaustre
      @CarlosAzaustre  10 หลายเดือนก่อน

      Gracias por comentar @Deivi1790! lo tendré en cuenta :)

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

    Muy clara la explicación, muchas gracias por tu contenido Carlos, grande!!!

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

    Excelente video super entendible!!!

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

    Que buena explicación Carlos, muchas gracias por compartir este video

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

    Gracias Capo!

  • @samuelsaravia7621
    @samuelsaravia7621 5 หลายเดือนก่อน

    Que buen video!!

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

    Gracias, sos lo más!

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

    Creo que OCP no quedó muy claro, me da a entender que cada vez que tenga que agregar un nuevo método de pago, tendría que agregar al menos una línea a la función de processPayment, para llamar a la nueva funcionalidad, por lo que si somos puristas estaríamos rompiendo el OCP, ya que estamos modificando su código. En cambio si metemos un 3 parámetro, llamémosle callback, podríamos llamar al callback después de que nuestra función haga su magia y así poder añadir la funcionalidad extra que necesitemos.
    Muy buen video y genial edición también. Felicidades por el curro. Un saludo.

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

    Muy bien explicado!

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

    excelente, muchas gracias, pregunta, que tema es ese, tambien pack de iconos

  • @IronMan0-h6j
    @IronMan0-h6j ปีที่แล้ว

    Es muy bueno EXPLICANDO JODEER!!!

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

    Gracias, excelente explicación

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

    Excelente explicación.

    • @CarlosAzaustre
      @CarlosAzaustre  11 หลายเดือนก่อน +1

      Mil gracias! Me alegro que te haya servido

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

    La d en java o en otros lenguajes tiene algo que ver con el @override para inyectar dependencias clases o objeto ?

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

    Uffas, había escuchado de estos términos y en su momento quise aprenderlos y aplicarlos pero no entendí nada y terminé odiando esa palabra SOLID. Tu explicación con ejemplos me ha gustado mucho y creo que haré las pases jaja

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

    Teso, me pareció excelente :D

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

    Grande Carlos , gracias por tu contenido :)

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

    Qué tema de vscode usas?

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

    el open/close sería relacionado a la abstracción?

  • @javierandres-dev
    @javierandres-dev ปีที่แล้ว

    Gracias!

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

    Super, excelente video!!!!!!

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

    Super bueno

  • @nicolaslopezvidueiros4581
    @nicolaslopezvidueiros4581 3 หลายเดือนก่อน

    gracias por los consejos

    • @CarlosAzaustre
      @CarlosAzaustre  3 หลายเดือนก่อน

      Un placer amigo!

    • @nicolaslopezvidueiros4581
      @nicolaslopezvidueiros4581 3 หลายเดือนก่อน

      @@CarlosAzaustre justo el mie. tuvo un parcial en la facu de veo estos principios

  • @terry-
    @terry- ปีที่แล้ว

    Genial!

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

    Gracias

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt ปีที่แล้ว

    Buen video Carlos

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

    Tengo una duda Porque la funcion calculateSalary recibe todo el objeto employee en lugar de hoursWorked y payPerHour: calculateSalary(hoursWorked, calculateSalary)?.
    Saludos.

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

      porque tiene sentido ya que ambas propiedades están en el objeto Employee, además siempre es ideal que una función tenga el menor número de parámetros. De hecho el código se podría mejorar mas incluso si en la función del generateReport creas un objeto Wrapper que incluya todo lo necesario para el report. Pero esto ya son otro tipo de buenas práctica que se dan por supuestas al aplicar SOLID.

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

    Capo, en el ultimo ejemplo seria mas claro si usaras herencia para extender de otra clase que sea abstracta, Connection, ambas implementaciones concretas

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

      Los principios SOLID están pensados en la programación Orientada a Objetos. En este video los aplico a JavaScript, que aunque permite trabajar con OOP, he preferido darte un toque funcional.

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

    Holas, el ejemplo animado de "Principio de Sustitución Liskov", no hace "mach" con el tema.

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

    Esto si, es enseñar

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

    Puedes hacer ejemplos usando react?

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

      Claro! Un video de solid aplicado a react suena genial como 2a parte de este :)

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

    conque programa haces tus videos

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

      Utilizo OBS para grabar la pantalla y la imagen de la cámara

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

      @@CarlosAzaustre y para edición lo mismo.

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

      Contigo aprendí que era eso, creo que explicas bien.

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

    Cuál es la topografía que está usando? Me gustaría tenerla

  • @CarlosGaliano111
    @CarlosGaliano111 8 หลายเดือนก่อน

    12:40 no dejo ver la liea 21 y 22

  • @PabloOlivera-my7wm
    @PabloOlivera-my7wm ปีที่แล้ว

    La definición de 8:58 esta mal, se ve que todos la copian del mismo lugar. La definición es lo que esta despues de la coma y el ejemplo del pastel tambien esta mal (de arranque xq si quieres un pastel de manzana no vas a sustituir la manzana por una fruta que no sea manzana) o al menos no das a entender lo que quieres decir.
    El pastel sigue siendo pastel independientemente de la fruta que uses, no es que si usas manzana puedes hacer el pastel y si usas platano te cambia la receta.

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

    Carlos lee nuevamente la página 62 si es la versión en inglés. El SRP no lo pillaste. Vuelve a leer el libro y fijate en la relación: autor vs el compromiso adquirido por el módulo para satisfacer esa necesidad del autor. Tambien recordar que el titulo de ese principio es completamente correcto o estaba fumando una pipa el tio Bob que solo el sabra en que estaba pensando al decidir sobre ese titulo. xD

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

    top

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

    muchas gracias por tu aporte, te has tomando un tiempo necesario para generar este contenido, está muy bien hecho el video, pero creo has usado el peor lenguaje para explicar estos principios, por ejemplo, el uso de las interfaces no se ha aplicado correctamente, no obstante, la gente se puede hacer una idea de lo que quisiste transmitir.

  • @vmartinetti
    @vmartinetti 10 หลายเดือนก่อน

    Pues haz mezclado Open Closed en el Liskov substitution