¿Está bien volver a formatear otro código de desarrollador mientras se modifica / agrega a un módulo?

13

Mientras se desarrolla en una atmósfera grupal y agrega o modifica características en alguna base de código. ¿Se considera ofensivo o descortés reformatear el código anterior de los desarrolladores para actualizarlo a los estándares de codificación actuales? Entiendo que los estándares han cambiado, y probablemente continuarán cambiando, pero ¿alguno de ustedes se ofendería si alguien apareciera y cambiara el formato de su código?

Para ser claros, no estoy hablando de cambiar ninguna lógica, solo jugar con pestañas y espacios y demás.

EDITAR: No solo hago esto por el bien de los estándares de codificación, sino que me ayuda a leer su código y actualizarlo para que pueda comprender completamente la lógica que se ha implementado antes de comenzar a modificar aplicaciones críticas.

wfoster
fuente
66
Habilite el "formato automático al guardar" para todos. Todos usan los mismos ajustes acordados. Después de un tiempo, todo el código se normaliza.
1
Puede haber un punto en el que esto llegue demasiado lejos. Tuve un compañero de trabajo que volvió a formatear todo y agregó saltos de línea que no eran necesarios ni relevantes en lo que a mí respecta. Personalmente, a menos que sea ilegible o el código se haya convertido en mi responsabilidad principal, dejo el formato solo a menos que esté haciendo otros cambios.
SoylentGray
1
Si está codificando en C #, entonces quédese con StyleCop. Si está en otros idiomas, intente elegir una herramienta buena e imparcial.
Trabajo
55
Es este "Estoy cambiando el formato ... porque yo creo que debería ser diferente" .. O se trata de "Estoy cambiando el formato ... también coincide con las normas " ... enormemente diferentes preguntas
WernerCD
1
@Thorbjorn No consideraría una rama que corrija el formato en cada archivo, 1 archivo por confirmación, matando el historial. Sin embargo, arreglarlo durante el mismo commit es simplemente malo. (Supongo que podrían usar algo como git addconfirmar partes selectivamente, pero supongo que la mayoría de la gente usa el equivalente de svn commito git commit -a)
alternativa

Respuestas:

19

Creo que esto está bien siempre que se acuerden los estándares. Sin embargo, una nota de precaución; tenga en cuenta si existe la posibilidad de que otros estén modificando el archivo al mismo tiempo. Si hace que su fusión sea más difícil solo porque estaba cambiando el formato, no será muy popular.

Jeremy Mullin
fuente
10
La primera oración aquí es importante. Asegúrese de estar siguiendo los estándares acordados, y no solo de hacer cambios porque le gustan.
Thomas Owens
5

Sí, el código debe pertenecer al proyecto. Llevar el código al estándar ayudará a reducir el déficit técnico del proyecto. Si lo está modificando, actualmente es responsable de ello. Para el código anterior, el desarrollador original ya no puede estar en el proyecto o tiene nuevas funciones.

Cuando realice este tipo de cambio, es bueno ejecutar las pruebas de verificación después de volver a formatear. Si se aprueban, verifique el código antes de realizar cambios en sus funciones.

EDITAR: en el contexto de esta pregunta, es apropiado volver a formatear el estándar. En ausencia de estándares, recomendaría abogar por los estándares y no reformatearlos hasta que haya estándares para el formato. El reformateo a gusto / estándares personales no debe hacerse con el código que pertenece al proyecto.

BillThor
fuente
2
+1 para "verifique el código antes de realizar cambios en sus funciones"
bdoughan
1
Vuelva a hacer +1 para "verificar los cambios de formato antes de hacer los cambios de sus funciones" y "es bueno ejecutar las pruebas de verificación después de volver a formatear". Idealmente, deberíamos ejecutar pruebas de verificación antes de cada registro.
leed25d
En realidad, no importa si reformatea antes o después de los cambios. Lo que importa es que los parches estéticos deben mantenerse separados de los parches funcionales:> si un parche estético cambió la funcionalidad, no fue intencionado y puede considerarse un error; hace que los parches funcionales sean más fáciles de revisar (porque son más pequeños).
Matthieu M.
@Matthiew M: Cierto, pero en la mayoría de los casos se harán primero para mejorar la capacidad de mantenimiento antes del mantenimiento. Pocos desarrolladores tienen tiempo para hacerlo después del hecho. Además, si el código necesita actualizarse para pasar las pruebas de registro automáticas, primero debe formatearse para mantener la separación de los parches estéticos y funcionales.
BillThor
3

