¿Qué hacer si un compañero de trabajo está editando su código solo para cambiar la apariencia?

16

¿Qué debe hacer si un compañero de trabajo está editando su código?

Sin el propósito de agregar funcionalidad o corregir errores, solo para cambiar la apariencia ...

Tamara Wijsman
fuente
99
Supongo que tienes un problema con esto. Si es así, ¿por qué? ¿Tiene el código peor ?
Zaz
3
@ Josh: Sí, de hecho, empeora el código, porque es más difícil de mantener por otro programador que el que lo escribió.
Robert Koritnik
44
darle más trabajo que hacer
Oscar Cabrero
44
@Robert - Creo que te pierdes el punto de @ Josh. Cambiar la apariencia del código puede hacer que sea objetivamente más fácil de mantener ... especialmente si estaba mal formateado para empezar.
Stephen C
44
¿Es realmente tu código o pertenece al equipo?
Eric King

Respuestas:

28

Háblales de ello. Entra en la conversación con la actitud de "No están haciendo esto para molestarme o porque tienen algún tipo de trastorno obsesivo compulsivo; están tratando de mejorar mi código".

Porque podrías estar equivocado. Eso podría ser una solución sutil de errores y simplemente no lo viste.

O bien, podría ser que hay un estándar de codificación que no conoce que está violando, y simplemente lo están corrigiendo.

O podría ser que están tratando de molestarte o que tienen algún tipo de trastorno obsesivo compulsivo. Si ese es el caso, pídales amablemente que se detengan, y si eso no funciona, hable con su jefe.

Pero nunca lo sabrás a menos que lo pidas.

BlairHippo
fuente
17
Vale la pena señalar que muchos IDE tienen características de formateo automático. Los uso todo el tiempo sin pensarlo. Algunos incluso formatearán todos los archivos de su proyecto o todos los archivos que tenga abiertos, dependiendo de cómo esté configurado. Puede ser fácil formatear accidentalmente.
Matt Olenik
@ Matt: Excelente punto.
BlairHippo
1
"No están haciendo esto ... porque tienen algún tipo de trastorno obsesivo compulsivo". Hablando principalmente de mí mismo, ¡ese no siempre es el caso! Cuando se trata de código, soy dos cosas: un perfeccionista y un fanático aseado. A pesar de eso, generalmente me esfuerzo por evitar aplicar esta mentalidad en el trabajo de mis colegas.
Nathan Taylor
55
Oh, no estoy diciendo que el colega de Tom NO ES un fanático del TOC con un pobre sentido de los límites. Solo digo que entrar en una conversación con una mentalidad de "¡¿Qué demonios te pasa ?!" No es una buena manera de tener una conversación productiva. :-)
BlairHippo
1
@ Chris no hay que preocuparse por la justificación, ¡siempre Ctrl + K + D!
Nathan Taylor
16

No estoy tan casado con cómo mi código lo busca para molestarme. :) Intento aprender de los cambios. ¿Mi compañero de trabajo ajustó los nombres de las variables? ¿Escribir un bucle más eficiente? ¿Hacer el código más legible?

Si no puedo ver cómo los cambios mejoraron lo que ya estaba allí, generalmente le pregunto al compañero de trabajo que realizó los cambios cuál fue la motivación detrás de ellos. Es posible que la ventaja no sea obvia para mí. Y si tengo razón y están equivocados, entonces quizás pueda explicar por qué lo escribí de la manera en que lo hice.

Si todo lo demás falla, revierta el check-in. ;)

Editar: Sin embargo, todas las apuestas están canceladas si el deseo de hacer cambios cosméticos introdujo un error.

Adam Lear
fuente
9

En mi opinión, tú y tu equipo deberían usar un estándar de codificación de todos modos. Si este es el caso, entonces las preguntas se convierten en '¿se ajustó su código original al estándar?' En caso afirmativo, su colega no debería tocar su código a menos que lo cambie funcionalmente. En caso negativo, me temo que su colega tiene todo el derecho de ordenar su código. Como líder de proyecto, me encuentro haciéndolo todo el tiempo.

Si no está utilizando un estándar de codificación, entonces todo el argumento de lo que constituye 'buen código' se vuelve demasiado subjetivo. Por lo tanto, por qué debería usar un estándar de codificación :)


fuente
8

Como una de esas personas (las personas que ocasionalmente reformatean el código de otras personas), la razón principal por la que lo hago es la legibilidad. Algunas personas son extremadamente descuidadas con su sangría o con la combinación de pestañas y espacios.

