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:
codigo duplicado
Hay algunas razones para tener un código duplicado, la mayoría de las veces es necesario deshacerse de él.
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
,
/
, 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