Refactorizando sin mucho dolor

Muchos desarrolladores de nuestro equipo evitan la refactorización. La discusión de esta situación reveló las siguientes razones.

Por qué muchos no refactorizan

  • da miedo romper la funcionalidad existente

  • consume mucho tiempo: si el código que refactoriza cambia, la fusión (varias veces) desde la rama principal se convierte en un problema

  • existe el riesgo de no llegar a tiempo para la fecha límite de la tarea

Al mismo tiempo, la refactorización es casi una parte integral del proceso de desarrollo. Su necesidad está asociada con los siguientes requisitos previos:

  • Los requisitos iniciales casi nunca están completos y el desarrollo se lleva a cabo de acuerdo con ciertos supuestos, algunos de los cuales luego resultan ser incorrectos o inexactos.

  • a menudo es necesario realizar ediciones rápidas para que funcione aquí y ahora, sin considerar más soporte

Cuando se justifica la refactorización (necesaria)

Veo las siguientes razones para cambiar la estructura del código:

  1. codigo duplicado

    Hay algunas razones para tener un código duplicado, la mayoría de las veces es necesario deshacerse de él.

  2. universalización

    Para facilitar la comprensión de su código y reducir los problemas operativos, a menudo puede crear una abstracción que combine código similar. Es importante tener al menos 3 prototipos para esta abstracción, de lo contrario, puede que no sea precisa.

    , GooglePay. , ApplePay SamsungPay . VendorPay

  3. ,

  4. /

    , 50 500 ,

: , , .

  • , . , , , , . , () , .

?

, , :

  • (unit )

  • -

  • , -

feature- master' .

, , , . , , , . , , .

- (- + ) , , ( master'), - - .

, master rebase - master.

Este enfoque incurre en algunos gastos generales, pero mitiga las principales dificultades de refactorización:

  • revisar y fusionar la refactorización no da tanto miedo, porque básicamente no trae cambios funcionales, o estos cambios funcionales son claramente visibles en una pequeña solicitud de extracción

  • no es necesario admitir los cambios de otros desarrolladores porque los cambios se fusionan en la rama principal casi de inmediato

  • en el caso de que los plazos se mantengan, puede dejar de hacer la refactorización después del próximo ciclo de dos o tres días




All Articles