Acabo de completar una pieza compleja de código. Funciona según las especificaciones, cumple con los requisitos de rendimiento, etc., pero me siento un poco ansioso y estoy considerando volver a escribirlo y/o refactorizarlo. ¿Debería hacer esto (dedicar tiempo que de otro modo podría gastarse en funciones que los usuarios realmente notarán)?Refactorizar/reescribir el código o continuar?
Las razones por las que se siente ansioso acerca del código son:
- La jerarquía de clases es compleja y no es evidente
- Algunas clases no tienen un propósito bien definido (que hacer una serie de cosas no relacionadas)
- Algunas clases utilizan otros elementos internos (que están declarados como amigo clases) para eludir las capas de abstracción para el rendimiento, pero siento que se rompen encapsulación al hacer esto
- Algunas clases se filtran detalles de implementación (por ejemplo, he cambiado un mapa a un mapa hash antes y me encontré tener que modificar el código en otros archivos de código fuente para hacer el trabajo de cambio)
- Mi gestión de memoria/sistema de fondo común es un poco torpe y menos que transparente
Parecen excelentes razones para refactorizar y código limpio, ayudando al mantenimiento y la extensión futuros, pero podría llevar bastante tiempo. Además, nunca estaré completamente satisfecho con ningún código que escribo de todos modos ...
Entonces, ¿qué piensa stackoverflow? ¿Limpiar el código o trabajar en las características?
Gracias a todos por el consejo. Es realmente apreciado. Creo que voy a refactorizar mientras esté fresco en mi mente y mientras pueda dedicarle algo de tiempo. Puede que no tenga la oportunidad de hacerlo más tarde y el código es bastante difícil para refactorizar incrementalmente tal como está, lo que definitivamente no es bueno. ¡Gracias de nuevo! – Dan
Un artículo posiblemente relevante: http://www.joelonsoftware.com/articles/fog0000000069.html –
Gracias por eso. Afortunadamente, hay grandes secciones de código con las que estoy contento y que puedo volver a utilizar tal como están, por lo que definitivamente no es una reescritura completa. Si fue "completa reescritura vs continuar", no habría hecho la pregunta y simplemente continué. – Dan