Llegamos a ustedes gracias a:



Reportajes y análisis

10 cosas que olvidó hacer con su código

[28/03/2020] Ha pasado el código por todas las pruebas y ha obtenido luz verde. La tubería de integración continua se ejecutó por completo. Todas las casillas de verificación en la lista de características están marcadas. Todas las notas autoadhesivas se han movido a la zona de "completadas.

Es tentador decir que ya está listo el código y salir de vacaciones. Usted se lo ha ganado. El equipo se lo ha ganado. Deje que el código haga lo suyo por un momento. ¿No es esa la razón por la que lo escribimos? ¿Para dejarlo libre y que haga lo suyo?

Por desgracia, los días de ser complaciente y quedarse quieto han terminado. En estos días nada se termina. El hecho de haber eliminado los errores y entregado un programa que funciona no significa que deba relajarse. Hay docenas de cosas que aún puede hacer para mejorar su código. Algunas las haría un buen ciudadano que ordena las cosas para el próximo equipo. Algunas son oportunidades para crecer y capturar nuevos mercados. Algunas son el comienzo de un nuevo viaje.

Aquí hay 16 cosas para hacer al regresar luego de un poco de relajación y recuperación.

Lint: La herramienta llamada lint o linter es como un robot de revisión de código que aplica cientos de reglas semánticas. Quizás miles. Algunos fueron escritos por obsesivos de la secta de programación que cuentan caracteres en blanco, y regañan a aquellos que usan demasiados o muy pocos. Algunos fueron escritos por personas serias que han señalado patrones semánticos sutiles que pueden conducir a fallas de seguridad más adelante. Su equipo de programación probablemente ha elegido una colección de linters y ahora es el momento de ejecutarlas.

Perfil: Don Knuth dijo una vez: "La optimización prematura es la raíz de todo mal, porque es una tontería perder tiempo mejorando las partes del código que solo se ejecutan ocasionalmente. Ahora que ha terminado de codificar, es hora de activar un generador de perfiles y buscar esos puntos calientes. A menudo, el 10% del código se ejecuta el 90% del tiempo. A veces hay bucles internos que absorben el 99% de los ciclos. Si puede identificarlos ahora, algunos ajustes realmente pueden valer la pena.

Eliminar herramientas de depuración: Es tentador dejar las opciones detalladas de registro incrustadas en el código de producción por si acaso, pero una vez que el código se está ejecutando, es un buen momento para remover esas herramientas y desactivar las opciones de depuración. Los datos adicionales desordenan la computadora e incluso pueden llegar a amenazar el rendimiento al llenar alguna unidad de disco. Deje la depuración fuera de los servidores de producción.

Analizar con IA: Los programadores antiguos usaban expresiones y declaraciones regulares básicas para buscar problemas; los programadores modernos también tienen herramientas de inteligencia artificial. Por ejemplo, se dice que CodeGuru de Amazon "aprovecha los modelos de aprendizaje automático para buscar códigos incorrectos. Es un proceso totalmente automatizado basado en la elaboración de perfiles y análisis estrictos.

Curar datos: Cuando crea una aplicación, es fácil dar por sentado las bases de datos y los archivos de registro. Ahora que ha terminado con la aplicación, es momento de comenzar a optimizar la base de datos para mayor velocidad y estabilidad. Agregue índices a las columnas correctas para acelerar la búsqueda. Agregue duplicación y respaldo oportuno para mejorar la estabilidad después de pérdidas de energía o un bloqueo del disco.

Este es el momento de comenzar a sopesar los costos de almacenamiento frente a los costos de una pérdida de datos. ¿Qué tan valiosos son los archivos de registro? ¿Cuánto cuesta mantenerlos? ¿Cuánto cuesta un plan de respaldo geográficamente diverso frente a la probabilidad de una falla catastrófica de un centro de datos? Estas no son preguntas fáciles de responder, pero una vez que comprende el costo de las copias de seguridad, puede decidir cuánto quiere apostar. Es como un viaje pagado a Las Vegas, solo que usted está tirando los dados por su carrera y los trabajos de todos los que lo rodean.

Optimizar el flujo de datos: Muchas aplicaciones pueden beneficiarse de los cachés rápidos, ya sea en el servidor o distribuidos por Internet con una red de distribución de contenidos. Agregar una memoria caché distribuida o integrar un CDN es una de las formas más simples de potenciar el rendimiento experimentado por los usuarios.

Optimizar datos: No todos los datos deben ser tan grandes como son. Las imágenes son uno de los lugares más simples para reducir tamaño sin perder demasiado. Los detalles estilísticos como los fondos elaborados pueden reemplazarse por instrucciones CSS para rellenos de degradado que ocupan una pequeña fracción del espacio en el disco y el ancho de banda. Por lo general, a los fotógrafos y artistas les encanta conservar la mayor cantidad de información y detalles en caso de que lo necesiten, lo que los lleva a almacenar imágenes en formato RAW. Herramientas como ImageOptim eliminarán gran parte de los detalles innecesarios por debajo del umbral perceptual del usuario, y al mismo tiempo eliminarán los valores EXIF adicionales que rastrean información extraña como la lente de la cámara. Esto resulta en descargas más rápidas y facturas de ancho de banda más bajas.

Agregar una API: Muchos arquitectos comienzan con una API bien estructurada para separar el código de visualización front-end de la lógica de negocios subyacente, pero a veces se da una buena oportunidad para ampliar el uso de la base de código agregando otra puerta o ventana. Los kits de herramientas API como Swagger lo hacen relativamente fácil ya que entregan el análisis, el enrutamiento e incluso la documentación. Si tiene algunas funciones buenas, limpie los puntos de entrada a su bloque de código actual; pegarlos a una nueva API puede habilitar nuevas opciones de automatización e integración.

Documente: Hoy en día la documentación es menos importante de lo que solía ser, pero sigue siendo útil en las dosis correctas. Si está escribiendo código bien estructurado con nombres de variables llenas de pistas y una estructura simple, el código no necesitará muchos comentarios locales. Pero sigue siendo útil esbozar el rol básico de cada sección, y tal vez indicar cómo fluyen los datos a través del código. También es útil señalar algunos de los posibles problemas con el código, e ilustrar cómo se recupera el código de las excepciones -si es que se recupera.

Seguir adelante: Algún programador inteligente cambió la imagen de la idea de reescribir nuestro código porque, bueno, la palabra "reescribir hace que parezca que se cometió un error la primera vez. "Refactorización suena mejor. Refactorizar no admite errores anteriores y así el ego sufre menos. El proceso de mejorar el código, a menudo en pequeños saltos, es una buena idea para comenzar justo después de "terminar. Pequeñas mejoras y correcciones pueden ser incluidas en el código de manera inmediata.

Muchos equipos constantemente refactorizan, envían o implementan nuevas versiones a diario o incluso cada hora. Por sí solos, estos pequeños cambios parecen irrelevantes, pero a lo largo de las semanas y los meses se suman y representan mejoras significativas. Las iteraciones ocurren con tanta frecuencia que comienzan a difuminar la línea entre terminar el código y volver a comenzar. Se trata de un solo ciclo continuo de mejora e implementación.