Lo principal que tengo la costumbre de cambiar es reducir las líneas largas para que pueda leer todo sin desplazamiento horizontal. Dividiré las declaraciones complejas en declaraciones separadas o las llamadas / declaraciones de método de reformateo para enumerar un parámetro por línea si no cabe todo cómodamente en una sola línea. También editaré comentarios, ya sea para corregir errores en inglés o simplemente para aclarar las cosas.

Sí, podría dejarlo solo, pero preferiría reducir el esfuerzo mental requerido para leer el código.

Que deberias hacer al respecto? En primer lugar, considere que tal vez esta persona está mejorando su código. Además, debe asegurarse de tener cierto consenso en su equipo sobre cómo se debe formatear el código. Si cada persona tiene hábitos diferentes, retrasará a todos. Si no están mejorando su código y van contra la corriente, entonces debe confrontarlos al respecto. Si eso no funciona, entonces es posible que deba involucrar a otros.

Dan Dyer
fuente
Esa es su legibilidad, encuentro que el código SQL sin sangría es mucho más fácil de leer porque leo rápidamente y el código sangrado me ralentiza y me dificulta concentrarme.
HLGEM
6

Pregúnteles por qué lo están haciendo; Una explicación válida puede disminuir su frustración, pero debe hacerles saber cuánto le molesta. Quién sabe, tal vez pensaron que te estaban haciendo un favor y se detendrán cuando sepan que te ofende. O puede estar tratando con alguien que realmente padece una afección médica.

JeffO
fuente
"O tienen TOC y pueden necesitar medicamentos". - mejor no mencionar esa parte si quieres seguir siendo amigable
Zaz
Haré una enmienda.
JeffO
5

¿Está permitido? ¿Los cambios mejoran el código? Si es así, trágate tu orgullo. Si cree que la calidad del código ha empeorado, hable con el compañero de trabajo y pregúnteles por qué sintieron la necesidad de cambiar su código sin ningún beneficio obvio. Si se hace por despecho o porque la persona, por error, siente que es mejor que tú y no puedes resolverlo con ellos, habla con tu jefe.

Chinmay Kanchi
fuente
5

Los IDE como Visual Studio tienen una opción llamada Format Documentque formateará el código de acuerdo con las reglas que el usuario ha establecido en el IDE. Podría ser que su compañero de trabajo esté usando esto (ya sea automáticamente sin saberlo o mediante una aplicación deliberada). ¿Quizás su IDE usa espacios en lugar de pestañas, o viceversa, y estos se aplican automáticamente sin siquiera saberlo? Pero necesitas hablar con ellos para averiguarlo.

Por cierto, a menudo volveré a formatear el código de los compañeros de trabajo si obviamente no sigue algún tipo de esquema de formateo (es decir, está por todas partes). Es una forma, con suerte, sutil de hacerlos notar. (Sin embargo, no lo reformatearía si fuera ordenado, pero no es de mi agrado).

Dan Diplo
fuente
1
"(Sin embargo, no lo reformatearía si fuera ordenado, pero no es de mi agrado)" - regla muy importante a seguir, +1
Zaz
Nuestras pautas de desarrollo tienden a poner el estilo del código más en la esquina 'recomendada'. Formateo automáticamente el código a las recomendaciones a nivel de archivo si me resulta difícil de leer.
Joeri Sebrechts
3

Si lo está cambiando para que cumpla con los estándares de codificación de su equipo, debe seguir los estándares la próxima vez.

Si lo cambia de modo que ya no siga los estándares de codificación de su equipo, infórmele qué está haciendo mal y pídale que lo vuelva a cambiar.

... Su equipo tiene un conjunto de estándares de formato de código que son utilizados por todos, ¿verdad?

Daenyth
fuente
2

Ocasionalmente, reordena el código escrito por compañeros de trabajo desordenados (o corrijo errores tipográficos en los comentarios). Saben que soy obsesivo con el formato y el orden del código y, por lo tanto, me dejan hacerlo sin quejarme demasiado. A veces también me dan un refresco o una galleta gratis.

Por supuesto, este es un trabajo ocasional , ya que rompió la funcionalidad de "culpa" en SVN.

Esta también es una forma muy básica de hacer algún tipo de revisión de código (generalmente leo la mayoría del código comprometido por mis compañeros de trabajo en los módulos en los que estoy trabajando).

Wizard79
fuente
2

Las convenciones de código es la respuesta. Deberías tener uno en el trabajo. Si no lo hace, comience ahora mismo (un buen punto de partida es la guía de estilo de Google ). Cuando hay reglas escritas (o al menos comúnmente conocidas), la respuesta a su pregunta es trivial.

Ilia K.
fuente
1

Siento que estás pensando que es ofensivo hacerlo ... Por ejemplo, yo mismo arreglaría este código inmediatamente