Creo que siempre es una buena práctica refactorizar el código cuando está modificando / agregando a un archivo en particular. Eso incluye actualizar el estilo del código para reflejar las convenciones de nomenclatura adecuadas para variables / métodos y estilos de codificación.

Wayne Molina
fuente
El OP preguntó sobre formatear, no refactorizar.
quant_dev
Lo sé; Dije que considero que eso también incluye reformatear :)
Wayne Molina
2

Hago esto todo el tiempo. El código antiguo debe mantenerse con los mismos estándares del nuevo código y si no lo arregla mientras está trabajando en él, nadie lo hará. Creo que esto cuenta bajo la Regla de Boy Scout.

RKitty
fuente
2

Creo que esta es una buena práctica y una parte necesaria del mantenimiento del código.

Recomendaría verificar los cambios de formato en una confirmación para el sistema de control de versiones y los cambios funcionales en una confirmación separada para ayudarlo a usted y a los demás a comprender lo que sucedió.

semaj
fuente
1
+1 para confirmaciones separadas. Intentar averiguar qué cambios de código se realizaron en una confirmación cuando el código se ha formateado al mismo tiempo es un PITA. Sus herramientas diff son inútiles si cada línea del archivo ha cambiado.
Dave Kirby
2

No tendría ningún problema con él y probablemente lo agradecería ... siempre y cuando los cambios no sean "religiosos". Por favor, no pase por todas mis clases y mueva las llaves a la primera línea del método. Si el formato es un tipo legítimo de "diferentes trazos para diferentes personas", entonces es un poco molesto cuando alguien entra e impone un formato en el código que edita con más frecuencia. Sin embargo, si se convierte en el editor principal de ese módulo en particular, realice los cambios de formato que considere adecuados.

Morgan Herlocker
fuente
1

Si. "Arregle" el código como mejor le parezca. Tal como dicen los programadores pragmáticos en su libro El programador pragmático , no hay ventanas rotas. Si el código no está a la altura, lo considero una ventana rota.

mpenrow
fuente
1

Hay varios repositorios que volverán a formatear automáticamente en el check-in, así como pequeñas cosas como cambiar el emparejamiento CR / LF en get dependiendo de la plataforma que obtenga el origen.

Hay un gran inconveniente en hacer sus propios reformateos, ya que su delta de check-in se ofuscará por toneladas de reformateo y si hay un problema de regresión se hace más difícil encontrar los bloques de código ofensivos.

Puede sugerirle a su líder que, dado que la base del código es antigua, debe ser traída del frío y reformateada a los estándares actuales de una sola vez, lo que lleva a un nuevo y brillante futuro para el código en todas partes.

Patrick Hughes
fuente
1

Dado que está hablando de un problema puramente de "formateo" (lo que significa que no estamos reparando errores sino haciéndolo parecer bonito según su propio estándar), creo que depende de si la persona original aún mantiene el código o no.

Si el autor sigue trabajando en el proyecto, es grosero. Lo que podría "verse" bien para usted no es lo que "se verá" bien para ellos y modificar el código por el simple hecho de formatear no es cortés. También puede perder mucho tiempo.

Estuve trabajando en un proyecto una vez con un desarrollador MUY posesivo. A lo largo de los años, he desarrollado una forma muy metódica de formatear mi código que creo que es fácil de leer, menos propensa a errores implícitos y autodocumentada. Este tipo, por otro lado, prefería usar todas las características implícitas con líneas largas que se extendían a 300 caracteres de ancho, por lo que tenía que tener un monitor de 30 "para leerlo porque creía que el recuento de líneas era más importante que la legibilidad. Pasó medio día revisé mi código y lo cambié a su "estándar preferido" ... ¡mientras yo todavía estaba desarrollando en paralelo! Vine a la mañana siguiente para encontrar dos días de trabajo formateados para su desorden. Fue grosero y una pérdida de tiempo.

Ahora, si el desarrollador se ha ido y tienes un "mejor estilo", hazlo.

Jordan Parmer
fuente
0

Siempre formatee el código automáticamente si su IDE puede hacerlo.

  • Evita que los cambios de formato manual desordenen su historial de versiones a largo plazo
  • El perfil del formateador debe ser acordado entre todos los desarrolladores (¿elegir el predeterminado? -)
  • Haga que el código de formato y la organización de las importaciones sean un hábito al guardar un archivo

Por ejemplo, en eclipse, primero puede ejecutar el formateador y organizar las importaciones para todo el código base. Entonces recuerde ctrl + alt + f antes de guardar.

jkj
fuente