La reflexión de Java proporciona un mecanismo para introspectar un objeto en tiempo de ejecución. Sin dudas, esta es una gran característica, ¡pero rompe todas las convenciones de refactorización!Reflexión de Java y el dolor en la refactorización
No hay una manera fácil (que no sea File Search
) incluso en los IDE modernos de saber a qué atributo se hace referencia y dónde. Esto hace que las Refacciones sean mucho más complejas (¡tediosas!) Y propensas a errores.
Para ser sincero, no es solo el Reflection API
; Hibernate mapping files (hbm.xml)
y JSP files
ambos se refieren a los atributos como Cadena y cuando refactoriza su nombre de atributo, entonces tiene que cambiar manualmente en todos estos lugares.
Peor aún, los cambios en los archivos de mapeo de Hibernate o en los archivos JSP producen errores en el tiempo de ejecución.
Estoy interesado en saber cómo otros programadores manejan esto en Java. ¿Hay algunas herramientas? Uso Eclipse/IBM RAD como plataforma de desarrollo principal. Normalmente usamos un constant
para definir el atributo y usarlo siempre que sea posible, pero no siempre es posible.
¡También me interesaría saber cómo otros idiomas manejan esto!
IntelliJ tiene muy buenos anzuelos en los archivos de configuración JSP, Spring e Hibernate en estos días, todos los cuales son 'refactorizados'. No soy un usuario de Eclipse, pero pensé que también tenía algo similar. –
también netbeans tiene algunas herramientas inteligentes de refactorización (primavera, web.xml, etc.) – dfa
Creo que Eclipse también puede refactorizar a través de los archivos de Hibernate. –