2011-01-22 16 views
8

Normalmente, cuando hago algún trabajo en un proyecto existente, simplemente sigo el estilo ya establecido en la base de código. Pero nuestro equipo tiene que mantener proyectos múltiples de tamaño pequeño a mediano que difieren levemente en el estilo de codificación. Sería más eficiente y menos confuso si pudiéramos limpiar estas diferencias.¿Existen herramientas para refactorizar el estilo de codificación de una base de código Java?

Así que estoy buscando una herramienta que me permita refactorizar el estilo existente. Muchas de las funciones ya están provistas por herramientas de formato de código estándar, como cambiar el estilo de sangría. Lo que me falta es una herramienta que me permite quitar los prefijos de los nombres de campos y parámetros. En algunos proyectos, todos los miembros tienen el prefijo "m", todos los parámetros tienen el prefijo "p" y los miembros estáticos tienen el prefijo "s".

La herramienta debe ser capaz de manejar casos como:

void setValue(String pValue) { 
    mValue = pValue; 
} 

que debe convertirse en:

void setValue(String value) { 
    this.value = value; 
} 

La herramienta debe generar una alerta en un caso como este:

void setValue(String pValue) { 
    int value = 42 
} 

Sé que cada IDE principal proporciona el refactorizador: la función de cambio de nombre. Lo que estoy buscando, sin embargo, es una herramienta que procesa toda una base de código sin necesidad de revisar cada parámetro/campo individualmente.

Editar

Muchas de las respuestas mencionan herramientas para volver a formatear el código fuente o comprobar la base de código en contra de un conjunto de reglas de estilo. Soy consciente de que esas herramientas existen. Lo que busco específicamente es una herramienta avanzada que me permita eliminar prefijos de nombre de variable específicos del alcance.

+0

no sé Refactor herramientas que pueden hacer eso, sin embargo, sé que [Checkstyle] (http://checkstyle.sourceforge.net/) puede detectar y advertir sobre notaciones húngaras. – BalusC

+0

¿Te gustaría mirar en [astyle] (http://astyle.sourceforge.net/)? – Uroc327

Respuesta

-2

FindBugs es una muy buena herramienta para el análisis estático de código. Realmente explora posibles errores y es fácil de integrar en IDE y herramientas de compilación.

+3

OP solicitaba específicamente una herramienta de refactorización. FindBugs (y CheckStyle) no lo es. – BalusC

+1

Estoy de acuerdo con BalusC – Krishna

0

No conozco un proyecto existente que pueda hacer esto por usted.

¿Has considerado escribir el tuyo? Por ejemplo, el marco Eclipse ofrece herramientas de formato de código sólido. ¿Has investigado la extensión de uno de ellos para hacer lo que sugieres? La detección de variables nombradas con el patrón que menciona debe ser bastante sencillo.

Me doy cuenta de que no es una solución ideal. PERO, si tiene una base de código lo suficientemente grande, puede ser más rentable que hacer todas las ediciones a mano.

0

Parece algo así como Jalopymight ayuda.

Jalopy le permite definir un estilo de formato de código, y luego puede leer un archivo, paquete o proyecto completo y reformatearlo. No recuerdo si puede hacer una refactorización más sofisticada, como cambiar el estilo de una variable local para no usar la notación húngara (la mierda de mVar), pero puede cambiar entre espaciado, horquillado, orden, etc., del formato que desee.

He utilizado Jalopy en el pasado y funcionó bien. Incluso lo he usado en equipos donde las personas tenían diferentes estilos de codificación personal y luego en el compromiso, todos acordamos en un formato determinado que fue manejado automáticamente por Jalopy.(Cuando lo revisa, lo formatea a su manera, cuando se revisa, se formatea el equipo acordado, etc.)

Un problema, parece que no se ha mantenido durante un año más o menos. Pero, hay un commercial version too que es mucho más reciente: parece que los esfuerzos fueron en esa dirección. Aún así, el lanzamiento anterior podría estar bien.

Y hay otras ofertas comerciales similares como Jindent.

+0

Parece que este proyecto tiene más aprobación de los pulgares. :) – limc

+0

En cuanto a la relación de aumento/disminución de los pulgares, lo tomaría con un grano de sal. La mayoría de las personas no parecen haberlo usado, o se están quejando de que no se integra con las versiones más nuevas, Netbeans. Se puede ejecutar de forma independiente, no tiene que estar integrado con un IDE (aunque es bueno tenerlo). No lo he usado en uno o dos años, pero solía ser bastante bueno. Además, existen las variantes comerciales si realmente las necesita (aunque no veo una versión de prueba en el sitio de Triemax, que parece estúpida, al menos debería ser capaz de probar las novedades y ver la diferencia). –

1

¿Has probado la herramienta Clean Up de Eclipse? Por supuesto, no va a manejar algunos de sus ejemplos que se muestran aquí, pero en mi opinión es un trabajo bastante decente.

+0

La herramienta de limpieza de eclipse no puede eliminar prefijos variables. Sé que esta herramienta es muy útil en muchos casos, pero no es compatible con el caso de uso que estaba solicitando específicamente. –

2

Estaba buscando una herramienta similar o incluso más avanzada. Estaba tratando de implementar métricas de diseño, que dependen mucho del contexto. Encontré algunas herramientas, que son comerciales y bastante caras, como Ndepend y reflectk. También encontré algunas herramientas de código abierto, que son stalle como Hammurapi. También hay herramientas como Checkstyle, Findbugs y PMD, que se pueden usar para casos de uso muy simples. La mejor herramienta que encontré fue MoDisco. Está basado en Eclipse EMF, permite generar el modelo de tu código y hacer algunas consultas o transformaciones (usando herramientas M2M). El único problema que tuve fue que es bastante lento para proyectos normales de ~ 20k LOC. Pruébalo, tal vez para tu caso de uso será suficiente.

0

Eclipse IDE es la mejor opción para su problema ..

Cuestiones relacionadas