Entradas

Mostrando las entradas de 2021

Buenas prácticas al registrar logs en desarrollo de software

Imagen
La información que generamos de logs en nuestros sistemas es vital para encontrar donde se da un problema puntual. Con la gran cantidad de logs generados, que pueden ser hasta millones al día, el proceso de encontrar un dato específico se puede volver muy difícil y a veces podemos no encontrar lo que buscamos. Por eso, siempre digo que el análisis de logs es como "Encontrar una aguja en un pajar". En este documento les comentaré sobre las mejores prácticas basadas en investigación y experiencia para obtener los mejores resultados. Seguridad No por casualidad el punto seguridad está al principio. La seguridad de sistemas hoy en día es más relevante que nunca, ya que cada vez hay más ataques para obtener información y utilizarla para fines ilícitos. Si por ejemplo utilizamos archivos de texto plano o un software como Kibana-local -que por defecto no trae control de usuario y contraseña- tenemos nuestra información expuesta. Esto quiere decir que debemos tener "mucho"

¿Por qué debiéramos tener un proyecto que aporte a la sociedad?

Imagen
El 21 de octubre pasado, luego de la charla brindada por Javier Verdura de Tesla en el evento GeneXus Live 21 , vi muchos puntos en común con pensamientos y decisiones que he tomado los últimos tiempos. En parte de su charla, Javier comentaba que había trabajado varios años diseñando productos de consumo, lo cual de alguna forma no lo llenaba completamente. Sin embargo trabajando en Tesla se siente apasionado por su trabajo y sabe que está realizando diseños para mejorar la vida de las personas en el planeta. Parte de los proyectos que tienen en Tesla -aparte de autos eléctricos, baterías para hogar y otros para la disminución de CO2- están los proyectos para que sean atractivas las alternativas renovables y hacer que se vuelvan deseables. El proyecto que comentó en este punto es un techo americano que a la vez genera electricidad mediante la luz solar. Con su trabajo, está convencido que está ayudando a cambiar el mundo, ayudando a revertir el efecto invernadero. En mi caso, luego de

Como versionar nuestras aplicaciones y algunas ideas para automatizar

Imagen
Si será importante el versionado de nuestras aplicaciones que lo primero que preguntamos cuando nos reportan un problema es "¿Que versión tiene de la aplicación?". Nomenclatura Lo primero es definir la nomenclatura vamos a utilizar. La nomenclatura utilizada normalmente es: x.y.z x: Cambio mayor. Esto podría ser interpretado como un cambio importante en la aplicación. En un lenguaje como .Net podría representar el cambio de la versión del framework o Java de la máquina virtual. También, o más importante, una nueva versión de todo el sistema o un cambio significativo, por ejemplo, un nuevo frontend. y: Cambio menor. En este caso, generalmente se utiliza para al agregado de nuevas funcionalidades al cierre de un ciclo, por ejemplo, de un sprint. En mi caso, normalmente lo incremento en cada cambio de base de datos. De esta forma puedo saber cuáles versiones incluyen cambios de estructuras. z: Correcciones/patches Puede ser utilizado para hotfixes, funcionalidades y otros, de fo

Buenas prácticas al nombrar objetos en GeneXus

Imagen
El nombrar objetos de forma correcta y mediante una nomenclatura específica es muy importante ya que estandariza el nombre de los objetos en una KB. Esto es más importante aún cuando intervienen varios desarrolladores, ya que los objetos tendrán una misma nomenclatura y los desarrolladores sabrán como encontrar o crear rápidamente un objeto. Por ejemplo, si no tenemos una forma consistente de nombrar objetos, cada programador podría asignarle un nombre según su experiencia. Por ejemplo, para obtener el nombre de un cliente podríamos tener casos como estos: ObtenerNombreDeCliente NombreDeCliente TraerNombreCliente En base a lo anterior, y teniendo en cuenta que en una KB pueden trabajar varios programadores, se vuelve inmanejable encontrar un objeto puntual, lo que lleva a la duplicación de código. Esto nos hace perder productividad ya que tenemos más de un objeto haciendo lo mismo. A su vez genera un problema al momento de testear o realizar una corrección puesto que es difícil saber s