KBDoctor: Encontrando objetos candidatos para refactoring.
Desarrollé en el KBDoctor una opción para listar objetos candidatos a ser reprogramados o ajustados. Los criterios que por ahora estoy buscando son: * Objetos con nivel de anidación alto Listo cuando se tienen mas de x niveles de if/do/for anidados. * Objetos con complejidad ciclomática alta Calculo la complejidad ciclomatica simplificada del objeto y listo los que tengan una mayor a un rango dada. * Objetos con grandes bloques de código Apuntamos a no tener bloques de código de mas de 100 lineas de código. El bloque de código puede ser una subrutina, o bloques de IF/DO/FOR, etc. Lo que hago es una heurística, que puede tener algunos errores, pero sirve en muchos casos. El parseo de codigo GeneXus es tarea compleja, pues no tengo ni la gramatica completa y menos un BNF para procesarla. Estaria muy bueno que en proximas versiones del SDK de GeneXus se agregue algunos helpers para el manejo de codigo. Tal vez existan...