¿Qué es la refactorización de código y para qué se utiliza?

La refactorización de código es una colección de pequeñas técnicas para mejorar el código que ya está escrito y funciona sin cambiar lo que hace este código.

Aquí hay algunos casos para aplicar la refactorización de código. Por ejemplo en TDD (desarrollo impulsado por pruebas)

# 1 TDD es una técnica de desarrollo de software basada en la repetición de ciclos de desarrollo muy cortos: la creación de pruebas (desarrollo de código que permitirá pasar esas pruebas) y la refactorización del código para cumplir con los estándares de desarrollo.

Obviamente, deberá refinar el código después de que haya pasado todas las pruebas.

Consejo de refactorización: las técnicas de refactorización aplicadas sin pensar dañarán más de lo que ayudan.

# 2 La refactorización de código a menudo se realiza al transferir un proyecto de un equipo de desarrollo a otro. En este paso, el equipo inicial simplifica el código, lo hace limpio, fácil de digerir y legible, para que el nuevo pueda entenderlo fácilmente y realizar ediciones sin temor a romper algo.

En tal caso, la refactorización de código puede ser esencial antes de pasar la aplicación al mantenimiento.

# 3 CASO OPUESTO. Parece ineficiente ejecutar la refactorización de código cuando se trata de código heredado o un gran proyecto empresarial. Su equipo puede perder mucho tiempo solo averiguando cómo funciona, y luego 2 veces más tiempo para mejorarlo sin dañarlo. Por lo tanto, desde una perspectiva esbelta, es más prudente poner recursos en la construcción encima de esto, o en la reconstrucción de partes vitales, que enredar con el original.

# 4 Poner una etiqueta y prácticas de revisión de código adecuadas es generalmente mucho mejor que recurrir a la refactorización, cuando tienes un solo equipo trabajando en un proyecto.

Aquí hay una respuesta integral por qué posiblemente la necesite.

Para mí, la refactorización de código es similar a lo que hace un editor con el trabajo escrito por los escritores.

El proceso de edición hace que el texto sea más legible y comprensible, y también ofrece suficientes posibilidades para que los escritores originales amplíen aún más su trabajo. El trabajo del editor no es agregar nuevos pensamientos sino hacer que los pensamientos existentes sean más comprensibles y elegantes.

La refactorización de código, similar al trabajo de un editor, se encarga de editar el código fuente existente para hacerlo más legible y extensible. No agrega nuevas funcionalidades al código, sino que simplemente organiza las funcionalidades existentes de una manera más elegante. La refactorización tampoco afecta el rendimiento del código, sino que aumenta el rendimiento de los codificadores a largo plazo.

Como programador, hemos estado intentando, a sabiendas o sin saberlo, hacer que el código sea más legible, comprensible y extensible, pero en nuestro intento, la fascinación por las nuevas características a menudo supera la necesidad de refactorizar.

Por lo tanto, la refactorización es tan importante en el campo del desarrollo de software como lo es la edición en el mundo de la publicación.

¡Buena pregunta!

La refactorización de código es el proceso de reestructurar el código de computadora existente sin cambiar su comportamiento externo.

Mejorar el código en el núcleo equivale a mejorar la funcionalidad existente y futura.

Se utiliza para hacer que el rendimiento de su sistema sea mucho mejor y más rápido de lo que realmente es. Después de ser refactorizado, su código está listo para algunas características futuras en las que no pensó hace seis meses.

Más información aquí – Beneficios de la reingeniería y refactorización de software

La refactorización de código está modificando una estructura interna de base de código sin cambiar el comportamiento.

Por lo general, el diseño de una aplicación decae cuando se realizan muchos cambios de código. Eventualmente encontrará muchos duplicados de código, muchas partes de la base de código son rígidas. Por lo tanto, resulta costoso y peligroso agregar cualquier funcionalidad o la corrección de errores puede introducir más errores. A veces, algunos desarrolladores se van y los nuevos desarrolladores no tienen muy claro qué hace el código.

La refactorización resuelve los problemas anteriores. Los desarrolladores cambian constantemente el diseño para que siempre haya una mejora en la implementación existente y también espacio para nuevas características. Si un desarrollador redacta el código, comprende mejor y también los próximos cambios son fáciles y rápidos.

