Bienvenidos a Lecciones Aprendidas, una serie en la que compartimos nuestros mayores errores para que no cometan los mismos hoy. Las lecciones de hoy provienen de mi transición de desarrollo de PC a desarrollo en el lado del servidor. Me pidieron solucionar un problema en el lado del servidor después de haber pasado muchos años haciendo desarrollo de PC. En el desarrollo de PC, cuando depuraba, normalmente me conectaba directamente al PC local y usaba un depurador de nivel fuente en un entorno de desarrollo integrado (IDE, por sus siglas en inglés). Cuando comencé a hacer programación en el lado del servidor, seguí ese mismo hábito, me conectaba a un servidor remoto con un depurador de nivel fuente e intentaba resolver un problema. Pero esto me causó muchos problemas, resultó ser muy ineficiente y, en última instancia, fue mi enfoque de depuración el que necesitaba cambiar.
Índice
La importancia del registro de eventos
Un desarrollador que llevaba años trabajando en el lado del servidor se acercó a mí y me dijo que mi enfoque simplemente no funcionaba, no era escalable y no era muy realista para un entorno de producción. En cambio, me dijo que debía usar el registro de eventos (logging). De hecho, argumentó que el registro de eventos es clave, es el rey. Siempre debes usarlo y ni siquiera perder tiempo con depuradores de nivel fuente.
Al principio, pensé que era ridículo. La idea de tener un IDE era agilizar el proceso, hacer cambios rápidos y ver los resultados, etc. Pero mi compañero argumentó que tener una forma de solucionar problemas de desarrollo y otra forma para producción no era muy eficiente. Debería utilizar las mismas habilidades y las mismas herramientas todo el tiempo. Y luego argumentó que para que el código sea depurabble, debe tener varias cosas. Por supuesto, como mencioné anteriormente, debe tener registros de alta calidad, no solo un mensaje de «ocurrió un error», sino que debe incluir todos los parámetros y estados necesarios para rastrear el problema. Especialmente para los códigos de excepción, se deben incluir no solo el error, sino también el estado de todos los parámetros asociados a él. También es importante tener declaraciones de aserciones (assert) al comienzo y al final del código, que verifiquen los estados y parámetros esperados. De esta manera, puedes depurar más rápidamente. Puedes examinar los registros y no perder tiempo alternando entre un IDE, el código y los registros.
Abandonar los depuradores de nivel fuente
Al principio, me tomó mucho tiempo convencerme de que esto era cierto. Pero con el tiempo, aprendí que tener registros de calidad y escribir código pensado para ser depurado es realmente la clave para ser un desarrollador que puede resolver problemas más rápidamente y que tiene habilidades que se aplican no sólo al desarrollo, sino también al diagnóstico de problemas en producción.
Resumen
Puntos clave |
---|
El registro de eventos es clave en el desarrollo en el lado del servidor. |
Los registros deben incluir todos los parámetros y estados necesarios para rastrear problemas. |
Se deben utilizar declaraciones de aserciones para verificar estados y parámetros. |
Abandonar los depuradores de nivel fuente y centrarse en los registros. |
Preguntas frecuentes
¿Por qué es importante usar registros de eventos?
Los registros de eventos son importantes porque proporcionan información detallada sobre lo que está sucediendo en el código. Estos registros facilitan la tarea de rastrear y solucionar problemas, ya que contienen datos relevantes como parámetros y estados.
¿Qué es una declaración de aserción?
Una declaración de aserción (assert) es una instrucción en el código que verifica si una determinada condición es verdadera. Se utilizan para comprobar si los estados y parámetros esperados se cumplen y facilitan la tarea de depuración.
¿Por qué debería abandonar los depuradores de nivel fuente?
Los depuradores de nivel fuente pueden ser útiles durante el desarrollo, pero no son eficientes en entornos de producción. Los registros de eventos ofrecen una forma más eficiente de rastrear y solucionar problemas, ya que permiten examinar los datos sin tener que cambiar constantemente entre el código y el IDE.
Espero que estas lecciones aprendidas te ayuden a evitar los mismos errores que cometí durante mi transición de desarrollo de PC a desarrollo en el lado del servidor. Recuerda siempre usar registros de eventos, utilizar declaraciones de aserciones y hacer un código pensado para ser depurado. ¡No dudes en consultar nuestros artículos relacionados para obtener más información sobre ciberseguridad y desarrollo!
¿Te ha resultado útil??
0 / 0
Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!