¿Cuándo debo refactorizar un código?

Primero cuando no hacerlo:

– Cuando te topas con un código y dices ” Ah, esto podría usar un poco de refactorización”.
– No tienes al menos un análisis básico de ese código.
– Los riesgos y beneficios no se tienen en cuenta.
– El código afectado es parte de las características principales que rara vez se modifican.
– No comprende por qué el código se ve así o cuál fue el proceso exacto que generó ese estado.
– Usted decide solo mientras forma parte de un equipo cómo proceder con la refactorización.

Ahora, cuando hacerlo:

– Hay un código que a menudo se modifica y está aumentando la deuda técnica exponencial.
– Antes de realizar cambios importantes en la funcionalidad existente (si omite este paso, generará deudas técnicas).
– Cuando un área específica de su base de código genera errores constantemente (encuentre la causa raíz e intente refactorizar esa parte).
– Cuando el código está cubierto con algún tipo de prueba confiable.
– Antes de publicar un nuevo código en la compilación principal.
– Después de las revisiones de código.
Prima:
– Cuando crees que estás a punto de ser despedido y quieres asegurar tu trabajo. Refactorice el código crítico de una manera que solo usted pueda entender.

TLDR: Como regla general: evite refactorizar el código que es muy poco probable que cambie o tenga una pequeña cantidad de errores reportados y promueva la mayor cantidad posible de refactorizaciones en el código que a menudo cambia, que tiene muchos errores reportados o eso está a punto de extenderse.

Estas métricas se pueden generar a partir del historial de control de versiones y su rastreador de errores.

Siempre considere lo que recibe por el tiempo y el riesgo que asume. No refactorice el código porque se ve mal o podría mejorarse o es difícil de leer . Ok, es difícil de leer, pero ¿con qué frecuencia las personas leen ese código en particular? Se ve mal, pero ¿qué impacto tiene eso en su trabajo diario? No es extensible, pero ¿con qué frecuencia se extiende ? Parece con errores, pero ¿cuántos errores estás llegando ?

Sea sensato acerca de sus decisiones de refactorización.

Tuvimos una experiencia reciente con esto en nuestra plataforma. Bienvenido al Proyecto: Sherpa. Estamos pasando por un gran refactorizador. Cuando comenzamos la plataforma, estábamos muy contentos. El código base se hinchó. Cuando el problema de rendimiento se volvió en detrimento de la experiencia del usuario y después de que hicimos más validación de ajuste del mercado / producto, decidimos refactorizar. Si hubiéramos comenzado a refactorizar antes de comprender mejor los objetivos comerciales que intentamos alcanzar, es posible que no hayamos seguido el enfoque correcto para la optimización. Refactorizar es tanto un lujo como una necesidad. Cuando el dolor de las necesidades de ajuste de rendimiento y mantenimiento supera las necesidades de lanzar nuevas funciones, es cuando debe hacerlo. Pero hacerlo de manera incremental puede ser una buena manera de asegurarse de que nunca tenga que cerrar su sitio por un tiempo porque se ha vuelto demasiado difícil de manejar.

Cada vez que sienta que es “hacky”, debe refactorizar una pieza de código.

Acerca de refactorizar un proyecto completo, es cuando su productividad en ese proyecto en particular se ve afectada por el peso del legado del proyecto. Es entonces cuando se supone que debe refactorizar, porque una vez que se haga eso, podrá avanzar mucho más rápido que antes, y eso es lo que importa para los propietarios de negocios.

¿Qué es la refactorización? La reorganización de funciones / tablas / etc. en un patrón estructuralmente más lógico y fundamental para la aplicación dada. Si debe o no basarse en sus limitaciones de tiempo y en muchas otras razones completamente arbitrarias no es relevante para la razón intrínseca y subyacente que debería o no debería considerar la refactorización.

¿La organización del software de funciones / tablas / etc. está en un patrón estructuralmente menos lógico y menos fundamental de lo que debería ser para la aplicación dada? En caso afirmativo, podría considerar refactorizar el código, si tiene el tiempo, los recursos, etc. para hacerlo.

Su programa generalmente se ajustará a alguna arquitectura, algún modelo. Sin embargo, al actualizar cosas, a menudo es más rápido escribir nuevas funciones sin que se ajusten al modelo: código “hacky”. Debería refactorizar cuando haya mucho código de este tipo, y el objetivo debería ser devolverlo al modelo existente.

Cuando no tiene una fecha límite de vencimiento: siempre que encuentre un código que se pueda mejorar. El mal código es un cáncer en crecimiento. Influye en la funcionalidad próxima y nuevamente influirá en su diseño. Deshágase del código incorrecto lo antes posible

No debe refactorizar como proceso independiente porque no agrega ningún valor a la empresa.
Para responder a su pregunta ¿Cuándo debería refactorizar?
· Si te está causando dolor.
· Re-factorizar como parte del proceso de corrección de errores.
· Refactorizar como parte de la revisión del código.

Refactorice cada vez que vea un problema previsible en el futuro.

Refactorice cuando alguien más diga ¡Oh, desearía que hiciera esto!

Refactoriza cuando estás aburrido.

Refactorice cuando esté muy adelantado a lo programado.

Refactorice cuando no pueda entender su propio código.

Solo después de que tenga cobertura de prueba para el código.

vaya de vacaciones por una semana y luego intente comprender el código, si está gastando demasiado, eso significa que es hora de refactorizar el código.

More Interesting

¿Qué hacen exactamente las personas en sus trabajos / oficinas?

Cómo saber qué sucede en la mente del entrevistador durante una entrevista

Quiero conseguir un trabajo en Wall Street. ¿Qué colegios universitarios son mis mejores opciones para ello?

¿Qué se necesita para conseguir un trabajo con un equipo de Major League Baseball?

¿Cuál debo elegir: MICA o IIM? ¿Qué comparación y contraste tiene MICA con otras mejores escuelas B en términos de oportunidades, aprendizaje y paquetes de inicio?

¿Puedo conseguir un trabajo en el aeropuerto sin experiencia técnica en India?

¿Qué aumentaría mejor las posibilidades de trabajar en el campo de la cosmología, una licenciatura en matemática aplicada o estadística?

Quiero ingresar a la industria de gestión de productos. ¿Qué tipo de pasantías se destacan?

Quiero trabajar para una empresa de comercio electrónico en Bangalore. Soy de antecedentes comerciales. ¿Donde debería empezar?

¿Qué pasa después de más de 2 años de experiencia en SAP ABAP + PI / PO (Integración de procesos / Orquestación de procesos)?

¿Es bueno un MBA en finanzas?

¿Qué es más importante que la escuela? ¡Estoy en la escuela ahora mismo pero estamos perdiendo mucho tiempo, pero no puedo dejar de ir a la escuela!

Como desarrollador junior de software, ¿debería aceptar una oferta de una empresa que no tiene otros desarrolladores en el equipo?

Cómo entrar en el campo de la actuación cuando no eres de un entorno de actuación o una familia de actuación

¿Tener un mentor de diseño de UX puede hacer que sea más fácil ingresar al campo o conseguir un buen trabajo?