Saltar al contenido


Hace unos días asistimos a la charla que ofreció Denis Radin, ingeniero de la NASA, en el JSDayEs 2017: “Aplicación de los estándares de codificación de la NASA en JavaScript”.

La motivación de la charla es que dichas reglas fueron diseñadas por el equipo científico Jet Propulsion Laboratory (JPL), responsable de misiones tan famosas como el Curiosity (con el famoso vehículo rover) o la Voyager que aun provee información tras 25 años de funcionamiento. Debido a una alta demanda de automatización y una larga duración de las misiones, el equipo JPL requirió desarrollar un código de una calidad superior para poder superar los retos del espacio. Como resultado, el JPL ha publicado recientemente una serie de reglas generales aplicadas para la mejora del desarrollo de software.

Ya que en estos últimos años vemos un aumento de tareas críticas en JavaScript vamos a comentar los puntos que podrían llevar a este lenguaje algún día al espacio.
 
Reglas:
  • Funciones cortas: Con un tamaño de impresión de una hoja. Con una aproximación de 60 líneas de código por función.
  • Código sencillo y con simples controles: Huyendo de saltos de código que rompan el orden de ejecución estilo: Go to statements. Además tratar de aplicar estándares de codificación que permitan mejorar la claridad y herencia del código. Apoyarse en analizadores de calidad de código como: JSHint/JSLint/Google Closure Tools.
  • Evitar uso de memoria dinámica después de la inicialización: JavaScript gestiona la memoria y el Garbage realiza la limpieza de memoria, esto no impide que tengamos problemas de memoria en JavaScript. Por ello podemos seguir tres reglas recomendadas:
    • Regularizar las variables poniéndolas en el Top of scope para aumentar su visibilidad.
    • Limpiar listeners y variables que no se estén usando para mejorar el perfomance.
    • Ten un comportamiento previsible para el garbage collection mediante el uso de objects pool
  • ​Todos los bucles deben tener un límite superior para evitar posibles errores en el sistema.
  • Uso de aserciones que permitan un control de posibles excepciones. Lo normal sería un mínimo de dos aserciones por función.
  • Los objetos serán declarados en el nivel más bajo, para mantener los datos privados y evitar accesos no autorizados.
  • Inputs y outputs validados: Tanto los inputs como outputs deben ser chequeados dentro de cada función para fortalecer las funciones.
  • Limitar el uso de preprocesadores de JavaScript como CoffeScript o LiveScript que huyen de la estandarización y evolución que ofrece JavaScript
Y, sobre todo, compilar el código desde el primer día, evitar realizarlo el último de entrega. No despreocuparse de los Warning que aparecen y sobre todo tratar de ser limpio y perfeccionista con tu código.
Usama  Alanbari
Usama Alanbari

Desarrollador Sénior y Scrum Master en BABEL.

logo linkedin compartir en Linkedin Contacto

Otros artículos destacados