Uno de los problemas extraños que he encontrado con el analizador de código, es que algunos proyectos populares, como wordpress, tienen código que no sigue ciertas normas. También he visto que drupal, por ejemplo, permite que archivos de su build no lleven cierre de tags php (ejemplo, install.php )

El problema es de enfoque. A pesar que Joomla es uno de los peores códigos que he visto, y tiene mas hoyos de seguridad que un queso, las personas los seleccionan por lo que son capaces de hacer, no por la calidad del código.

El analizador de código no tiene nada que ver con lo que el programa trata de hacer o hace, solamente busca calidad del código.

Las pruebas de hoy dan resultados positivos. Sin embargo, el problema básico sigue siendo el mismo. En el trabajo necesitamos una jerarquía de que llama a qué, de donde, y no solo los problemas individuales del archivo. Parece que la solución será crear un html en el estilo hypertexto del antiguo Norton Guides.

Algunas métricas que ya tiene:
1 ) Espacios vacíos
2 ) SLOC
3 ) Funciones
4 ) Count de requires

Por implementar:
1 ) Avisos de shorttags.

Uno de los problemas actuales del área de desarrollo de la empresa en que estoy por nómina, es el que los dos programadores jovenes no tienen idea de como usar una librería, ni de sus ventajas. Desde los ajustes de noviembre, uno de ellos se ha dedicado a la implementación y el otro a los formatos PDF, pero falta verificar las desviaciones al estándar.

La mayoría de los documentadores GPL y no GPL que he visto tienen el problema de ser “verbose”, es decir, dan información inútil. Una vez en el año 2000, recuerdo que me quisieron dar en un lugar un archivo de 600 páginas generado con Data Architect de Sybase, y yo me NEGUE a recibirlo. Mi argumento fue simple: Generaste esa documentación con Data Architect, así que si me das la impresión del esquema entidad relación, Se entiende mucho mas rápido. El archivo que me das en este momento es inútil.

Mas adelante En otra empresa una persona que no era técnica (teóricamente si pero en realidad hacía powerpoints) me dio tres esquemas de datos para integrarlo a mi reporteador al mismo tiempo. Uno era powerpoint, otro excel y un tercero word… con estructura de campos diferentes.

En esa ocasión ya había avisado a mi superior inmediato, que si manejaba esquemas identidad relación. El asunto estuvo bastante ridículo, porque todo el mundo menos la powerpointera estuvo de acuerdo que debía ella darme un solo esquema, y preferentemente en un sistema entidad relación. Como dato al margem se acabó ignorando completamente su trabajo e hice un reporteador autoconfigurable.

La premisa básica de la documentación es:

La documentación se debe enfocar a quien va dirigida.

Necesitamos un reporte simple de dependencias, duplicados, contenido, porcentaje de documentación, duplicados e información relevante sobre código fuente para uso de los programadores y líderes de proyecto.

¿Cual es el problema en este momento?

Hay código que no sabemos de que depende, ni a que llama. Ya Tenemos especificaciones funcionales que hice yo, que documentan los límites, pero lo que necesitamos en este momento es un analizador de código que verifique por requires e includes que llama a qué , así como si hay funciones repetidas, etc.

¿De donde sale y Cual es la idea general?

En el año 95 hice un sistema de código Turbo Pascal que revisaba archivos *.pas y reemplazaba llamadas de Tp3 a Tp4, además de varias correcciones y quitar espacios sobrantes. Lo que busco es hacer algo similar, además de dar un reporte simple que me indique funciones documentadas, jerarquía de archivos, relevancia y analizador de archivos sobrantes.

¿Bajo que licencia?

GPL 2.0. Básicamente por que la versión GPL3 sigue en borrador y la gpl3 identifica de manera clara “Unless specifically stated, the Program has not been tested for use in safety critical systems.”, lo cual causa bastantes quebradores de cabeza adicionales y subidas en fianzas para sistemas que deben cumplir con HIPAA, http://en.wikipedia.org/wiki/Health_Insurance_Portability_and_Accountability_Act