El resultado de la refactorización de código es un diseño actualizado del sistema, el tamaño de la base de código no aumenta exponencialmente y los desarrolladores saben lo que está sucediendo.

Con el tiempo, el código tiende a aumentar las verrugas … a través de requisitos cambiantes, correcciones de errores, múltiples desarrolladores, nuevas características, etc. A veces, es necesario (o simplemente deseable) reestructurar el código para facilitar el mantenimiento y la extensibilidad futuros … o esa nueva característica solo no se puede incorporar fácilmente en la base de código actual.

Heres una historia:

Una empresa se crea con código. A medida que pasa el tiempo, el negocio cambia. El código debe ser revisado nuevamente.

A veces, el código se escribe con prisa y no es el mejor, por lo que se refactorizó para limpiarlo.

A menudo, el mismo código debe aumentarse para admitir un nuevo escenario de uso, por lo que un bloque de código puede modularizarse para que pueda reutilizarse para múltiples propósitos.

Básicamente, refactorizar es crear más orden o limpiar el código.

La refactorización es una técnica disciplinada para reestructurar un cuerpo de código existente, alterando su estructura interna sin cambiar su comportamiento externo.

– Martin Fowler

Dado que la refactorización se define para lo que se usa, diría que responde ambas partes de la pregunta.

Está bien fallar, cometer errores y aprender de ellos. Pero seguro que no deberías estar satisfecho con tu trabajo del pasado.

Piénselo dos veces antes de comenzar a refactorizar su código.

¿Hay suficiente tiempo?
¿Cuánto gano?
¿Es realmente necesario ahora?

Si desea leer más al respecto, lo invito a que visite el artículo del blog:

Refactorización – estado allí, hecho eso – Schibsted Tech Polska

Piensa en el código como tu habitación. No importa cuánto intente mantener las cosas en su lugar, su habitación se vuelve más desordenada después de un tiempo. Para que se vea hermoso y manejable nuevamente, debe limpiarlo, mantener las cosas en el lugar adecuado, etc. Lo mismo se aplica con el código.

En resumen, refactoriza el código para hacerlo más limpio, manejable, legible y más fácil de reutilizar y probar.

La refactorización se utiliza para mejorar su implementación, lo que trae una mejora en el rendimiento, la comprensión y la organización.

Recomiendo leer el libro Refactoring de Martin Fowler

“La refactorización hace que el código existente sea mejor para trabajar, más fácil de leer, depurar, mantener y ampliar con nuevas características”. Refactorización: ¿por qué?

More Interesting

¿Qué beneficios ofrece MemSQL sobre la ejecución de una base de datos MySQL en ramdisk?

¿Cuáles son las buenas aplicaciones de los tipos fantasmas?

¿Por qué lleva tanto tiempo incorporar la ley en nuestros automóviles, teléfonos y software en general? ¿Y qué industria se beneficiará más del impacto inmediato de conocer la ley en el punto de toma de decisiones?

¿Cuánto debe equilibrar un desarrollador sénior entretenidas ideas ingenuas para desarrolladores junior en lugar de dictar cómo deben hacerse las cosas?

¿Qué tan bien considerado es un trabajo de ingeniería de software en Mozilla en comparación con Google, Facebook, etc.?

¿Cuáles son los institutos creíbles y estándar en Bangalore para obtener capacitación en pruebas de software?

¿Es más difícil convertirse en un ingeniero de software que un probador de software?

¿Cuáles son los bootcamps o academias de desarrollo a corto plazo (2-12 meses) en todo el mundo para alguien interesado en comenzar una carrera como desarrollador?

Windows XP requirió 256 MB de memoria del sistema para funcionar sin problemas. Hoy, incluso 4 GB de memoria parecen bajos. ¿Se ha vuelto el software hinchado e ineficiente?

¿Cuál es el mejor software para el análisis de circuitos de placa de pruebas?

¿Cómo debo diseñar mi aplicación de notificación meteorológica?

¿Cuándo se debe documentar?

Pruebas de software: ¿Qué es una matriz de trazabilidad y cuáles son algunos ejemplos?

¿Cuáles son algunas de las características clave que busca en una solución confiable de software de monitoreo de redes empresariales?

¿Cuál es el mejor curso en software?