una tomografia tiempo tenemos quimica que puede producen pasa nuestro miedo libera humano hormonas hormona hacer funciona cuerpo cuanto cuando como cerebro cada adrenalina php refactoring code-coverage legacy-code

tomografia - Detección de código muerto en PHP



que pasa en nuestro cuerpo cuando tenemos miedo (6)

Creo que alguien ha implementado un estilo de Structure101g que usa datos de xdebug: s101 detectará cualquier clúster no utilizado, es decir, archivos que se usan pero que están desconectados de la base de código principal.

Tengo un proyecto con código muy desordenado, mucha duplicación y código muerto aquí y allá.

Hace algún tiempo, las pruebas unitarias no cubrían el código, pero ahora intentamos escribir todo el código nuevo en TDD y reducir la deuda técnica al cubrir también el código "antiguo" mediante pruebas unitarias (técnica de última prueba).

La complejidad de la lógica de negocios es bastante alta y, a veces, nadie puede responder si se usan o no algunos métodos.

¿Cómo se pueden encontrar estos métodos de código muerto? Extenso registro? ¿Cobertura de prueba más alta? (No es muy fácil porque los clientes quieren que salgan nuevas características)


En cuanto a las herramientas de creación de perfiles, si decides ir por ese camino, puedes echar un vistazo a xhprof http://developers.facebook.com/xhprof/
Tiene un tamaño más pequeño de los archivos de salida y la interfaz web que puede incorporar a su aplicación para el seguimiento continuo. Es capaz de generar una representación visual del árbol de llamadas. Lo recomiendo sobre xdebug para ese propósito.


Es un poco tarde ahora, pero PHPDCD afirma hacer esto estáticamente, lo que debería darte un resultado mucho más informativo que tener que perfilar la ejecución del código real con xprof / xdebug.



Ver la herramienta de cobertura de prueba SD PHP . Usted ejercita su código de la forma que desee, incluso (o no) ejecutando suites de prueba de la forma que desee. Al final de la ejecución, puede ver una visualización de qué código se ejecutó (hay capturas de pantalla en el sitio web). Es posible que el código que no se ejecuta esté muerto y requiera un análisis más por su parte, pero si ejercita bien el sistema, el código no ejecutado es manejador de errores o material realmente muerto. La herramienta de Cobertura de Prueba PHP no requiere ningún cambio en su servidor PHP.

La herramienta SD CloneDR encuentra código duplicado en bases de código fuente muy grandes. Es sensible al lenguaje (que cubre C, C ++, Java, C #, Ada, Fortran, así como PHP4 y PHP5) por lo que no se deja engañar por los cambios en el formato, el espacio en blanco o la presencia o ausencia de comentarios. Detectará clones de copias exactas y clones casi fallidos. El sitio web muestra ejemplos de informes de clonación para varios idiomas.


xdebug herramientas de cobertura de código de xdebug le permiten probar qué líneas de código se están ejecutando realmente, sin necesidad de colocar declaraciones de seguimiento en todas las funciones / métodos.

Ejemplo:

<?php xdebug_start_code_coverage(); function a($a) { echo $a * 2.5; } function b($count) { for ($i = 0; $i < $count; $i++) { a($i + 0.17); } } b(6); b(10); var_dump(xdebug_get_code_coverage()); // array ''/path/file.php'' => array line_number => int 1 or 0. ?>