Refactorización de If Else en JavaScript

Refactorización de If Else en JavaScript PORTADA

If y else es algo indispensable para crear condicionales en JavaScript y, por ende, como principio básico de la inteligencia artificial muy en voga en los últimos tiempos. La mayoría de las veces, la primera solución que aparece en nuestra mente no es la mejor. Sólo a través de la experiencia y de la mejora del pensamiento lógico y de las habilidades de resolución de problemas se puede llegar a un enfoque optimizado para un problema determinado. Es una observación común que la mayor parte del código en JavaScript se anida debido a las diversas condiciones que hay que manejar para la solución.

Esperemos que hoy aprendas algo nuevo y te conviertas en un mejor desarrollador escribiendo un código limpio, legible y optimizado.

  1. Operador ternario
  2. Caso de conmutación
  3. Short-Circuiting (usando operadores lógicos)
  4. Cláusulas Guard
  5. Delegación de funciones

Veamos ahora cada uno de estos métodos en detalle.

Operador Ternario

Esta es la mejor forma, y la más común, de sustituir tus declaraciones «if…else». En el campo de la IA conversacional, uno se encontrará con una situación en la que tendrá que comprobar la plataforma desde la que se activa el bot y dar una respuesta en consecuencia. Este es el mejor ejemplo para utilizar un operador ternario en lugar de utilizar una sentencia if para comprobar la condición.

Refactorización de la sentencia If..Else en JavaScript

Switch Case

La sentencia «switch case» no es la mejor forma posible de sustituir las sentencias «if-else» anidadas, pero pueden utilizarse para reducir la duplicación de código, que es otro error común que ignoran los desarrolladores en el campo de la IA conversacional.

Muchas veces esperamos que el agente virtual dé una respuesta estática o simple para diferentes Intenciones de Usuario. Cuando implementamos la lógica de cumplimiento para esto, tendemos a producir, sin saberlo, código duplicado.

Estas situaciones pueden eliminarse utilizando sentencias switch case, ya que se puede ejecutar una lógica común para varios casos y otras respuestas sencillas pueden cubrirse en casos separados.

Refactorización de la sentencia If..Else en JavaScript

Short-Circuiting

En este enfoque, utilizaremos operadores lógicos como » && » (AND) y «||» (OR). El funcionamiento de estos operadores es complementario entre sí.
Por ejemplo, el lado derecho del operador «AND» se ejecuta sólo si el lado izquierdo es verdadero, mientras que el lado derecho del operador «OR» se ejecuta sólo si el lado izquierdo es falso. Podemos utilizar esta lógica para eliminar fácilmente el anidamiento en nuestro código.
Esto puede ser útil para establecer un mensaje de salida personalizado al final de una conversación.
Además, recuerda que hay algunas expresiones que siempre son falsas (se convierten en falsas)
por ejemplo: null, undefined, NaN, una cadena vacía(«»)

Refactorización de la sentencia If..Else en JavaScript

Cláusulas Guard

Se utilizan como estrategia de salida anticipada. Definimos nuestras condiciones de tal manera que el bucle salga por cada comprobación. Esta estrategia hace que el código sea más legible y optimizado.
Se puede utilizar en situaciones en las que comprobamos si el usuario está autentificado y realizamos algunas acciones en consecuencia (p. ej., desencadenar un evento para la intención del usuario)

Refactorización de la sentencia If Else en JavaScript

Delegación de funciones

Esta estrategia es muy útil para entender el concepto de cierres en JavaScript. Dividir el caso de uso en subcasos y crear una función para cada uno ayudará a eliminar los niveles de anidación. Podemos combinar todas las estrategias anteriormente expuestas y combinarlas para conseguir el mejor código posible.

Refactorización de la sentencia If..Else en JavaScript
Refactorización de la sentencia If..Else en JavaScript

Puedes ver claramente el concepto de cierres implementado, ya que los parámetros de la función externa son accesibles para las funciones internas.

Espero que esto haya sido útil para todos y especialmente para la gente del ámbito de la IA conversacional.

A las personas que no tienen formación en IA conversacional, les recomiendo que repasen los textos con hipervínculos de cada uno de los enfoques anteriores, ya que les ayudarán a comprender mejor los conceptos.