Forma más rápida de convertirse en un mejor desarrollador

Forma más rápida de convertirse en un mejor desarrollador

¿Qué pasa si te digo que dejar de usar la declaración else te hará un mejor desarrollador y aumentará la calidad de tu código?

Seamos honestos… a pesar de que siempre tratamos de seguir los estándares y las mejores prácticas , ¡solo somos humanos ( después de todo )!
Todos tenemos diferentes preferencias , antecedentes y experiencias que hacen que nuestro código se vea ligeramente diferente al de nuestros colegas, de alguna manera podemos decir que todos tenemos nuestro estilo de codificación.

La mayoría de las veces, este ” estilo ” consiste en pequeñas cosas, como usar un operador ternario en lugar de una declaración if para una verificación simple, o usar una declaración de función explícita en lugar de funciones de flecha ; Otras veces estas cosas están cerca de ser placeres culpables .

Como todo el mundo, también tengo algunas preferencias cuando codifico y, como puedes adivinar por el subtítulo de este artículo, hay una en particular de la que me gustaría hablar: ¡nunca uso la instrucción else!

❓ ¿Cuál es el problema con la sentencia else?

La respuesta es bastante simple: ¡escribo mejor código sin él!

Sé que no estoy solo en esta “ batalla ”, pero para aquellos que se preguntan por qué no estoy usando una pieza fundamental de cada lenguaje de programación, aquí hay una explicación:

Podemos detectar 3 olores de código que a menudo están relacionados con la declaración else :

https://javascript.plainenglish.io/media/3f10da5e95629081e2f3ff6aa6f2181f

El primer olor está relacionado con la condición en sí, de hecho, si la condición es complicada, el otro es el doble de complicado porque el lector tiene que invertir la condición:

https://javascript.plainenglish.io/media/93d0561bda14f6432339c8b6aafc3d99

El segundo olor, en cambio, está relacionado de alguna manera con la visibilidad de la condición en sí misma: si el “Entonces bloque” contiene más de una cantidad razonable de líneas, es fácil olvidar cuál era la condición .

Por último, pero no menos importante, el tercer olor es cuando hemos anidado bloques if-else porque fácilmente se vuelven realmente, realmente , difíciles de leer:

https://javascript.plainenglish.io/media/5c30b0081c61b6f7b264109cb8e3d73aLos bloques if-else anidados son difíciles de leer

En todos los ejemplos anteriores, la refactorización del código para evitar el uso de la rama else dará como resultado un código mejor y más legible. Esto me llevó a pensar: ¿y si nunca se inventara la rama else? ¿Sería un mundo mejor sin él?

❌ ¿Y si nunca se inventó la rama else?

¿Sería un mundo mejor sin la declaración else?

Respuesta corta:  .

Respuesta larga: ¡
El problema no es la afirmación else, el problema eres tú™ !

Si analizamos nuevamente esos 3 grandes “olores”, podemos ver que el problema real no es la declaración else , el problema real es todo el bloque if-else que, si se usa de manera incorrecta (también conocido como sobreuso) , puede convertirse rápidamente en un desastre.

Obligarte a ti mismonousar elmásdeclaración es sólo untruco fácilpara estructurar mejor su código porque está obligado a extraer ese fragmento de código en una función separada:lo cual siempre es una buena idea, ya sea que esté usando la rama else o no.

Entonces… ¿Y si no hubiera “más”?

Empecemos por un hecho: ¡ la sentencia else es innecesaria! ¡ Un mundo sin más es posible!

Aunque escribimos millones de condiciones en nuestro código, hay 2 escenarios posibles para una declaración if-else : cuando hay código después de la declaración if-else y cuando no lo hay:

1*7F6XMlYCtsX0pNC5zARppA

Primer escenario: no hay ningún código para ejecutar después de la condición:

https://javascript.plainenglish.io/media/e97d8464868fab5e7c7eb1f4cff188fbsimple bloque if-else

Y así es como podemos refactorizarlo: (ed: es un GIF animado)

Refactorizar con retorno anticipado

En este escenario, Return Early es la forma de proceder.

Segundo escenario: cuando algún código se ejecutará en cualquier caso, sin importar el resultado de la condición.

https://javascript.plainenglish.io/media/136a9d960bc87ad6b60079010459acdebloque if-else seguido de otro código

Y así es como se puede refactorizar: (ed: es un GIF animado)

1*a8t8 yJXqmfJlRp3JySc1w

En este escenario, extraer el bloque if-else en una función separada es el camino. También hay un nombre para este patrón: Método de extracción .

Siempre puede iterar el proceso para if-else anidado y aplicar el método Return early y Extract juntos: (ed: es un GIF animado)

1*Ha8VHLM0hQiReBKjTwdVtA
Refactorizar con método de extracción

Déjame también darte un ejemplo del mundo real, así todo será mucho más fácil de entender:

Primer escenario

https://javascript.plainenglish.io/media/4302070381a3f901655629b939b28e07ejemplo simple de un else inútil

¿Se necesita la rama else en este caso? ¡ Obviamente no!
Podemos regresar temprano y eliminar fácilmente la declaración else:

https://javascript.plainenglish.io/media/4205156b466f2be4c1aae5d7bf220af8BESO

Aquí ni siquiera necesitamos la declaración if en absoluto, porque devolver directamente ” number % 2 === 0” es suficiente, pero este no es el punto.

No necesitamos ninguna rama else explícita : si se ejecuta el código debajo de la instrucción if , significa que la condición es falsa .
¡Y así, el resto de la función es una rama else implícita ! El código resultante es más claro y más conciso.

Segundo escenario

https://javascript.plainenglish.io/media/b01aea6d2120b2026a24c79e912b9c85

Nuevamente, ¿se necesita la rama else ? ¡Por supuesto que no lo es!

https://javascript.plainenglish.io/media/13e02a7c1f189964a3993210f48fa011

Además, en este caso, no usar la rama else resultó en una mejora de la calidad del código, de hecho, la función anterior estaba haciendo 2 cosas:

– crear el contenido del mensaje;
– llamar a la API para enviar la notificación;

Ahora, en cambio, la creación del mensaje se delega a una función dedicada y el código resultante es más fácil de leer y está mejor estructurado.

👋 En conclusión

Gracias por leer el artículo, me gustaría saber su opinión al respecto, así que por favor, deje un comentario y hágamelo saber ❤️

Similar Posts

Deja un comentario

Tu dirección de correo electrónico no será publicada.