Me quedaron un par de temas pendientes a tratar (si bien los mencioné en la sección de recursos):
- Programming style (Estilo de programación o codificación) http://en.wikipedia.org/wiki/Programming_style
- Code refactoring (Refactorización de código) http://en.wikipedia.org/wiki/Code_refactoring
Las "guías o reglas de estilo" ayudan a detectar cuales son las infracciones (desviaciones a los estándares definidos).
Y la refactorización del código, permite la corrección automática de esas infracciones.
De esta forma sería posible que una herramienta corrija código aplicando los patrones de estilos, buscando además patrones de código con "malas prácticas" y transformando los mismos en una codificación válida y unificada.
Para que realmente exista utilidad, debería de permitir aplicar diferentes estándares (propios o usar de terceros) y permitir incorporar conocimiento sobre los patrones a identificar (malas prácticas). Todo el proceso de corrección debería de ser efectuado de forma automática o asistida.
Ejemplos prácticos en GeneXus
Marcos Crispino nos comentó (en enero) sobre temas relacionados a Refactoring http://blog.marcoscrispino.com/2009/01/refactoring-de-cdigo-genexus.html
Algo que menciona Marcos, es referente al trabajo realizado por Matias Barrios, sobre el proyecto GxVisualindent (http://www.gxopen.com/gxopen/servlet/projectinformation?755), el cual se encarga de la indentación de código fuente en GeneXus 9.
Luego Matías basándose seguramente en las ideas de Marcos instauró el proyecto RefactorinGX (http://www.gxopen.com/gxopen/servlet/projectinformation?757), el cual implementa métodos que permiten identificar algunos casos, aplicando correcciones o informándolas.
Sin embargo no encontré en la comunidad ejemplos que mezclen los conceptos de "declaración o definición de estilo de codificación" y detección de patrones (que se encuentren declarados) para luego ser detectados y refactorizados.
Espero que a futuro aparezcan herramientas que permitan implementar análisis estático de código y refactorización de programas GeneXus.
Por el momento, solamente puedo adelantarles que estoy trabajando en un proyecto relacionado a estos temas (Pero que no necesariamente se atacarán estos temas a corto plazo).
Seguramente pronto tendrán novedades sobre el mismo en éste mismo medio.
Recursos
Para el caso de "Las guías o estándares", no conozco mucho que se encuentre de acceso público en internet.
Los que pude localizar son los mencionadas a continuación (si conocen alguna más, se agradece el aporte para irlo incorporando al listado)
Nomenclatura GIK : http://wiki.gxtechnical.com/commwiki/servlet/hwiki?GIK,
GIK & GxSoft Nomenclaturas :
http://gxsoft.googlepages.com/gik%26gxsoftnomenclaturas
http://www.scribd.com/doc/289187/Nomenclatura-GxSoft-vs-GIK
Ejemplo usado en el proyecto ModsGX (Facultad de Ingeniería)http://www.fing.edu.uy/inco/cursos/ingsoft/pis/memoria/experiencia2002/ModsGX/modelo/introduc/metgen.htm#_Toc16527191
Seguramente en las empresas existen documentos del tipo "manual de nomenclaturas" o "manual de estándares de programación" o algún documento del tipo "buenas prácticas de programación", en donde traten los temas relacionados a estándares de codificación.
Principalmente lo que busca cada uno de estos estándares es unificar, permitiendo que cualquier programador que conozca el estándar, pueda leer y entender los programas sin mayores problemas (mejor comprensión para revisión y mantenimiento).
Para finalizar les dejo algunos ejemplos aplicados para otros lenguajes de programación:
http://en.wikipedia.org/wiki/Programming_style#Coding_conventions_for_languages
Para refactorización tienen la sección de "Automated code refactoring" mencionado en la Wikipedia
http://en.wikipedia.org/wiki/Code_refactoring#Automated_code_refactoring
No hay comentarios:
Publicar un comentario