La Importancia de Tipos en la Reducción de Errores

En el desarrollo de software, la verdadera meta es la reducción de errores en tiempo de ejecución. El uso de lenguajes fuertemente tipados ha sido promovido como una práctica esencial. Sin embargo, es crucial entender que la seguridad de tipos, por sí sola, no es el objetivo final.

La Seguridad de Tipos y Su Propósito

La seguridad de tipos es valiosa porque permite trasladar errores del tiempo de ejecución al tiempo de compilación. Esto es beneficioso ya que reduce la probabilidad de fallos durante la ejecución del programa. No obstante, agregar complejidad a la tipificación solo está justificado si realmente contribuye a disminuir los errores en el tiempo de ejecución.

Evaluación de Cambios en la Arquitectura de Código

Cuando se consideran cambios en la arquitectura del código o se revisan solicitudes de extracción, es fundamental evaluar si la complejidad adicional en la tipificación es realmente necesaria. La pregunta clave es: ¿este cambio reducirá significativamente la cantidad de errores a largo plazo? Este enfoque se basa en la evaluación del riesgo y la oportunidad, similar a los principios actuariales.

Beneficios Adicionales de la Seguridad de Tipos

Además de la reducción de errores, la seguridad de tipos ofrece otros beneficios, como la mantenibilidad del código, la facilidad de refactorización, la incorporación de nuevos ingenieros y posibles mejoras en el rendimiento. Sin embargo, la reducción de errores sigue siendo el principal beneficio.

Alternativas para Reducir Errores

La seguridad de tipos no es la única técnica para reducir errores. Herramientas de análisis estático de código, como los linters, también son efectivas. Por ejemplo, en aplicaciones React escritas en JavaScript, los linters pueden identificar dependencias faltantes en listas de efectos, moviendo errores potenciales del tiempo de ejecución al tiempo de desarrollo.

Ejemplo Concreto

Considere el siguiente código en una aplicación React:

 

 

Aquí, la lista de dependencias de useEffect no incluye gameLevel, lo que podría causar errores en tiempo de ejecución. Un linter puede detectar esto y alertar al desarrollador, ayudando a prevenir errores sin necesidad de seguridad de tipos.

Conclusión

La seguridad de tipos es una herramienta poderosa, pero no es un fin en sí misma. Su verdadero valor radica en su capacidad para reducir errores en tiempo de ejecución. Al evaluar cambios en el código, es crucial considerar si la complejidad adicional realmente contribuirá a este objetivo. Además, otras técnicas como el análisis estático de código también juegan un papel importante en la reducción de errores.

 

Recuerda que estaremos publicando constantemente en nuestro blog más contenido sobre tecnología.

 

Puedes encontrarnos en Facebook y Linkedln para más contenido relacionado con seguridad en internet y muchos temas más.