Charla sobre codigo y objetos simples en el #GX26
A los que les interese la charla sobre Deuda Técnica y Código simple se puede ver aqui
El objetivo de la charla era plantear el tema de la forma mas fácil y menos técnica posible, para mostrar porque hay que prestar atencion a pequeños detalles que hacen a nuestro código menos claro y mas complicado de entender.
El concepto de deuda técnica, es sencillo: Cada vez que hago un arreglo y el mismo no lo realizo lo mejor que puedo, para salir del paso rápidamente, estoy incurriendo en una deuda, que tarde o temprano voy a tener que pagar.
El concepto de código entendible, es algo mas subjetivo y difícil de definir, pero se pueden identificar algunas características que el código simple o entendible tiene y a tratar que nuestro código cumpla con dichas características.
Hay mucho trabajo aun por realizar, pero creo que es bueno trabajar en el tema, si pretendemos que nuestra KB dure muchos años en el mercado.
Para facilitar la tarea que otras personas verifiquen nuestro codigo, estamos trabajando en el GUG (Grupo de Usuarios GeneXus) en armar una herramienta que me permita elegir los objetos cambiados por mi y enviarselos a un compañero para que los revise. Si todo esta bien, puedo pasar el cambio a produccion. Si me hace alguna recomendacion, debo hacer el cambio y volver a pedir la revision.
Aun esta en pre-beta y el nombre por ahora es GXCodeReview. Los fuentes se pueden encontrar en
http://svn2.assembla.com/svn/gxextensions/trunk/KBCodeReviewer/, aunque probablemente los mudemos a otro repositorio en un futuro cercano.
A quienes quieran participar el el desarrollo o en la prueba del esta extension, estan invitados, alcanza con hablar con Laura Aguiar o conmigo y los integramos al grupo de trabajo.
El objetivo de la charla era plantear el tema de la forma mas fácil y menos técnica posible, para mostrar porque hay que prestar atencion a pequeños detalles que hacen a nuestro código menos claro y mas complicado de entender.
El concepto de deuda técnica, es sencillo: Cada vez que hago un arreglo y el mismo no lo realizo lo mejor que puedo, para salir del paso rápidamente, estoy incurriendo en una deuda, que tarde o temprano voy a tener que pagar.
El concepto de código entendible, es algo mas subjetivo y difícil de definir, pero se pueden identificar algunas características que el código simple o entendible tiene y a tratar que nuestro código cumpla con dichas características.
Hay mucho trabajo aun por realizar, pero creo que es bueno trabajar en el tema, si pretendemos que nuestra KB dure muchos años en el mercado.
Para facilitar la tarea que otras personas verifiquen nuestro codigo, estamos trabajando en el GUG (Grupo de Usuarios GeneXus) en armar una herramienta que me permita elegir los objetos cambiados por mi y enviarselos a un compañero para que los revise. Si todo esta bien, puedo pasar el cambio a produccion. Si me hace alguna recomendacion, debo hacer el cambio y volver a pedir la revision.
Aun esta en pre-beta y el nombre por ahora es GXCodeReview. Los fuentes se pueden encontrar en
http://svn2.assembla.com/svn/gxextensions/trunk/KBCodeReviewer/, aunque probablemente los mudemos a otro repositorio en un futuro cercano.
A quienes quieran participar el el desarrollo o en la prueba del esta extension, estan invitados, alcanza con hablar con Laura Aguiar o conmigo y los integramos al grupo de trabajo.
Muy buena la iniciativa Enrique! En otros proyectos (no GX) utilizamos mucho sonarqube y jenkins para instrumentar este tipo de cosas y dan un valor importante a la larga.
ResponderBorrarEstoy a la búsqueda de poder definir una gramatica para GX (en realidad, poder encontrar la definicion) y poder pasarsela a SonarQube para buscar código repetido, que es una de las cosas mas difíciles.
ResponderBorrarHola Enrique, muy bueno el post. Consulta, llegaste a buen puerto con sonarqube con la sintaxis genexus? Saludos
ResponderBorrarGuilleG:
BorrarTe cuento mi experiencia. Lo que hicimos fue instalar el SonarQube y ejecutarlo contra el codigo C# generado por GeneXus.
Para esto, generamos un proyecto .csproj con todos los fuentes generados. Borramos algunos fuentes (bld*.cs, *.xml, *.rsp, etc) y luego hicimos un build y un analisis.
Encontro algunos casos interesantes y muchisimo codigo repetido. Como es codigo generado, no servia de mucho estos reportes pues habia muchisimo codigo repetido que tiene su motivo por ser codigo generado.
En definitiva, no sirvio de mucho. Para poder usar el sonarqube directamente con los fuentes GeneXus, deberiamos escribir un pluggin para lo que precisamos la sintaxis de genexus y demas, cosa que no conozco.