Así dejé de hacer código spaghetti

  Рет қаралды 10,179

Product Crafter

Product Crafter

Күн бұрын

Пікірлер: 66
@JairoBum
@JairoBum 5 күн бұрын
No seas maleducado es forma mas preciosa de verlo y hasta hora me entero... Por fin lo entiendo, gracias !!!!
@ProductCrafter
@ProductCrafter 5 күн бұрын
Jajaja, me alegro de que te haya gustado! Gracias a ti por comentar!
@ReymarMend
@ReymarMend Күн бұрын
Hermosa metáfora, brillante
@OmarAngaritaJ
@OmarAngaritaJ 10 күн бұрын
No había entendido del todo la ley de demeter pero con la analogía de "no seas maleducado" quedó muy claro todo. Excelente
@ProductCrafter
@ProductCrafter 10 күн бұрын
Gracias! Me alegro de que te haya servido 🙌
@davidag90
@davidag90 5 күн бұрын
Buena analogía y un lindo concepto para emplear. Un poco en la línea de esa premisa que establece que las propiedades de los objetos no deben ser accedidas directamente (sobre todo desde fuera), sino que deben contar con métodos de consulta, seteo y modificación. Gracias por compartir!
@ProductCrafter
@ProductCrafter 5 күн бұрын
Gracias a ti por el comentario!
@spaniard13
@spaniard13 6 күн бұрын
En resumen, no te debes demeter donde no te llaman.
@ProductCrafter
@ProductCrafter 6 күн бұрын
😂😂😂😂😂😂
@BhEaN
@BhEaN 11 күн бұрын
Me ha encantado la metáfora de coger la cartera del cliente para quitarle el dinero diréctamente XDDD... muy buena explicación. Únicamente creo que hubiera quedado mucho más completo si de verdad hubieras definido unos interfaces previamente, ya que aunque se presupone que los estas usando, realmente no es así... solo has llamado a unos métodos que has ido definiendo sobre la macha. Se entiende perfectamente a lo que te refieres, pero quizás hubiera quedado más claro el concepto de esa forma. Saludos!!
@ProductCrafter
@ProductCrafter 10 күн бұрын
Le doy una vuelta para la próxima vez 🤔 Gracias por comentar!
@marlonrugama2148
@marlonrugama2148 10 күн бұрын
Casualmente estoy trabajando en una aplicación modular que conlleva crear interfaces e implementación. Tienes que lidiar con control de acceso y otras técnicas. A simple vista es más trabajo y sí que lo es, pero a largo plazo el proyecto resulta bien organizado, escalable, modular y separación de responsabilidades. Cuando tienes los módulos separados puedes reutilizarlos y crear un nuevo feature se vuelve más rápido y fácil. Pero el inicio es doloroso sin duda alguna.
@ProductCrafter
@ProductCrafter 10 күн бұрын
Como dices es un trade off, al final cambias algo de velocidad al principio por agilidad después. Gracias por comentar!
@johnclaius1091
@johnclaius1091 10 күн бұрын
Vine buscando cobre y he encontrado oro! Excelente material!
@ProductCrafter
@ProductCrafter 10 күн бұрын
Gracias!!
@odoncm
@odoncm 10 күн бұрын
Que chulos todos estos métodos de funcionamiento que explicas, me encantan!!!! Gracias.
@ProductCrafter
@ProductCrafter 10 күн бұрын
Me alegro! Muchas gracias!! 🙌
@wiskys98
@wiskys98 10 күн бұрын
Una analogía espectacular! Muy buen video, esperando ya el siguiente 😁
@ProductCrafter
@ProductCrafter 10 күн бұрын
Gracias! 🙌 El lunes o así subiré otro jaja
@robertomorandeiraaparicio1595
@robertomorandeiraaparicio1595 7 күн бұрын
Muy buen ejemplo! Hay una bug en el cambio en la wallet. Comprueba si tiene más dinero de forma estricta, con lo que si la cantidad es 100 dirá que no, cuando en realidad sí que tiene suficiente dinero, quedándose a cero. Un saludo!
@ProductCrafter
@ProductCrafter 7 күн бұрын
Buen ojo! Gracias por comentar y avisar del fallo!!
@ezequielbitschin6832
@ezequielbitschin6832 10 күн бұрын
Muy bueno!! Estaría genial si subís algún video abordando un poco los problemas que trae aplicar ésta ley estrictamente (por ej. Tell, don't ask -> explosión de métodos) y formas de abordarlos (por ej. usando inyección de dependencias / interface segregation) buscando algún punto de equilibrio. Gracias por el gran contenido ;)
@ProductCrafter
@ProductCrafter 10 күн бұрын
Me parece muy interesante! Lo apunto a la lista que tengo de videos para revisar! Gracias por la sugerencia! ❤️
@ZorMon
@ZorMon 9 күн бұрын
Lo mejor para evitar caer en este error es hacer siempre por defecto todas las propiedades de una clase privadas. Luego ya si necesitamos hacer pública una por alguna razón, pues la hacemos, y si el lenguaje lo permite, mejor aún hacerla readonly para asegurarnos de que se no se modifique desde fuera.
@busters.20
@busters.20 8 күн бұрын
Muy buena explicación
@ProductCrafter
@ProductCrafter 7 күн бұрын
Gracias! 🙌
@jeanpitech
@jeanpitech 9 күн бұрын
Excelente maestro!!
@yousef-xyz
@yousef-xyz 9 күн бұрын
Que hermoso es un codigo bien refactorizado ❤
@edwinfajardo2135
@edwinfajardo2135 6 күн бұрын
Los principipios SOLID en acción
@juancarlospizarromendez3954
@juancarlospizarromendez3954 9 күн бұрын
Naturalmente, la caja electrónica dirá, "A pagar: X". A la cajera no le interesa si hay o no hay dinero en el monedero del comprador, ni las tarjetas de crédito/débito que podría tener, etc. Si el comprador no puede pagar X a la cajera entonces se complicará el trato, y por eso está la POO para intentar continuar el protocolo del impago.
@Daath1990
@Daath1990 7 күн бұрын
Yo lo conozco más por uno de los principios de base de datos: "Déjale al Cesar de lo que es del Cesar, por algo es el emperador de Roma"
@ProductCrafter
@ProductCrafter 6 күн бұрын
No lo había escuchado nunca! 🤔
@MrSurinen
@MrSurinen 9 күн бұрын
excelente video excelente barba
@ProductCrafter
@ProductCrafter 8 күн бұрын
Jajajajajjaja ❤️
@HorelvisCastilloMendoza
@HorelvisCastilloMendoza 6 күн бұрын
Yo siempre lo he conocido por encapsulamiento y aislamiento entre clases
@ProductCrafter
@ProductCrafter 5 күн бұрын
Son conceptos relacionados sí!
@IgnaDevPokemon
@IgnaDevPokemon 8 күн бұрын
Gracias por este contenido
@Emanuel-yb3qk
@Emanuel-yb3qk 9 күн бұрын
Bua brother, muchas gracias por esto.
@ProductCrafter
@ProductCrafter 8 күн бұрын
Gracias a ti!
@alexdevorigin1
@alexdevorigin1 10 күн бұрын
Excelente explicación.
@ProductCrafter
@ProductCrafter 10 күн бұрын
Gracias!
@TheLaiKash
@TheLaiKash 11 күн бұрын
Muy buen consejo! No te das cuenta de esto hasta que tienes que refactorizar un código y cambiar 8000 lineas de código que accedían a un atributo de una clase chiquitita, por ejemplo. De este modo solo tienes que cambiar la implementacion de la clase chiquitita siempre y cuando devuelva el mismo tipo que antes. También ayuda a que no todo esté accesible por otras partes del código y a hacer más legible todo, algo así como los getter y setter en Java (creo que en python se hacen con @property y @attribute.setter). Muy buenos estos mini-tips en vídeos chiquitos!
@ProductCrafter
@ProductCrafter 10 күн бұрын
Me suena ese tipo de refactor 😅 No es divertido jaja
@elcaza1119
@elcaza1119 10 күн бұрын
Excelente video!
@ProductCrafter
@ProductCrafter 10 күн бұрын
Gracias!!
@JardanySvidrigailov
@JardanySvidrigailov 10 күн бұрын
Me encanto la metáfora
@ProductCrafter
@ProductCrafter 10 күн бұрын
Gracias!!
@kaitenague
@kaitenague 6 күн бұрын
bueno, python tampoco fué pensado para hacer código empresarial de gran calidad, es más orientado a glue code y srcipting aunque lo usen mucho los matemáticos para hacer cosas rápido.
@ProductCrafter
@ProductCrafter 6 күн бұрын
Todos sabemos como es Python 😂 Pero es que es súper versátil jaja
@Santana-900
@Santana-900 10 күн бұрын
Esto en el mundo real no crees que complica mucho el desarrollo. Piensa que has creado 4 métodos, métodos que seguramente se vayan a repetir varias veces porque hay sistemas enormes donde no te vas a acordar que ya hiciste algo parecido en otro lado. En mi caso trabajo con Odoo y me cuesta ver como podría aplicar esta lógica en un sistema tan grande Pd: Me ha encantado el vídeo, tienes un nuevo subs
@ProductCrafter
@ProductCrafter 10 күн бұрын
Al final es un trade-off. Es tener estos métodos o el día que cambie la wallet tener que tocar en 1000 sitios. Si la wallet la usas poco y está controlada (es poco volátil) puedes aceptar el trade off de no abstraerla. Todo "depende" en el desarrollo jajaja. Gracias por el comentario!!
@FranciscoAntilef-h9g
@FranciscoAntilef-h9g 10 күн бұрын
Me encanto la explicacion , pero siento que sigue rompiendo la ley de demeter al preguntar si posees el amount, no deberia solicitar el pago y en caso de NO contener suficiente amount la wallet deberia levantar una excepcion de dominio(la cual no esta creada en el ejemplo por simplicidad, asumo)?? saludos
@ProductCrafter
@ProductCrafter 10 күн бұрын
Siii! Pero eso que mencionas es el principio de "tell don't ask", que está muy muy relacionado con la ley de demeter pero no son la misma cosa exactamente. Pero me encanta que hayas visto intuitivamente que le fallaba algo! Eso muestra que escribes código como toca 🙌. Miraré de hacer un video de ese principio o de los dos juntos, gracias por el comentario!!
@firielcasselius4033
@firielcasselius4033 9 күн бұрын
De pronto me siento inteligente porque siempre he puesto mis atributos como private, uso metodos para todo.
@ProductCrafter
@ProductCrafter 8 күн бұрын
Perfecto entonces! Bien encapsulado
@franklynt2351
@franklynt2351 9 күн бұрын
saludos amigo creo el concepto es mas apropiado a una validación que a a no producir código espaguett las buenas practicas como la explicas la evitasi es la manera de hacerlo correctamente pero el titulo es confuso al aplicarlo
@ProductCrafter
@ProductCrafter 8 күн бұрын
Gracias por el feedback! Si que es verdad que puede llevar a equivocación. Le buscaré otro mejor! Gracias!
@mayonesaka
@mayonesaka 10 күн бұрын
La ley de Demeter hasta meter xDDDDD ya me voy, Un saludo!!!!
@ProductCrafter
@ProductCrafter 10 күн бұрын
😂😂😂
@jonathaneugeniosandovalmar2391
@jonathaneugeniosandovalmar2391 11 күн бұрын
Siento que estudio y no logro consolidar todos los conocimientos
@ProductCrafter
@ProductCrafter 11 күн бұрын
Poco a poco! La mejor forma de consolidar las cosas es aplicándolas, desarrollar es algo que se aprende mucho haciendo, así que dale tiempo y poco a poco va mejorando todo! Gracias por comentar!
@JoSe086
@JoSe086 2 күн бұрын
Wallet debería ser un paymentMethod inyectado (por qué wallet y no credit card?) con un único método pay que contenga dentro la lógica para realizar el pago (que puede ser distinta según el método de pago, conectarse al banco, a paypal…) y devolver el resultado de la operación. De la manera que lo has presentado hay muchísimo acoplamiento todavía porque manejas la lógica de Wallet dentro de la clase Customer. El título es “como dejé de hacer código spaguetti” pero esto sigue siendo bastante spaguetti 😅 (lo siento)
@ProductCrafter
@ProductCrafter Күн бұрын
Totalmente cierto!! El objetivo del video era mostrar la ley de demeter, el lunes subo un video partiendo de este explicando el principio de "tell don't ask" donde comento los problemas que comentas, pero en vez de inyectar el método de pago he optado por un customer.pay() que hace un wallet.pay() y wallet ya sabe como pagar. Gracias por el feedback! Si ves algo que tampoco te convence del video del lunes dime! Lo aprecio mucho 🙌
@hawkapparel
@hawkapparel 9 күн бұрын
Buena info!
@_DT_
@_DT_ 9 күн бұрын
dentro de Wallet yo tendria los metodos get_money_amount() y set_money_amount() y como tu dices. dentro de esas funciones validaria si me llega el tipo de dato correcto.
5 deadly Rust anti-patterns to avoid
13:25
Let's Get Rusty
Рет қаралды 40 М.
I quit my job as a programmer after 15 years
8:41
MoureDev by Brais Moure
Рет қаралды 70 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН
TE VOY a AHORRAR AÑOS de Estudio en Programación
20:10
hdeleon.net
Рет қаралды 48 М.
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 263 М.
JavaScript finally improves date handling (Goodbye Date)
11:05
¿HA ESTALLADO LA BURBUJA DE LA IA? - DeepSeek y la caída de NVIDIA
25:22
Refactoring: lecciones desde las trincheras
30:38
Product Crafter
Рет қаралды 1,2 М.
Cómo mejoro mi código eliminando ELSEs
11:25
Product Crafter
Рет қаралды 6 М.
Aprende conceptos antes que código
14:02
Fazt
Рет қаралды 392 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН