Los principios SOLID, ¡explicados!
Вставка
- Опубліковано 11 лип 2024
- Seguimos con la Programación Orientada a Objetos, ésta vez con los 5 principios más famosos, ¡SOLID!
Si te gusta el contenido, échale un ojo a mi último vídeo!
4 Habilidades que TODO PROGRAMADOR SENIOR Necesita
• 4 HABILIDADES que IMPU...
👾 Redes sociales 👾
► Twitter: / bettatech
► Instagram: / betta_tech
► Canal Secundario: / @forkdebettatech
► Slack: bit.ly/33gaDDM
👨🏼🏫 MIS CURSOS 👨🏼🏫
👽 Curso de iniciación a la programación con JavaScript:
► bit.ly/3kr4bTc
👕 MERCHANDISING DEL CANAL:
► Tienda UA-cam: / bettatech
► Tienda Teespring: teespring.com/stores/bettatec...
⭐️ AFILIADOS ⭐️
🎁 7% Descuento en HOSTINGER (Código BETTATECH)
► www.hostg.xyz/aff_c?offer_id=...
🧠 Autocompletado con IA (Kite)
► www.kite.com/get-kite/?...
🐾 MacPaw (CleanMyMacX):
► macpaw.audw.net/c/2523912/941...
🎵 TODA la música es de EpidemicSound:
► www.epidemicsound.com/referra...
✉️ CONTACTO PROFESIONAL:
► Respuesta no garantizada:
bettatechyt@gmail.com
📚 LIBROS 📚
Design Patterns
► amzn.to/39XuQlq
Head First Design Patterns
► amzn.to/2uq6XUq
Refactoring
► amzn.to/2SQnf2c
Clean Architecture
► amzn.to/3bZVonJ
Clean Code
► amzn.to/32WVKq3
Introduction to Algorithms
► amzn.to/34SyVFP
Cracking the Coding Interview
► amzn.to/2QkdwC6 - Наука та технологія
No estoy muy de acuerdo con la definición que das del SRP, aunque entiendo de dónde viene la imprecisión ya que yo mismo la tuve. Realmente hay bastante confusión en cuanto al SRP. La verdadera naturaleza del SRP es que cada módulo de software de un sistema debe ser responsabilidad de un único stakeholder. Esto no se entiende mucho con la definición de stakeholder, pero sí con la de actor. El SRP realmente trata de hacer ver que si segregas un sistema creando límites basados en actores, obtienes un sistema más robusto en el que los cambios asociados a un área de negocio no afecten al resto. Es decir, es erróneo decir que el SRP funciona a nivel de función e incluso a nivel de clase, si no que lo hace a nivel de módulos o componentes de la arquitectura de software. Esto es un error muy común y se describe muy bien en la página 62 de Clean Architecture en la versión original en inglés, de Robert C. Martin. A pesar de ser el principio más conocido de los SOLID para mí es el más incomprendido. El propio DDD (Domain Driven Design), algo que abarca un campo de conocimiento relevante, nace de este concepto fundamental del SRP.
Wow, gran comentario! Es una definición mucho más precisa del SRP. Aún así, no se puede generalizar la definición abstracta al nivel que sea? ya sea función, clase, módulo, o incluso servicio entendiéndolo como sistema?
@@BettaTech En realidad no es generalizable, al menos como el propio autor lo ha concebido y él mismo así defiende que no se le dé ese uso. El principio de responsabilidad única habla sobre responsabilidad y la responsabilidad es una persona, o actor caso-de-uso. No es algo que el código haga. Una persona que quiere hacer un cambio en el código como el cambio de formato de la mantisa del valor de un informe, es código cuya responsabilidad recae en una determinada persona del negocio que requiere ese cambio. De hecho las responsabilidades en los organigramas de gestión, recaen de forma atómica en personas determinadas, esa responsabilidad no puede si quiera delegarse, únicamente puede delegarse la función de negocio que originalmente realiza la persona con dicha responsabilidad.
Aquí Robert C. Martin relata en detalle el principio, es largo pero creo que merece la pena. Es algo que implica una reflexión más profunda que el simple hecho (perdóname la expresión), de extraer código duplicado o con un comportamiento excesivo de una función, que todos hacemos diariamente, pero no está relacionado directamente con este principio.
ua-cam.com/video/Gt0M_OHKhQE/v-deo.html
@@Julio-wd2sk He estado leyendo más sobre SRP concretamente, y creo que lo que dices se puede resumir con lo que dice Robert:
"Gather together the things that change for the same reasons. Separate those things that change for different reasons."
Hay muchísima bibliografia sobre SRP que no acaba de dar ese mensaje. Voy a pinnear tu comentario para que la gente lo vea. Gracias!
@@BettaTech Sí, básicamente se puede resumir perfectamente con esa cita de Robert, pero a mí siempre se me ha hecho demasiado abstracta y probablemente sea la razón por la que la mayoría lo confundimos cuando lo aprendemos por primera vez. La aproximación con actores me parece más natural, aunque esa cita que pones es la que captura la esencia del principio en pocas palabras.
Buen comentario.
como una persona me dijo cuando empezaba en este mundo, tenes que lograr codear de forma tal que lo leas y sientas que lees un libro.
Excelente, me encanta haber encontrado tus vídeos me servirán mucho para repasar y enseñar a mis compañeros
"Las herramientas nos han de ser funcionales, y tenemos que usarlas para algún propósito"...con eso ya seremos bastante mejores programadores. Muchisimas gracias!!!
Cuando hablas de cada tema y muestras ejemplo de código en el trancurso del video me parece un ecxelente recurso didáctico. Muchas gracias, esta información me hizo sentir que mi código es aún muy pueril. Hice muchos cambios, y aunque aún no le acostumbro espero se vuelva rutina. Éxitos, sigue haciendo contenido profesional de calidad.
Excelente video, Muy bien explicado, me gustaría otro video de estos principios pero en la práctica! Saludos
Me encanta como explica este señor, super excelente. Gracias Master!!
Muy bueno. Con todo y el debate sobre el Principio de Responsabilidad única.
Excelente explicación! Te felicito. Era algo que nunca me terminaba de quedar claro. Por sobre todas las cosas el final donde aconsejas no ser tan rígido y utilizar partes de una herramienta si hace falta y no querer obsesionarse con seguir a raja tabla una técnica o teoría. Saludos y adelante!
Estoy en un Bootcamp y hoy estamos haciendo SOLID con java y ha sido muy útil, te has ganado una nueva subs al canal :)
Wow como hubiera amado este video hace años cuando aprendi SOLID. Aun me acuerdo las horas que le eche a esto y en solo 10 min se tiene una base bien solida.
Increíble como explicas los principios de manera tan sencilla, gracias a eso lo entendí a la primera !
Saludos desde Colombia.
Recien llego y ya me suscribí. Es muy agradable y amena tu manera de explicar. Un saludo desde Argentina.
Sinceramente, no conocía tu canal y hoy mi jefe me ha comentado que empezaremos a usar SOLID. Nunca había oído hablar de este sistema y cuando he entrado en la wikipedia me ha sonado todo a chino. Ver tu vídeo me lo ha dejado todo clarísimo, tanto que se lo pienso recomendar a mi jefe para las nuevas incorporaciones. Mil gracias y mi más sincera enhorabuena de un, desde ahora, nuevo suscriptor.
bravoooo !! que manera de explicar las cosas complejas en simples, te agradesco por tu video y tu aporte gracias!
Gracias la mejor y mas clara explicacion de principios de solid.
Segundo video tuyo que veo, muy claro, muy preciso, buen contenido. Me suscribo!
Excelente vídeo amigo, tienes una manera de explicar muy buena. Muchas gracias por el excelente contenido! Saludos desde Mexico
Gracias por tan buen video. Estaría bueno que crearas un curso de creación de una API REST con Node y Express, pero esta vez usando TypeScript y aplicando los principios SOLID, junto con DDD y demás buenas prácticas y arquitecturas limpias. Pienso, que seria una version mucho mas avanzada para seguir aprendiendo cuando se termina tu curso de "Desde 0 hasta maestro - Creando el backend con Node JS"
Me encanta el canal, son demas de mucha utilidad explicados de manera muy digerible, genial contenido
gracias Martin, siempre tan claro
Que manera de explicar tan genial. Estás en mi lista de UA-camrs favoritos en cuanto a tecnología. Saludos desde Chile 🇨🇱
Tu forma de explicar, simplemente, brutal. ¡Enhorabuena!
Si señor, que bueno eso de explicar con ejemplos donde se ve claramante, muchas gracias por el aporte :)
Impecable y super recomendable este vídeo!!
Muy bien explicado, muchas gracias
Buenos videos, muy bien explicados sigue así! Saludos de un novato programador desde Colombia
1:42 Principio de responsabilidad única
Cada clase tiene sus funciones especificas
3:00 Principio de abierto-cerrado
No se modifica una clase, se hereda en otra y se elabora nuevo código
5:04 Principio de sustitución de Liskov
6:41 Segregación de la interfaz
Separar las interfaces orientadas a las funciones necesarias en interfaces
Por medio de clases pequeñas y especificas
8:56 Inversión de la dependencia
Las implementaciones deben depender de interfaces
Creo que en el video se mesclaron estos 2 principios y no me quedo muy claro: Principio de sustitución de Liskov y Segregación de la interfaz. En la Segregación estoy de acuerdo pero en Sustitución no.
Muy bien explicado. Los ejemplos ayudan mucho a entender mejor. Gracias.
clarísimo y breve!! Gracias!!
Me encanta como explicas, es bastante entendible. Gracias
Un vídeo muy didáctico y perfectamente explicado. Enhorabuena por el canal.
Contenido muy bien explicado y de forma sencilla, gracias, sigue así!
Muy buen video.
Tus videos me hacen amar más mi profesión :)
Saludos ^^
Los ejemplos que das ayudan un montón , gracias por estos videos explicativos. Un saludo
Hasta hace poco no valoraba lo mucho que tu contenido es de utilidad. No me metí tanto en tu canal hasta que me toco implementar el patron de diseño decorator, y como lo explicaste muy bien se me dio por ver más videos que en otro momento los deje pasar porque no eran de interes, y que errado estaba!. Esto de traer temas que no dependan demasiado de los lenguajes de programación (Aunque esta bien tener TS para dar un ejemplo) es excelente!. Actualmente estoy pasando de a poco un sistema que no cumple casi nada de SOLID y se nota la dificultad que podría evitarse si se hubiera implementado, más que nada con la "S" de SOLID. Un saludo.
Necesito hacerme un poster con las formas normales de Boyce Codd, el ISO stackflow y ahora con SOLID.
Excelente video!!!
Por fin parece que UA-cam te esté haciendo un poquito más de caso, me alegro de que el canal crezca :)
Aca tb amigo, estan bien explicados, va subiendo de a poco ua-cam.com/video/NqrNHagw3-0/v-deo.html
Bestial explicación, GRACIAS
muy buena explicación entendible de SOLID, felicitaciones!!
Excelente video,muchas gracias por compartir
Que bien explicado, me costaba agarrarle a estos principios pero ahora ya los tengo mas claros, un saludo
Muy bueno! Y muy buen comentario al final! Son herramientas! Ya que ningún código o arquitectura que exista (y esto se prueba matemáticamente) se salva del principio de complejidad vs completitud. Lo que uno piensa que es correcto y "solido" deberá mostrar matemáticamente en el campo mas formal posible, sino, siguen siendo buenas herramientas para construir.
Me encanto el video por favor mas videos sobre este tipo de contenido
Gran video! El siguiente o alguno futuro puede ser sobre los unit test? Un saludo!
Excelente explicación! Súper clara! 👍👍
Muy buen video. Ojalá pudieras construir una serie de videos de mínima teoría de programación para acompañar lo que se ve en la universidad.
Explicas muy bien y la información es súper interesante y fácil de digerir :D
Excelente video. Muy bien explicado. Genio
Muchísimas gracias por la explicación!
Estaría muy bien que uno de los próximos videos fuese una explicación en las ramas que tiene la carrera y hacia donde está orientada cada rama .
Me ayudaría mucho a mi y a compañeros de clase que no sabemos bien bien que elegir.🙂💪
Excelente explicación!!
Muchas gracias!
Gracias por tu explicación, después de mucho videos, por fin entiendo estos principios.
Muy bueno, tienes u nuevo seguidor! Sería bueno el vídeo de patrones de diseño. También uno de las mejores API según tú criterio, no la típica API del clima.
Muy buen vídeo, gracias por la información.
Estos videos que haces son genial. Muy bien explicados.
Muy bueno! Hiciste el video sobre el encuentro entre la herencia y el diseño por componentes? Me parece muy interesante y mas contenido sobre desarrollo de juegos. Suerte!
Muchisimas gracias por este video, me ayudó demasiado a comprender los principios solid!
Una pasada de vídeo 🔥 gran trabajo 💪 Saludos!!😊
Buenísimo!!!! Gracias!!
Qué buenos consejos. Gracias por tus vídeos!
*Muy buen video, felicidades*
Gracias totales, todo muy claro, .... ando repasando para mi entrevista técnica XD
Muy interesante el vídeo y la forma de explicar, me gustaria aprender a diseñar componentes con buenas prácticas. Para aplicarlos a las nuevas librerías y framework como lo son angular, react y demás. Puede regalar alguna documentación donde hablen de ellos.
¡Excelente video! Gracias por la ayuda (:
Muchas gracias. Estuvo genial el video
Excelente, muchas gracias, maestro. Comentario para el algoritmo de UA-cam
Muy buen video tutorial, saludos desde Venezuela.
desde la uma de informatica de malaga te seguimos toda una clase sube mas videos de programacion orientada a objetos, programar con c++ y estadisticas ( big data ) con r
Te traes excelente canal aqui... abrazos desde el otro lado del atlantico
Excelente contenido! 👏 Un clásico
No sé cómo haces para ser tan claro cuando explicás un concepto 🤔 . Gracias por tu tiempo
WOW!... Excelente explicación!
Gracias por la explicación.
Increíble video, gracias por la explicación , nuevo sub
Excelente explicación
Bravo!!! Easy like that! ❤❤
gracias betatech excelente!!!
Podrias hacer videos hablando de los patrones de diseño y su implementacion.
Haces muy buenos videos sigue adelante
Solo se hacen videos que hablan de patos con diseño. 😁
Excelente!
Soy programador Java, tu canal es muy interesante.
Excelente Aporte, espero un vídeo sobre interfaces
Hola, soy nuevo en tu canal, felicidades por el este video muy bien explicado. Tendrás un video donde expliques alguna metodoogía de desarrollo individual, o qué metodología usas de manera personal cuado comienzas con un nuevo proyecto desde cero y lo vas a realizar tu solo. Qué recomendarías a los desarrolladores que comenzamos con un proyecto y nunca o nos cuesta mucho terminarlo completamente. Gracias y felicidades de nuevo.
Makina explicas todo tan facil, eres un crack te has ganado a un seguidor fiel
Esperando otro buen video explicando la relación entre herencia y por componentes. ¿Son realmente competidores de un mismo espacio, en el que podemos elegir uno u otro al gusto? ¿Son dos formas con el mismo objetivo, y por tanto hay que elegir con cuál lo alcanzaremos más convenientemente? ¿Cuándo uno y cuándo el otro? ¿Cuándo no utilizarlos? ¿Hay otra alternativa?
Por otro lado, la inversión de control, como la has explicado no se parece a la que hacen los frameworks (en contraposición a las librerías). ¿Podrías aclarar si son dos cosas con el mismo nombre o por qué lo ha parecido?
no estudio ing informatica soy estudiante de otra carrera pero con fe , explicas muy bien por que si entendi a pesar que no me relaciono a la cerrera, mas bien si alguien sabe una pagina web para aprender programación algo como inteligencia artificial o paginas web o algo mas estándar soy super novato asi que helpe, gracias
Lo dije en otro video y lo vuelvo a decir aqui, eres un genio, la forma de explicar, los recursos visuales, los ejemplos; todo perfecto xd
Me encanto tu video brother, sigue haciendo videos asi !!
Buenísimo el video hermano
Excelente vídeo amigo
qué fácil lo explicas. claro, breve y al grano.
Gracias !!
Gracias, saludos!!!!
Muy buen contenido, muchas gracias. Pregunta, los ejemplos de código que haces en que lenguaje es y en que programas haces esos ejemplos explicativos? Muchas gracias.
Suscrito. Lo máximo
Tengo que renovar mis conocimientos de programación, me he quedado un poco anticuado, gracias a ti lo estoy consiguiendo
Que gran calidad del video!
Nuevo sub :)
¡Muy buen vídeo! ¡Explicas muy bien! Una pregunta, ¿que software usas para las animaciones en pantalla?
Sublime, elegante, flexible, hermoso!, Gracias por introducirme a esto tan útil!, Te ganaste un seguidor!
Gracias!!!!
Buen video e interesantes comentarios, a ver si en el futuro hablas más de SRP
Gracias por hacer el video :) !