Pregunta

Tengo una aplicación que acaba de enviarse. Desde que escribí, he aprendido sobre AMFPHP y Propel. Ambos serían 'agradable' que se utilizará en la aplicación, pero no puedo decir que sería necesario en este punto.

¿Qué tipo de cosas no se tiene en cuenta antes de refactorizar código?

¿Fue útil?

Solución

Debería?

Sólo ser causa I puede refactorizar el código no quiere decir que I debe refactorizar el código. En muchos, muchos casos, hay muchas cosas más importantes que hay que hacer. Como reparar defectos.

Ahora, si estamos hablando de la refactorización del código porque ya estoy en ese bloque de código y trabajar en él como parte de la resolución defecto o el mantenimiento del código, que es una historia completamente diferente. Pero refactorización sólo por el hecho de refactorización? Eso suena como trabajo no nacido por aburrimiento. Seguramente usted no tiene una lista de defectos vacía.

Otros consejos

Tener pruebas unitarias para comprobar el código después de la refactorización.

Esfuerzo requerido en comparación con el beneficio recibido y donde encaja prioritywise con otros trabajos.

¿Cómo será fácil de mantener el código refactorizado. La retrospección es 20/20, pero con un producto enviado, diseño elegante pero críptico puede ser una pesadilla para mantener. Además, la flexibilidad en el diseño refactorizado para permitir mejoras de características es muy importante.

¿Qué tan probable soy yo para romper la funcionalidad existente? Las pruebas unitarias son una gran red de seguridad aquí como se automatizan herramientas de refactorización.

¿El código realmente ser más fácil de entender y mantener después? Esto puede ser una pregunta difícil de responder y se necesita experiencia para mejorar en contestarla.

Crear un tenedor para la base de código de producción actual en el control de código fuente y hacer todo el refactorización en la rama experimental de control de origen.

Unidad de prueba sería muy agradable, pero si el código no está cubierto por las pruebas de unidad que debe tener algún otro medio para garantizar que no se rompen el código. Si se puede sus manos en una copia de las bases de datos de producción, tal vez incluso una cierta entrada prod vivo, usted debe tener una oportunidad justa.

En un proyecto privious que en realidad anotó toda la información entrante durante 14 días y ahorramos una instantánea de la db prod al comienzo y al final de esos 14 días y fuimos capaces de comparar el estado de la base de datos utilizando el código antiguo y el nuevo código. Pero Unidad de prueba seguro de que se quite un poco el miedo: -)

olfateo el código. Si no me gusta el olor (en otras palabras, que no huele como yo) y luego hago pis por todas partes hasta que me gusta.

Dado que las técnicas de software necesitan nombres interesantes como ágiles o patrones de diseño, me llaman a esta canina Refactoring.

Después de volver a escribir el código que lo uso por un tiempo a mí mismo, mi propio Comer Dogfood.

Tengo que dar un 1 a Drejc. La única razón por la cual la mayoría no refactorizar es que si usted no tiene pruebas unitarias. Pero incluso eso no quiere decir que usted no debe refactorizar. Debo decir que mi modus operandus es la funcionalidad de código primero y luego siempre refactorizar para hacer frente a diseño de deuda. Repita ad-nauseaum.

El "suficientemente bueno" patrón es probablemente la metodología de programación más utilizado en la tierra, y esa es una razón por la que nuestro software está libre de errores y desordenado. En lugar de escoger la menor cantidad de energía "camino", siempre elegimos el mínimo de energía "paso".

Pero, ¡cuidado! Refactorización sin las herramientas adecuadas (y esto dependerá de la lengua y el IDE) es como clavar un tornillo:. Se puede llegar allí, pero no va a ser eficaz (y se puede meter en problemas)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top