int myFunction( ) {

    int i ;
  return  0;

}

convertirse

int myFunction() {
    int i;
    return 0;
}

entonces ... ¿debería ser castigado por mi acción? En la vida real, tengo toneladas de registros SVN que dicen 'Formateo'. ;-)

tia
fuente
0

Use una herramienta de verificación de estilo

Comience a usar StyleCop o similar y aplique reglas de estilo de código y también obligue a todos los desarrolladores a usarlo. Todo el código se verá igual sin excepción. Y reúnase con los sabios para discutir las reglas más apropiadas para su organización. A pesar de que las reglas predeterminadas ya son muy similares al código .NET Framework.

Es la forma más fácil de hacerlo. Me encontré corrigiendo el código de otra persona en uno de mis empleadores anteriores porque este otro tipo estaba escribiendo código con cantidades excesivas de líneas vacías y sin reglas de sangría. El código era realmente ilegible por un desarrollador promedio. Si StyleCop existiera entonces, nos haría felices a muchos de nosotros.

Robert Koritnik
fuente
Tengo que rechazar este voto. StyleCop es una implementación terrible de una idea decente. 1) Se ejecuta después de la construcción, lo que lo convierte en un asesino de tiempo importante en proyectos grandes 2) Sus reglas predeterminadas en realidad contradicen los valores predeterminados de VS en algunos casos 3) Algunas de las reglas son puramente inútiles. Se queja de "//" sin un espacio final y luego le dice que use "////" nuevamente, después de una compilación. Esa es la peor parte. No sería malo, pero la parte posterior a la construcción realmente te mata en un proyecto grande con un tiempo de construcción largo.
MIA
No estaría de acuerdo con usted en muchos aspectos que ha señalado. Puede configurar la forma en que funciona la comprobación de estilo. Incluso he implementado un par de mis propias reglas que proporcionan el formato que quiero. En cuanto a la velocidad, no puedo decir que sea genial. pero en una máquina decente debería funcionar bien. Solo piense en la velocidad del copulador C ++ a principios de los años 90, donde realmente pudo ir y preparar una taza de té mientras tanto. ¡Mientras que tu construcción falló! ;)
Robert Koritnik el
Acabo de comenzar a usar StyleCop para ver cómo funciona y, aunque a veces es un poco molesto, también ayuda a encontrar muchos errores que, de lo contrario, pasarían desapercibidos. No tiene que ejecutarlo como parte de la compilación y solo puede ejecutarlo en su máquina local, también solo para archivos individuales. Para que pueda usarlo sin molestar a sus compañeros desarrolladores. Además, si no le gustan las reglas, puede deshabilitarlas, para que no se haga ningún daño real.
Anne Schuessler
+1 Esto no se trata explícitamente de StyleCop .. (StyleCop o similar ). Y esa es una muy buena idea. Defina un conjunto de reglas, configure su herramienta de elección y termine con ella para siempre.
Bruno Schäpper
En estos días tenemos Grunt, Gulp, etc., que pueden hacer este paso al igual que StyleCop lo hizo en el pasado.
Robert Koritnik el
0

Este es un pensamiento que vi en Internet hablando de refactorización y tal vez explique por qué alguien tocaría su código para mejorarlo:

¿Por qué?

Hay dos razones principales para refactorizar:

  1. Para mejorar el código / diseño antes de construir en su parte superior: es realmente difícil encontrar un buen código en el primer intento. El primer intento de implementar cualquier diseño inicial nos mostrará que hemos malinterpretado u olvidado alguna lógica.

  2. Para adaptarse a los cambios en los requisitos. El cambio ocurre en el desarrollo de software; Para responder al cambio es mejor tener una buena base de código. Tenemos dos opciones para ambos escenarios, ruta del código o refactorizarlo. Parchear el código nos llevará a un código que no se puede mantener, y aumentará nuestra deuda técnica, siempre es mejor refactorizar.

¿Cuando?

  1. Cuanto antes mejor, más fácil es.

  2. más rápido y menos arriesgado refactorizar sobre un código refactorizado recientemente en lugar de esperar a refactorizar para que el código esté casi completo.

¿Qué?

  1. Todo el código y todo el diseño son candidatos para la refactorización.

  2. Una excepción para no refactorizar algo podría ser un código de trabajo cuya calidad es baja, pero debido a que está cerca de una fecha límite, preferimos mantener nuestra deuda técnica en lugar de arriesgar la planificación.

¡Solo tiene que dejar que haga lo mejor que pueda, si sería genial para ambos y le ahorraría tiempo en el futuro!

salud

Junior M
fuente