Por qué no uso "Herencia" en mi código

  Рет қаралды 22,108

CodelyTV - Redescubre la programación

CodelyTV - Redescubre la programación

6 ай бұрын

Uno de los primeros conceptos que aprendemos al programar es la herencia. También es uno de los primeros conceptos que desaprendemos cuando empezamos a trabajar, porque escuchamos frases como:
• La herencia es mala
• Promueve malas prácticas
• Es lo peor de la Programación Orientada a Objetos
Pero la herencia puede ser buena, simplemente hay que saber cuando aplicarla.
Curso Mapeo de herencia en PHP ! bit.ly/herencia-php
﹤🍍﹥ Codely
├ 🎥 Suscríbete: kzbin.info?sub_co...
├ 🔖 Cursos: bit.ly/cursos-codely
└ 👋 Redes sociales:
├ / codelytv
├ / javiercane
├ / rafaoe
├ / codelytv
└ / codelytv

Пікірлер: 37
@tadeogonzalezalvarez6488
@tadeogonzalezalvarez6488 6 ай бұрын
Cuando pregunto en entrevistas "cuales son los pilares POO". La respuesta mas común es "eso lo vi en el colegio nunca lo uso". Pero por algo son pilares, uno de ellos es la abstracción. Cuando diseñamos tenemos que considerar lo mas importante o relevante del elemento que queremos abstraer, si nos tomamos el tiempo de diseñar/abstraer antes de tirar código (lo se, es complicado y por eso es importante conocer el negocio y tener algo de colmillo), nos da la confianza que nuestro árbol de herencia será sano, porque nuestros hijos serán compatibles con su padre y con ello será mas difícil romper Open/Close ni Liskov. Si aun tienes dudas, no tienes mucha experiencia diseñando o no conoces bien el negocio. Con cautela y sin abusar siempre puedes crear tu clase padre con base en los atributos/métodos comunes de los hijos pero corres el riesgo de perder mantenibilidad, ya que estas "heredando" de lo especifico no de lo abstracto.
@pauriquelmebmx
@pauriquelmebmx 6 ай бұрын
Olé! Me habéis venido en el momento justo! Gracias !! ❤
@lechuck2011
@lechuck2011 6 ай бұрын
En realidad creo que en el video no se dice explicitamente pero lo importante es la jerarquía semántica que hay entre las clases. Herencia está bien usarla cuando la clase hija ES una especificación de la clase base(en el ejemplo VideoStep ES un step). Cuando la relación jerarquica semantica no está clara: VideoCreator NO ES un UseCaseBase o está tirada de los pelos para que calce, no usar herencia. La jerarquía que hace la herencia puede ser muy buena y simplificar un montón, pero cuando se usa solo para reutilizar código es un tiro en el pie
@GonzaloCasal
@GonzaloCasal 6 ай бұрын
Exacto, el ejemplo del video es malo y no esta bien empleada la herencia.
@agustinsardon1904
@agustinsardon1904 6 ай бұрын
Herencia: tipo de relación "Es un"; composición: tipo de relación "tiene un". No hay que confundir el mal uso o abuso de algo con que ese algo sea malo per se. La serie "por qué no uso x" debiera ser "los problemas del mal uso de x", sea x una estructura fundamental de flujo, una característica de la POO o una máquina de máquina herramienta.
@diegofernandocobacruz6508
@diegofernandocobacruz6508 6 ай бұрын
Usted entendió todo
@SkillTrailMalefiahs
@SkillTrailMalefiahs 6 ай бұрын
Un buen desarrollador en Java!!!!
@christophersierra3796
@christophersierra3796 6 ай бұрын
El video deberia llamarse " por que no uso MAL la herencia en mi codigo"
@bagocavs
@bagocavs 6 ай бұрын
Pero con estos titulos salieron los mejores videos de codely, como el de deja de usar mvc
@alvarocarrillanca
@alvarocarrillanca 6 ай бұрын
Es que el título funciona como click bait
@christophersierra3796
@christophersierra3796 6 ай бұрын
@@alvarocarrillanca si yo entiendo, pero la mitad del video fue haciendo algo absurdo q es hacer herencia sin cumplir algo básico de preguntarse "es un" ; osea de verdad q codely tiene cosas buenas pero ya va siendo q la gran mayoría son cosas rebuscadas o absurdas ; 10 o 15 minutos para mostrar una forma "elaborada" de hacer algo respecto de algo que no esun problema o q es una implementación evidentemente absurda. No sé, deberían cambiarse de nombre y ponerse Academia rizando el rizo.
@diegofernandocobacruz6508
@diegofernandocobacruz6508 6 ай бұрын
Le impresionaria la cantidad de código que he visto dónde usan la herencia simplemente para "pasar" funciones a la clase hija sin que haya nada en común entre está y la clase padre. Es bueno que se señalen esas malas prácticas.
@christophersierra3796
@christophersierra3796 6 ай бұрын
Si, pero el sentido del vídeo si somos sensatos es q la inyección era mejor q la herencia bien hecha. Y obviamente la inyección es mejor q una herencia mal hecha. Esa es la queja. La idea sería mostrar cómo la herencia bien hecha puede compararse con la inyección. Es decir , el motivo por el q no usa la herencia es porq no la quiere usar mal? Entonces tbn puedo poner un caso donde uso mal la inyección de dependencia y doy como solución una buena implementación de herencia o no? Es esa la queja.
@VasylSamagala-pr6yt
@VasylSamagala-pr6yt 6 ай бұрын
Literal, tampoco he sido muy de usarla, pero leyendo hace un día en "El programador pragmático" daban ejemplos muy claro del porqu3 no se debe usar.... :))
@cmariuss
@cmariuss 6 ай бұрын
algo parecido me pasa con el patron unit of work, tienes que compartir un monton de codigo que al final el caso de uso no necesita
@victorangelchanbinina8730
@victorangelchanbinina8730 3 ай бұрын
pero consulta el uso de varias clases no causaria problema de garbage collector ?
@geometralive
@geometralive 6 ай бұрын
Hola, en la composición cuando una clase recibe por constructor muchas clases, por ejemplo unas 5 a mas, parece un smell de algo, alguna sugerencia de cómo mejorar?
@jp_pineda
@jp_pineda 6 ай бұрын
Tal vez esa clase hace demasiadas cosas y hay que checar que cumpla el principio de responsabilidad única. Aunque a veces es una solución "aceptable" o "la única por el momento". Depende del proyecto y de los recursos.
@bagocavs
@bagocavs 6 ай бұрын
5 no me parece tanto igual, cuando llega a las 10 o 15 ahi me empiezo a preocupar jaja
@benjaminsepulveda1664
@benjaminsepulveda1664 6 ай бұрын
Si tu constructor tiene muchas propiedades encapsuladas en un DTO, hay muchos casos prácticos donde hay constructores con bastantes propiedades especialmente en componentes de bajo nivel que interactúan con configuraciones complejas
@noface960
@noface960 5 ай бұрын
Excelente información chicos, lo unico que se hace necesario es que Rafa haga un refactoring a su dicción, me cuesta trabajo entenderle en ocasiones.
@CodelyTV
@CodelyTV 5 ай бұрын
Mil perdones! Trabajando en ello!! 🙌
@argentobeach
@argentobeach 5 ай бұрын
QUÉ TRISTE. Como Software Architect, les digo que han olvidado los principios de la OOP. La relación de INHERITANCE es una relación de "identidad" (A : B => A = B) La relación de COMPOSITION es de "pertenencia" (A.B => B ⊂ A) No pueden decir que no conviene una cosa u otra debido al acoplamiento, el cual existe a diferentes niveles y afecta la CALIDAD según esté bien usado o no. De lo contrario, ¿cómo pueden hablar de SOLID y explicar LSP (Liskov) usando la composición? Simplemente, no se puede. También dijeron que "hay alternativas por composición". Eso es FALSO. No hay alternativa a la Identidad. Tampoco es correcto aquello de generar ID's en el FrontEnd, porque eso también es ROMPER LA IDENTIDAD por conveniencia. Pero eso es para comentar en otro video. Saludos y gracias, Angel
@benjaminsepulveda1664
@benjaminsepulveda1664 6 ай бұрын
Buen video,malo el titulo eso si
@AnthonyCode
@AnthonyCode 2 ай бұрын
por qué no uso variables en mi código
@exkalybur_dev
@exkalybur_dev 6 ай бұрын
estos panas son mas fuertes que el hambre. .... chiste: por qué no respiro para vivir... por que no me da la gana. mas pros, mas maquinas, mas que batman. Dioses.
@FuranGameplays
@FuranGameplays 6 ай бұрын
La herencia se usa en caso de tener una jerarquía clara, sin más. Me parece un buen vídeo, pero, como de costumbre, hay que venir sabido de casa para ver vuestros vídeos xd. Me alegra que ya no deis tanto la chapa y vayáis más al grano de todas formas
@abejarano87
@abejarano87 6 ай бұрын
Y la clase step se aplica el patrón factory para entonces lograr crear un objeto step sin necesidad de instanciar las clases hijas 🎉
@CodelyTV
@CodelyTV 6 ай бұрын
Totalmente!! Aquí se puede ver cómo queda con eso aplicado github.com/CodelyTV/infrastructure_design-inheritance_mapping-php-course/blob/main/03-problems_with_inheritance_mapping/3-add_cache/2-with_primitives/src/Mooc/Steps/Domain/Step.php#L22 🙌
@exkalybur_dev
@exkalybur_dev 6 ай бұрын
Yo: ey! KZbin promociona este video. Algoritmo: Si mi amo dueño y señor todo poderoso.
@pellax
@pellax 6 ай бұрын
Ojo Codely corrigiendo al premio Turing Alan Kay. Esto no me lo pierdo.
@johnnyscript9669
@johnnyscript9669 6 ай бұрын
El proximo video: 'Por que no uso "Codigo" en mi codigo'
@kriollo_dev
@kriollo_dev 6 ай бұрын
todos los videos dicen porque no uso, for, if, while, ahora herencias... es que sólo me meto a estos videos para ver los comentarios...
@CodelyTV
@CodelyTV 6 ай бұрын
Desde este lado también es interesante leer los comentarios de estos vídeos. 🙌 El título es la forma de llegar a que más gente venga a ver el vídeo, porque si se llamara "Cuando es bueno utilizar la herencia", tristemente, tendría menos de la mitad de views, y el esfuerzo que hemos dedicado en prepararlo no tendría el mismo impacto.
@king-manu2758
@king-manu2758 6 ай бұрын
Poo en inglés significa caca. No uséis eso en una empresa internacional.
@nilsondelaossa4052
@nilsondelaossa4052 6 ай бұрын
Programación funcional.
Por qué no uso "OFFSET" en mi código (con millones de rows)
17:33
CodelyTV - Redescubre la programación
Рет қаралды 19 М.
Por qué no puede haber SOLID sin Eventos de Dominio
21:14
CodelyTV - Redescubre la programación
Рет қаралды 11 М.
КАК ДУМАЕТЕ КТО ВЫЙГРАЕТ😂
00:29
МЯТНАЯ ФАНТА
Рет қаралды 3 МЛН
100❤️
00:19
MY💝No War🤝
Рет қаралды 21 МЛН
WHO LAUGHS LAST LAUGHS BEST 😎 #comedy
00:18
HaHaWhat
Рет қаралды 20 МЛН
Can You Draw A PERFECTLY Dotted Line?
00:55
Stokes Twins
Рет қаралды 113 МЛН
Mejora la Calidad de tu Código utilizando Value Objects
16:20
CodelyTV - Redescubre la programación
Рет қаралды 32 М.
Síndrome del Impostor como Programador
7:57
El Rincón Del Dev
Рет қаралды 95 М.
Let's Talk About TypeScript's Worst Feature
3:42
Theo - t3․gg
Рет қаралды 50 М.
Qué es la Consistencia Eventual | Diseño de Sistemas
16:58
CodelyTV - Redescubre la programación
Рет қаралды 10 М.
¿Por qué Debes Aprender ARQUITECTURA de SOFTWARE?
20:34
hdeleon.net
Рет қаралды 28 М.
Cómo evito usar JOINs
12:54
CodelyTV - Redescubre la programación
Рет қаралды 30 М.
Diferencias entre Value Object vs Entidad vs Agregado
19:33
CodelyTV - Redescubre la programación
Рет қаралды 17 М.
RabbitMQ vs Kafka - ¿Cuál escoger?
27:03
CodelyTV - Redescubre la programación
Рет қаралды 32 М.
Los Triggers de la Base de Datos pueden ser una Buena Práctica
15:24
CodelyTV - Redescubre la programación
Рет қаралды 14 М.
iPhone 16 с инновационным аккумулятором
0:45
ÉЖИ АКСЁНОВ
Рет қаралды 8 МЛН
Как правильно выключать звук на телефоне?
0:17
Люди.Идеи, общественная организация
Рет қаралды 1,2 МЛН
НЕ ПОКУПАЙ СМАРТФОН, ПОКА НЕ УЗНАЕШЬ ЭТО! Не ошибись с выбором…
15:23
OZON РАЗБИЛИ 3 КОМПЬЮТЕРА
0:57
Кинг Комп Shorts
Рет қаралды 1,8 МЛН
КРУТОЙ ТЕЛЕФОН
0:16
KINO KAIF
Рет қаралды 5 МЛН