2009-11-16 20 views
5

Hasta donde yo sé, y lo he recopilado de otras publicaciones de SO, todavía no hay herramientas adecuadas para refacturar el código PHP, así que cuando se trata de refactorizar, probablemente sea bueno buscar y reemplazar para la mayoría de nosotros, con una buena cantidad de oración que no pasamos por alto algo.Escribiendo código PHP amigable con la refactorización

Me gustaría saber si hay alguna recomendación de codificación sobre cómo escribir código amigable para refactorización manual. Nunca para construir los nombres de variables de las cadenas, sería una cosa que viene a la mente debido a una construcción como la que es imposible de grep:

$object->{"field_".$fieldname} 

me podía imaginar que hay varios tales y no hacer qué. Tal vez alguien conoce buenos recursos/artículos sobre el tema. No debería ser específico de PHP tampoco.

Respuesta

5

Unit tests siempre me ayudan a identificar los lugares donde he roto el código debido a un refactor. Las pruebas unitarias en lenguajes dinámicos (PHP, Ruby, Python, etc.) brindan asistencia donde la tipificación estática en otros lenguajes (Java, C#) normalmente le permite refactorizar de manera más segura.

+0

Sí, definitivamente. Pero creo que es un tema diferente y me gustaría concentrarme más en el aspecto de la escritura de código por el momento. –

+0

@Pekka, definitivamente veo lo que dices, y desafortunadamente tengo poco que ofrecer para eso más allá de grep/sed/awk. Pero, me temo que la falta de buenas herramientas de refactorización inicial significa que la única manera efectiva de tratar con la refactorización en idiomas dinámicos es un conjunto de pruebas completo. –

0

Su pregunta tiene cierto sentido. Pero, al mismo tiempo, implica que se sabe que la implementación es inadecuada y está escrita para ser reemplazada. ¿Por qué no solo diseñarlo correctamente la primera vez?

+0

Totalmente de acuerdo con esto. – DarthVader

+3

No puede planificar para cada eventualidad o requisito que pueda surgir en el proyecto en una fecha posterior, y cambiar su estructura profundamente. Empiezas con un código agradable y limpio, pero si no te fijas, después de algunas versiones, estás frente a un desastre. En mi experiencia, la refactorización constante * antes de que sea necesaria * es la única manera de prevenir esto, y se está haciendo muy poco –

+2

No hay decisiones definitivas, incluso si su arquitectura cumple con los requisitos actuales, no garantiza que se reunirá los requisitos mañana.La planificación de la facilidad de mantenimiento es un buen enfoque, mucho mejor que suponer que su base de código vivirá para siempre en su forma actual. –

1

Bueno, la mejor manera de escribir código amigable para refactorizar es escribir código suelto acoplado, altamente cohesivo y código orientado a objetos.

Debe intentar la mayor abstracción que pueda, después de todo la abstracción es la palabra clave durante la programación.

Moroever, debe colocar capas de código en la capa de presentación, capa de negocios, capa de datos, etc. y Usar patrones de diseño es una solución bastante buena.

Le recomendaría que lea Martin Fowler.

0

Primero, asegúrese de que sus nombres de variables tengan sentido. Si es posible, vaya como OOP como sea posible, o al menos mantenga todo organizado (archivo de función de imagen, archivo de base de datos, etc.)

En segundo lugar, y esto es útil, verifique su IDE. Netbeans tiene opciones para refactorizar. Puede buscar en un archivo, en una carpeta, en un proyecto, etc.

3

Evitar la magia tanto como sea posible: variable variables, eval, enmascaramiento errores con @ y almacenamiento de código en la base de datos se volver a morder tú.

Cuestiones relacionadas