¡Adios a los IFs en Programación!
ฝัง
- เผยแพร่เมื่อ 21 ก.ย. 2024
- En este video te mostraré alternativas a las sentencias ifs en programación, con el objetivo de que aprendas algo nuevo hoy.
🍺 Mis Cursos de PROGRAMACIÓN: hdeleon.net/cu...
📚 Mis Libros
📖 Aprender a Programar con C#: hdeleon.net/li...
🤖 Mi Setup
🖥️ Mi Monitor: amzn.to/3dtnDkk
⌨️ Mi Teclado: amzn.to/3BtjKnq
⌨️ Mi Deck elgato: amzn.to/3dvEKC3
🎧 Mis Orejeras: amzn.to/3BwQYm0
🎤 Mi Micrófono: amzn.to/3qPvFHh
Si quieres apoyarme y darme para una cerveza puedes hacerlo por aquí: paypal.me/Hecto...
Puedes apoyarme desde 0.5 USD al mes uniéndote como miembro al canal aquí: / @hdeleonnet
🐦Twitter: / powerhdeleon
🌎Mi Sitio web: hdeleon.net
📻Raw Radio en Spotify: open.spotify.c...
#programación #dev #programming
Mis cursos de Programación: hdeleon.net/cursos-premium/
Mi Nuevo Libro: hdeleon.net/libro-aprender-a-programar-con-c-hector-de-leon/
Me gusta porque le pones ganas. Yo soy docente hace 37 años y entré para ver cómo lo explicabas. Te hago una recomendación si me lo permitís. Yo te pude seguir porque tengo experiencia, pero a otros les puede costar más. Una forma que te sigan más fácil es usar del depurador en las partes claves para que entiendan cómo se hacen los llamados. En mi experiencia, la gente entiende lo que decís pero le cuesta aplicarlo. Cuando lo ven con el depurador le es más sencillo. Segui con esas ganas que la docencia es un arte que dignifica. Saludos
Y que hable quizás un poco mas despacio =p
@@juancruzaraujo8839 😄
También podrías aplicar el patrón de diseño "Cadena de Responsabilidad" para evitar ifs, when/switch o bucles con breaks.
Sin la aclaración ClickBait con la aclaración Mil gracias... se aprende. Un cordial saludo desde Colombia
Es obvio que el if no puede desaparecer, pero hoy he aprendido algo nuevo, y realmente es interesante, creo que todo tiene su utilidad!!!!, sinceramente Gracias!!!!!
Una cadena de responsabilidad se usa cuando tenés que encadenar una serie de acciones en secuencia (con un orden establecido en el diseño). Si entendés este concepto que es lo principal, el código no es tan complicado
No conocía la última forma de reemplazar una estructura IF.
¡Gracias por hacer este vídeo! 👌🏼
Quitar los If para poner código que parece ofuscado, pienso que es como matar moscas a cañonazos. Con todos mis respetos a los amantes de los "cañones".
Total, empieza a parecer código hecho con un framework X
Depende de la operacion, ya que por sencillez los if son mejor, pero en cuanto a perormance a veces conviene utilizar estas otras alternativas
@@mjccambranis depende sobre que se desarrolla por ejemplo en android google recomienda usar if y reemplazar los switch por ifs pero depende sobre que se desarrolla
Aborrezco el código enterprise, pero la segunda solución que dio, la del diccionario de acciones es muy elegante.
Tiene que ver con un tema de mantenibilidad. Imaginate que en vez de tener 4 evaluaciones como en el ejemplo tuvieras 25 y además en el tiempo puede ser que se sumen nuevas. En la versión con ifs tenés sí o sí que agregar al menos 4 líneas de código cada vez, y vas a meter mano en la lógica, por ejemplo, olvidar un else puede cambiar el comportamiento de la aplicación. Imaginate, además, que tuvieras que refactorizar algo, por ejemplo, sobre qué variable se aplica el cambio... deberías reescribir el mismo cambio en 25 lugares diferentes.
En la versión con un diccionario, el cambio es agregar una entrada en la tabla y ya, y no implica meter mano en la lógica. Y además se separan por completo las reglas de lo que hacés de la aplicación de la operación.
En cuanto a eficiencia, que lo mencionó alguien por acá, todas las opciones que muestra el video son *peores* que la versión original con los ifs, porque implican iterar los diccionarios. Tendrías una ganancia si pudieras usar la operación como clave que se resuelve en O(1), pero en este ejemplo no aplica.
cuando las moscas son más bien leones, entonces se agradecen esos cañones
Muchas gracias. Eres de todo menos un básico. Tus vídeos son realmente diferentes
Se torna muy simple cuando alguien sabe explicar, excelente. Saludos.
Excelente genio, se destaca tu objetividad y pedagogia a la hora de explicar. Gracias!
Más cerca del 700, muy buen video: Conciso y práctico, aún así toca el tema a fondo, explicando cómo y cuando tiene sentido usarlo. Con tips utiles y referencias a otros patrones
Recuerda que t>=10 y t>= 100 son condiciones que siempre serán verdad y que por lo tanto se pueden eliminar sin cambiar la funcionalidad. Cuando se evaluan rangos ordenados conectados y lo hacemos ascendentemente, podemos evaluar directamente si t < a entonces.. si t < b entonces.. No hace falta confirmar que t es >= que a, puesto que la anterior condición ya verificó esto.
Estaba revisando los comentarios antes de hacer el apunte. Se reduce la lógica y se hace más sencillo el código a la vista.
El siguiente video será Adios a Switch-Case!
Y el siguiente: Adiós a while... y el siguiente: adiós a repeat until... y el sig... xD
El siguiente video será Adios a los foreach
Tener alternativas para hacer algo es excelente ya que si encuentras código cómo el del vídeo sabes que están haciendo, muchas gracias por compartir,,👌
Lo mismo, más complejo, bien implementado al grano, aunque hay IFs detrás de todo ello. bien hecho jovencito
Es interesante, dependiendo del caso, la simplicidad del if es mejor que complejizar tanto el código. Al final vas a tener una linda y gigante implementación de un patrón de diseño de algo que se podía resolver con un if/else.
Llevaba tiempo que los videos se me antojaban bien superficiales pero con este realmente aprendí cosas nuevas. Grande Héctor!!
Excelente, me encantó la opción por patrón de diseño, mas limpia, podrías separar tus if para casos de uso en particular
Es buena técnica. Cómo todo, tiene sus pros y sus contras, que debemos evaluar al usar.
Remplazar los ifs por switch case es como ser diabético y cambiar la Coca-Cola por Pepsi
son mas rapidos de ejecutar que un if
Jajaja es lo mismo
No, es como cambiar la esquizofrenia por narcisismo, prefiero la última.
@@MEGAFERMANy más ordenados e optimizados.
Los switch son los mismo que los if al menos que sea suficientemente simple que el compilador lo pueda implementar como un array y saltos por indices
Excelente, me gustó esta técnica. No la conocía.
Hola Hector, ese switch case, me recordó al case when de SQL Server, que gran vídeo. Saludos.
EXCELENTE MAESTRO.... MUY DIDACTICO ESPECIFICO Y EJEMPLO REAL!!! SALUDOS DESDE LA REPUBLICA ARGENTINA!!!!
Strategy es un muy buen patron para esos casos donde el codigo es muy extenso. Muy buen video!
Me encanto lo de usar un diccionario con los predicados (o en otros lenguajes funciones sin mas, arrow functions, funciones anónimas, lambdas, etc)
el diccionario de predicados no lo conocia y la verdad esta muy interesante para aplicarlo en casos complejos, gracias
Muy interesante desde el punto de vista de un docente universitario, buen tema para tareas y forzar a que los estudiantes realicen un mejor análisis.
😀
Este ejemplo en específico se puede hacer en una sola ejecución con una fórmula, normalmente, yo me salto la necesidad por condicionales de esta manera, inventando una operación que se ejecute una vez
function getDiscountScale(t number)
n = max(min(t, 1000), 0)
L = String(n).length
p = L % 2
s = L + p + sign(p - .5)
r = s - ((p % 2) + p) * sign(L - 1)
return r
discount = total * getDiscountScale(total)
print(total + tax - discount)
Me encanta cuando usas programaci'on funcional!
Excelente video y buena forma de utilizar un diccionario.
Llorarás y llorarás y sin nadie que te consuele, así te darás cuenta que si te engañan dueeeele 🎶
Muy buena la enseñanza, algo nuevo se aprende cada día, cuando leí sobre patrones no entendí bien el de estrategia, no es completo, pero se entendió.
Gracias me has ayudado a crear una mejor lógica con las condiciones ❤
Buen video, como dices lo bueno es aprender nuevas estrategias para resolver diferentes problemas
Buenisima leccion sobre el pattern matching!
Me laten Tus vídeos... Muy entretenido cómo explicas el código. Ojalá llegue a más de 700 comentarios
Con cada video que subis se aprende algo nuevo. Gracias por tu tiempo. Saludos desde Argentina.
Lo de diccionario de predicados esta muy interesante 👏
Una locura hermano. Vamos a implementar pues.
Que excelente video amigo! Muchas veces uno tiene lidiar con estas situaciones. No conocía los Predicate, sí usé en situaciones parecidas pattern matching.
Excelente video. Es sobre alternativas al if, pero me ayudó a entender definitivamente: predicados y diccionarios como recursos alternativos. Gracias
Wow, gracias CLARO QUE APRENDI 🎉
Se mira salvaje lo que hiciste gracias por compartir tus conocimientos. Saludos desde Nicaragua :)
Ese video potente de aprendizaje! Excelente, enhorabuena. Cómo consigues siempre hacer la programación divertida y motivadora. Más de una y dos has reflotado mi motivación.
gracias si aprendi las nuevas caractrristicas predicado muy interesante gracias
Se entiende el contexto, pero la solución más simple siempre es la mejor!!
Me gustó mucho la forma de usar Predicates dentro de un diccionario, nunca lo había considerado. Otra forma que es parecida a la ultima donde la lógica se encapsula en clases (Operación1, Operación2, Operación3...) es la del patron de Factory, donde una clase factory te regresa el tipo de clase que necesites, en este caso una de tipo IOperación, entonces ya después la tratas sin importar cual sea la implementación escogida porque el código estaría basado en una abstracción (IOperación) y no en una implementación.
Lo menciono por si alguien busca alguna alternativa y le pueda servir n_n
Muchas gracias por el video!
Excelente !! , fue toda una clase de programación avanzada con tips que no los encuentras fácilmente Gracias !!!
Un Abrazo desde lo mas austral del mundo ... Chile .. !!
He pasado por varios lenguajes de programación (creo que todos los que vemos tus videos lo hemos hecho) y los paralelos entre ellos son notables.
Felicitaciones y gracias por hacer estos videos para la comunidad de programadores!
Excelente información, ayuda para operaciones complejas usando polimorfismo, el super switch en casos de condiciones extremas sin polimorfismo
Excelente explicación..
Gran vídeo. Muy buena forma de operar🤩
Excelentes ejemplos para pensar en código escalable. Gracias por los videos tan específicos!
Pregunta: ¿porqué en las condiciones no pones simplemente t
Me pareces un creador para el aprendizaje bastante bueno, por muchas cosas pero sobre todo ese detalle de ir a lo extremo. Aprendo mucho contigo, sigue así!!
Me gusto la solucion del diccionario de predicados pero seria mas para cuando los valores no vienen hardcodeados y mas bien vienen de una tabla dodne se definen los rangos. Pero viendolo como un codigo mas legible y entendible me siguen gustando mas los ifs
excelente video!! me gusta lo de usar el mapa de predicados :D
interesante, esto puede facilitar el mantenimiento del codigo mas adelante
Gracias.... la forma como explicas las distintas maneras de llegar a un resultado es bastante entendible. Saludos desde El Salvador
Muchas gracias, me sirven mucho tus explicaciones, para volver a recordar en mi diaria las alternativas que muchas veces por muchas razones que terminan aturdiendo, dejo de evaluarlas para una mejor implementación y mucho mas clara para un futuro mantenimiento.
Muy bueno Hector. Gracias por la enseñanza.
Chamo! Brutal el diccionario de predicados ese si no me la sabia
Excelente!!! el video que necesitaba
Todos los recursos son válidos. Al final buscar la forma que opmitimize más el código ( complejidad temporal y espacial) y a la vez sea lo más claro posible.
Se aprendió algo nuevo, gracias Hector por el aporte! Genio total!
Me encanta como te explicas y también que tus ejemplos son claros para programadores principiantes como yo, muchas gracias por tu contenido tan bueno.
Me recuerda a cuando uso matrices en python, pero más en un proyecto de web scraping, donde según la url llamaba a la función de ese sitio web, así no tengo que hacer if cada vez que agrego un nuevo sitio
Otro comentario para llegar a 700. Evitar los if es un buen esfuerzo para crear estructuras lógicas más complejas, eficientes y funcionales. Buen video
Increible, muchas gracias por el video
Excelente contigo Hector, justo estaba buscando una alternativa a un problema de condiciones, ahi con su buen like buen hombre jejeje
tssss grande tio hector santo patrono de los mortales programadores
Aprendí patrones, gracias
Hoy aprendi algo... excelente video...viva el 700!!!
¡Excelente! La expresividad del lenguaje
Gracias por aclarar por un momento pensé que eras el Rey de la Salsa! 🎉🥵🌶💃
Es genial el contenido que haces! de paso en mi lenguaje favorito C#! Ya quiero ver de que se tratará el siguiente video! Saludos
Se me hace bien, pero me hubiera gustado ver un benchmark para ver la diferencia de costos entre las 4 opciones.
Como dato adicional, en la opción 3 con las acciones, en vez de usar el ciclo, se pudo haber utilizado linq.
siempre se aprende algo nuevo, gracias!
Contenido de calidad y útil. El que no aprende es que no quiere
Muy bueno! Especialmente porque empezás diciendo que nada de esto quiere decir que no podés usar "if".
Te amo Hector, gracias por tanto bro.
pfffffffffff ninguna de esas me sabia jajaja solo el if y el case
, aprendi algo hoy :) gracias bro
Gracias Héctor, aprendí algo nuevo de mucha utilidad
Soy Javascript Developer. No sé absolutamente nada de C#, pero ver esto es altamente educativo y valioso.
Es muy bueno, tu canal
Otro comentario para los tacos, porque es contenido que merece estar en Internet.
Saludos.
Muy interesante, podrías subir más casos como estos solo que subiendole más el nivel
Muy buena opción no conocía esa opción a los ifs
Siempre hay algo nuevo que aprender, gracias un saludo, apoyando para llegar al número mágico: 700
Esta bueno saberlo, pero es mas entendible y ocupa menos lineas el if.
Si el cuerpo de tu if {} crece, lo mejor es utilizar polimorfismo combinado con if, el tercer caso.
excelente explicación men!!
Huy qué bacano, muchas gracias.
deberias sacar mas cursos en Udemy, acabo de darme una vuelta por Udemy, y estan muy buenos tus cursos, estaria excelente ver más curosos tuyos en la plataforma
Muy bueno Hector, me encanta. He logrado aplicar los mismos patrones en JavaScript, y es muy útil.
el master del backEnd !!!!
Saludos desde Argentina hoy en mi clase de programación justo estabamos viendo if y switch (en c recien estoy empezando)y de 50 alumnos en la clase eramos 3 nada mas los que respondian a lo que preguntaba la profesora
Gracias profe
Gracias Oscar de León de la programación
Me llevo el conocimiento (buen dato) e intentaré aplicar en Python...!
Pongo el comentario para que puedas comer jejejeje. Mil gracias por tus videos.
Muchas gracias, super interesante!! Intentaré aplicarlo en mis proyectos 👍🏼