coding style - psr - ¿Debo cometer cambios cosméticos?
psr-2 (13)
Hay cambios menores en el estilo de codificación que a menudo quiero comprometer con el control de origen, pero ahora el registro de cambios está lleno de esos cambios que no afectan la funcionalidad del código.
¿Qué debo hacer la próxima vez que tenga que arreglar cosas menores como:
- Elimine y clasifique los usos (en .NET, las importaciones en Python, incluye en c ++)
- Corrección de sangrado, espaciado y saltos de línea.
¿Son estas cosas "menores" arregladas? Si es así, confía en ellos. Si no, no lo hagas.
Realmente, depende de lo que usted y su equipo consideren importante.
Comprométalos, con el comentario de confirmación marcado adecuadamente para que sea más fácil ignorarlo al revisar una lista de cambios.
No los confirme en la misma operación que un cambio en la funcionalidad. De esa manera, si rompe algo, es más fácil reducir lo que lo rompió y es fácil revertir solo la refactorización si es necesario.
Compromételos con el próximo gran cambio como sidenote. Al menos eso es lo que yo haría.
Creo que cuando tienes un equipo de desarrolladores trabajando en el mismo código, lo más importante es acordar un estilo cosmético para el código. Entonces, su primera tarea es tratar de que todo su equipo acuerde un estilo de codificación.
Buena suerte.
Una vez que haya hecho eso, realice cambios estéticos con la frecuencia que desee, para recordar a las personas que se adhieran al estilo.
Hay una gran sección en Code Complete sobre los méritos de los diferentes estilos de codificación. Si puede hacer que su equipo lea la sección antes de su reunión de estilo de codificación, podría ser útil sacarte a todos de la reunión con vida Enfoca la discusión.
Creo que esto depende de su entorno de trabajo y de cómo otras personas que trabajan en el mismo proyecto quieren lidiar con aquello que probablemente difiera.
Por lo tanto, mi sugerencia general sería preguntar a las personas que trabajan con el mismo código y encontrar una guía para casos como ese. Podría encontrar que a las personas no les importa los registros debido a cambios estéticos o que prefieren vivir con un poco de "falta de interpretación" en lugar de lidiar con registros de cambios desordenados.
Una guía definitiva que sea transparente para todos es la mejor manera de abordar estas preguntas y evitar confusiones en el futuro.
Personalmente, me gusta el código ordenado y no me importaría hacer check-ins debido a cambios puramente estéticos. Sin embargo, si es solo un poco de espacio y saltos de línea, probablemente solo lo dejaría y lo cambiaría si estuviera trabajando en el mismo archivo de código de todos modos. A menudo elimino y clasifico los usos porque me resulta confuso si hay un montón de usos que no tienen sentido, pero eso es solo yo.
Definitivamente los cometen. Si los confirma junto con los cambios en el código real y tiene que revertir esos cambios, perderá sus arreglos estéticos.
Idealmente, los compromisos deberían ser como transacciones de base de datos: una parte del código de trabajo relacionado que se puede revertir sin afectar al resto del sistema.
En los proyectos donde soy el único desarrollador, tiendo a hacer este tipo de correcciones junto con otros cambios de código.
En los proyectos donde hay un equipo de nosotros, tiendo a intentar este tipo de cambios por su cuenta para que no oculten el "trabajo real".
Creo que es importante arreglar todo lo que está "mal" con una base de código, incluso si se trata de cosas puramente menores como la sangría.
Hay un par de problemas.
Primero, no hagas cambios al código porque estás aburrido y no tienes suficientes tareas reales. Si este es el caso, vaya a hablar con su gerente de proyecto y obtenga algunas tareas reales asignadas a usted, algo con valor.
En otras palabras, no vayas a cambiar el código por el cambio. Siempre agregue algún valor al código en el proceso.
Ahora, si esos cambios contribuyen a hacer que el código sea más fácil de manejar, por usted y por otros, entonces hágalos. Cosas como asegurarse de que se sigan los estándares de denominación, refactorizar código crufty, etc. Pero haga una tarea para que su jefe de proyecto pueda decir "Sí, esto es bueno, dedique 2 horas a esto y contácteme".
Comete los cambios cuando hayas terminado con ellos. No los mezcle con cualquier tarea real que haya terminado justo antes de ellos, o la siguiente, hará que la combinación de correcciones de errores entre sucursales, revisiones de códigos y solo la exploración general de códigos sea difícil de seguir.
"Ok, entonces arreglaste el error 7711, y también cambiamos otros 100 archivos. Bien, ¿cuál es la corrección de errores aquí?"
Me gusta comprometerme a menudo. Ciertamente, en cualquier momento hay un cambio apreciable. Es fácil de esa manera. Si comienzas a compartimentar fragmentos de código e intentas cometer algunos más temprano que tarde, eventualmente te olvidarás de cometer algo muy importante.
En resumen: Comprométase a menudo y SIEMPRE documente el cambio. Cuando haya un cambio ENORME, etiquétalo.
No los comprometas junto con arreglos no relacionados.
Los cometería, pero agregaría una palabra clave predefinida al mensaje de confirmación. Los mensajes con esta palabra clave podrían ignorarse al generar registros de cambios.
Podrías usar un prefijo como [cleanup]
por ejemplo.
[cleanup] Removed some whitespace
[cleanup] Changed format
Fixed some major bug.
[cleanup] Corrected indentation
No te comprometas solo por el bien de la comisión. Usualmente agrego esos para el código en el que estoy trabajando. Por ejemplo, si estoy solucionando un error en el método AI, asegúrate de hacer también todos los cambios estéticos.
En mi opinión, ustedes faltan herramientas de codificación como PMD, JIndent, etc. que se encargan de estos problemas a medida que codifica. Algunos IDE como Netebeans muestran estos "problemas" como advertencias. Así que no es un cambio aleatorio / personal siguiendo las normas.
Si está cambiando el archivo de código, realmente no veo por qué no querría confirmar y compartir esos cambios. Si no lo haces, corres el riesgo de que alguien más los arregle y luego colisione con el tuyo.
Si no son los cambios que otros usuarios desean en el código base, tal vez debería preguntarse por qué dedica tiempo a escribirlos.
Si los cambios se deben a cosas que podrían ser de alguna manera controvertidas (por ejemplo, la posición de los paréntesis), asegúrese de haber acordado un estilo de código con el resto de su equipo. No se limite a cambiarlo a su propio estilo preferido, luego regístrelo. De lo contrario, otra persona podría volver a cambiarlo y verificar sus cambios, y luego lo cambiará a su manera ...