viernes, 12 de enero de 2018

¿Qué tan inteligente es mi programa (C)?

dato curioso:

¿Qué tan inteligente es mi programa (C)?

 

No evaluémos el algoritmo de conversión de grados en sí, sino tu manejo del código y veo muchos detalles en los que podrías trabajar:
  • Trata de evitar el uso de “system”. “system” es una función que hace llamada a comandos del sistema operativo en el que corre tu programa; lo malo de esto es que si digamos, llevas este tu programa de Windows a Linux, “cls” o “pause” pueden no interpretarse correctamente y no se comportarán de la manera que tú esperas.
  • Todo tu sistema de menúes hace de tu programa bastante fácil de usar, pero es caótico ver código algorítmico mezclado con código de interfaz de usuario; así que te sugeriría que separes ambas cosas. Por ejemplo, podrías hacerte una función “int mostrar_menu()”, que te mostraría el menú y te devolvería la opción que el usuario seleccionó; otra función “double calcular_celsius(double f)” para hacer una conversión y otra función para la otra conversión. De esta manera: Tu código es más fácil de leer, es mucho más mantenible y es incluso muy fácil de refactorar y mover a otras librerías.
  •  
  • Trata de no usar “float” y usar sólo “double”. En estos tiempos en los que hasta los celulares tienen procesadores de 64-bits, no tiene mucho sentido el hacer cálculos con coma flotante en variables de 32-bits.
  • Es buena idea tener constantes globales, pero es muy mala idea tener variables globales. Hacen difícil portar un programa o mover el código a otros lados y estar seguros de que funciona bien, es muy probable que te confundas de nombre de variables y tengas choques de nombres y lo más complicado, en entornos multiusuario/multitarea, las variables globales serán un dolor de cabeza.
  • Realizas 6 cálculos SIEMPRE por más de que el sistema sólo provee una conversión a la vez. No tiene sentido. Si bien tu sistema produce un costo negligible en tiempo de ejecución, no tienes por qué consumir más recursos de procesador si es que no lo necesitas.
  • El significado y contenido de tu array valMaxMin no es evidente para el que lee tu código.
  • “999” es un valor arbitrario que decidiste que produzca un efecto especial, ¿verdad? Intenta solucionar eso de otra manera; no es buena idea (ni nada legible ni mantenible), tener “magic numbers” por ahí.

 

No hay comentarios:

Publicar un comentario

 
biz.