Cómo mejoro mi código eliminando ELSEs

Поделиться
HTML-код
  • Опубликовано: 28 янв 2025

Комментарии • 71

  • @JairoBum
    @JairoBum 20 часов назад +2

    Emilio muchísimas gracias por este excelente contenido, la verdad hasta ahora estoy aprendiendo Python pero si he visto ese tipo de código difícil de leer y mantener en muchos trabajos y en muchos lenguajes, que nos enseñes a ver un código mas limpio con esta sencillez, con paciencia y cariño es espectacular. MUCHAS MUCHAS GRACIAS!!!

    • @ProductCrafter
      @ProductCrafter  11 часов назад

      Me alegro que te haya aportado! Gracias a ti por comentar!

  • @omartorresrios8216
    @omartorresrios8216 2 дня назад +10

    Excelente video, deberia ser obligatorio verlo para todos los que vayan incursionando en el desarrollo

  • @hack_crack
    @hack_crack 23 часа назад +1

    Gracias por compartir este tipo de visión algorítmica, que te permite ver las cosas de una forma diferente y aporta a seguir trabajando de una forma más elegante y pro

  • @stripTM
    @stripTM День назад +1

    Guau, como se agradece tocar un código en el que no necesitas hacerte un plano para entender que es lo que hace, estás técnicas son mano de santo.

    • @ProductCrafter
      @ProductCrafter  11 часов назад +1

      Más de un plano de esos que comentas me he tenido que hacer jaja

  • @TheAsdDsaQwerty
    @TheAsdDsaQwerty 22 часа назад +1

    Me han gustado los comentarios sobre el precio base del ticket. Like

  • @ghernandez096
    @ghernandez096 2 дня назад +6

    Una excelente explicación, sencilla, clara y concisa, gracia por el aporte.

  • @Sam-hu3xt
    @Sam-hu3xt 2 дня назад +3

    El vídeo es bastante didáctico.Yo os propongo como ejercicio, extender el ejemplo para conseguir que cada función tenga un único punto de entrada y uno de salida (solo un return por función). Y ya de paso, no dejar nunca un IF sin su ELSE. Aunque en el else no haya que hacer nada, se pone con un comentario para recordarlo... bienvenidos al desarrollo de software crítico.

  • @braiso_22
    @braiso_22 День назад +3

    Hola @ProductCrafter, muy buen video, siempre utilizo los early returns.
    Quería hacerte una recomendación para próximos videos: suelo verlos desde el móvil o en una segunda pantalla del PC, y noté que el código que mostraste se veía algo pequeño. Creo que sería ideal que le hicieras zoom para que sea más fácil de leer. ¡Gracias y sigue así!

    • @ProductCrafter
      @ProductCrafter  День назад

      Sin problema! La próxima vez que grabe le doy algo más de zoom (video para dentro de un par de semanas que ya tengo alguno grabado)

  • @AminPerez98
    @AminPerez98 2 дня назад +2

    descubrir las claúsulas de guarda me salvaron cuando estaba empezando jajaja gran vídeo

    • @ProductCrafter
      @ProductCrafter  2 дня назад +1

      Es un antes y un después en la claridad del código 😅

  • @luiggi0925
    @luiggi0925 День назад +1

    Mensaje sutil pero importante: antes de refactorizar una función, asegúrate de tener pruebas que verifiquen su funcionamiento con todos los cambios propuestos.
    Gracias por tanto.

    • @ProductCrafter
      @ProductCrafter  11 часов назад

      Tests siempre!! Gracias a ti por comentar!

  • @alejandrosanchez2410
    @alejandrosanchez2410 2 дня назад +2

    Muy buen video, la verdad es que eliminar los else cambia mucho la forma de ver el código, intentaré aplicarlo.
    Gracias

    • @ProductCrafter
      @ProductCrafter  2 дня назад

      Gracias a ti por comentar! Me alegra que te haya servido

  • @gantonal
    @gantonal День назад +1

    La explicación es buenísima, pero sí que he echado de menos comentar el antipatrón Martillo de Oro. Sobrerefactorizar también provoca flujos de código complicados de seguir y mantener. La virtud está en encontrar el equilibrio entre el uso de Early Return y el uso tradicional del else. En este ejemplo, podrías haber calculado el multiplicador base (usando 1 para el caso normal), añadir un parámetro a la función que calcula el precio final, y te ahorras crear una función con exactamente el mismo proceso que la inmediatamente anterior.

    • @ProductCrafter
      @ProductCrafter  11 часов назад +1

      Totalmente de acuerdo! No hay una forma única de hacer las cosas y saber aplicar cada idea en cada momento es lo que requiere habilidad. Gracias por comentar!

  • @Ezep02
    @Ezep02 14 часов назад +1

    Muy buen video bro!! Saludos

  • @alvaro5663
    @alvaro5663 День назад +1

    Muy buenos vídeos, sirven un montón, sobre todo a personas como yo que estamos empezando, sigue así tio!

    • @ProductCrafter
      @ProductCrafter  День назад +1

      Gracias!! Me alegro de que te haya servido, seguiré en esta linea!

  • @simonmosquera1698
    @simonmosquera1698 2 дня назад +1

    Hola bro, sigue asi con estos videos de refactorizacion de codigo, siento que he mejorado un poco mas porgramando

  • @deeplazydev
    @deeplazydev День назад +2

    Buen aporte. Igual, al que me dice que "los else están prohibidos" lo saco de mi equipo!

    • @ProductCrafter
      @ProductCrafter  День назад

      Yo nunca soy de extremos, nunca digas nunca a algo! Cada problema tiene su herramienta, solo hay que saber utilizarlas

    • @deeplazydev
      @deeplazydev День назад

      @@ProductCrafter No es ser extremo, es que el mismísimo assembler tiene ELSE. Es imposible que un programa funcione sin comparaciones, saltos (o no salto) y operaciones matemáticas... es todo la base de lo que una CPU hace.

  • @xurxoplc4727
    @xurxoplc4727 День назад +1

    Que increíble video y muy bien explicado

  • @emiliferrer4899
    @emiliferrer4899 23 часа назад

    Soy desarrollador de software desde hace 35 años. Estoy de acuerdo en que no hay que abusar de estructuras poco claras, pero también te digo que no me gustan los absolutismos. Es decir, según el contexto, un else, puede ser aceptable e incluso la forma más óptima. Además también el else es una forma de quitar computo al sistema, es decir, cada vez que haces un if, obligas al código a computar, y a veces hay que buscar el equilibro entre legibilidad y optimización. Saludos

  • @damar2916
    @damar2916 День назад +1

    Un curso de programación tuyo si valdría la pena, pagaría por el.

    • @ProductCrafter
      @ProductCrafter  День назад

      Me alaga!! Pero no tengo tiempo para hacer cursos 😂 Voy a tope jaja

  • @reinaldogil4617
    @reinaldogil4617 День назад +1

    Excelente vídeo

  • @davideliashernandezmorales4581

    Excelente video. Aún los métodos para calcular según es_holiday podrían simplificarse en uno solo, ya que se repite el código y sólo cambia la condicional cuando es holiday y cuando no

  • @jerlinsongonzalez206
    @jerlinsongonzalez206 2 дня назад +1

    Desde hoy no utilizaré más Elses! Gran explicación!

  • @0_josema_049
    @0_josema_049 День назад +1

    Qué útil!

  • @eidiazcas
    @eidiazcas 2 дня назад +2

    El problema aquí no son los elses, sino los ifs anidados. Creo que aquí no hay contriversia, es casi un consenso que los early returns son preferibles a los ifs anidados

  • @ProductCrafter
    @ProductCrafter  2 дня назад +12

    Y vosotros, ¿Os gustan los elses o los evitáis? 🤔

    • @Leodemonheart
      @Leodemonheart 2 дня назад +2

      Ahora que lo pienso desde que intento ser más redundante y directo en mi código no he usado else en muchooooo tiempo

    • @soymidasyt
      @soymidasyt 2 дня назад

      depende, porque hay veces que lo utilizas para que no corra todo el código después de que un if funcione

    • @GHOULRUL
      @GHOULRUL День назад

      Odio los ifs anidados

    • @josedavidgrilletperez5795
      @josedavidgrilletperez5795 День назад

      Los if anidados es para cuando c esta aprendiendo a usarlos, lo ideal es usar un equivalente a swich con diccionarios

  • @ajunquerah
    @ajunquerah 23 часа назад +1

    Qué tal calcular el factor y una única operación de cálculo?

    • @ProductCrafter
      @ProductCrafter  11 часов назад

      También se puede hacer sí! Con que quede claro para el siguiente desarrollador es lo importante

  • @mfourier
    @mfourier 13 часов назад

    A mi una vez me dijeron que es preferible un código más explícito que implícito aunque sea más largo el código, que opinas de eso respecto a tener en cada if un else(? Aunque lo de usar if not para retornar antes el error me pareció bastante ingenioso, lo mismo con crear un método, se redujo mucho las identaciones, gracias por los consejos!

  • @darkitxu84
    @darkitxu84 2 дня назад +1

    Creo que ambos metodos se pueden mergear a un solo calculate_price() y para manejar los holidays podias definir dos diccionarios, uno para holidays y otro para dias normales. Igualmente buen video!!!

    • @ProductCrafter
      @ProductCrafter  День назад

      Sisi, se puede hacer así, aunque yo muchas veces si veo un if el cuerpo me pide que sean dos métodos, pero como dices puede quedar una buena solución como comentas! Gracias por compartir tus ideas! 🙌

  • @RubenSanchez-yc9ow
    @RubenSanchez-yc9ow 2 дня назад +1

    Me encanta este contenido!

  • @josedavidgrilletperez5795
    @josedavidgrilletperez5795 День назад

    Se puede refactorizar mucho mas, usando un equivalente a Swich, para eliminar los if tambien, un detallito q vi x ahi en test, es q paso d 0.06 seg a 0.1 y luego otra vez bajo

  • @takemyhandarg.3023
    @takemyhandarg.3023 День назад +1

    El fácil invertir el codigo, solo usar if, luego volar los if de un escopetazo y usar operadores y piumba código refactorizado

  • @d4rkb0x
    @d4rkb0x 2 дня назад +1

    Tan finos los vídeos Bro

  • @teiman
    @teiman 8 часов назад

    Viva el codigo claro.

  •  2 дня назад +1

    No soy hater de los else's pero soy fan de las clausulas de guarda (o sea, de los early returns)

    • @ProductCrafter
      @ProductCrafter  2 дня назад

      Yo soy muy fan de lenguajes como Swift que directamente tienen un "guard" implemetando como una función más del lenguaje 🔝. Gracias por comentar!

  • @zzz.12M
    @zzz.12M День назад +1

    early return, yo hacia eso y le llamaba condicional inversa xdd, en lugar de confirmar si la condición es cierta, verifico si la condición es falsa y luego return

    • @ProductCrafter
      @ProductCrafter  11 часов назад

      Tiene muchos nombres jaja, también se le llama guard clause por si lo ves por ahí. Gracias por comentar!

  • @diegoaredes2721
    @diegoaredes2721 2 дня назад +1

    ¿Cual es el coste de memoria a largo plazo con este método? ¿cual es más eficiente algoritmicamente hablando? . Buen video🎉.

    • @ProductCrafter
      @ProductCrafter  2 дня назад +1

      Memoria y coste temporal es el mismo, haces el mismo número de operaciones y los condicionales almacenan la misma memoria que guardarlo previamente en una variable (un booleano). Solo tiene una asignación extra que no debería tener coste notable. Gracias por comentar!

    • @diegoaredes2721
      @diegoaredes2721 2 дня назад

      @ProductCrafter Gracias por responder

  • @tigrux
    @tigrux День назад

    En el video veo que usas Python 3.11, pero MacOS (tanto Sonoma como Sequoia) proveen Python 3.9.
    ¿Cuál método recomendarías para usar una versión más nueva de Python en MacOS?

    • @luiggi0925
      @luiggi0925 День назад +1

      Pyenv te permite instalar varias versiones de Python en tu ordenador. Además, en una carpeta (p.e. un nuevo proyecto) puedes definir la versión específica de Python a usar. Pyenv creará un archivo de configuración en esa carpeta y al ejecutar "python -V" desde el terminal en dicha carpeta tendrás la versión que indicaste.

  • @EstebanMansilla-v2u
    @EstebanMansilla-v2u 2 дня назад +3

    El mejor video de programación de todo el internet!

  • @alberto3028
    @alberto3028 2 дня назад +1

    Evitemos los else.

  • @yeysoncano2002
    @yeysoncano2002 2 дня назад +1

    Abajo los else xd