Pregunta

Re-post-Post de StackOverflow:

Estoy trabajando en un pequeño tiempo de desarrollo con un tiempo muy limitado para el desarrollo. Desarrollamos una herramienta que sea importante para el resultado de nuestro trabajo, pero que no se usa a diario. Soy la única persona en el equipo que tiene experiencia como programador.

Mi problema es que he estado presionando para las revisiones de código antes de fusionar el tronco durante más de un año. Todos estuvieron de acuerdo en esto, pero aún así es solo mi código el que ha sido revisado. Volviendo de unas largas vacaciones, vuelvo a una troncal con comentarios de código como "Esta es una solución fea: elimine lo antes posible" y "solución rápida". Lo que también es nuevo es que un tipo ha sido nombrado responsabilidad de la herramienta. (Un papel que primero se me ofreció, pero rechacé debido a una razón no relacionada con el trabajo). Y él piensa que esta es una buena forma de trabajar: como tenemos un tiempo tan limitado para desarrollar, debemos cortar esquinas así.

Mi preocupación es que los otros desarrolladores escriban código feo: a menudo romper la encapsulación, escribir clases enormes, agregar clases internas en lugares extraños, tener pocas o ninguna prueba unitaria, etc. Eventualmente será imposible desarrollar aún más la herramienta.

¿Debo insistir en que realicemos revisiones de código antes de fusionar el tronco o solo soy una perra de calidad de código?

¿Fue útil?

Solución

He estado en situaciones similares antes y en mi humilde opinión depende de "¿Tengo que mantener el código"?

Si tengo que mantener el código, de lo que quiero un código de alta calidad, personalmente no necesito revisiones de código para cada compromiso (es decir, los programadores pueden decidir por sí mismos si cierto código necesita una revisión o no), pero si la legibilidad/mantenimiento sufre que podría estar en orden.

Al leer esto:

Mi preocupación es que los otros desarrolladores escriban código feo: a menudo romper la encapsulación, escribir clases enormes, agregar clases internas en lugares extraños, tener pocas o ninguna prueba unitaria, etc. Eventualmente será imposible desarrollar aún más la herramienta.

Creo que su problema es más grande que solo las revisiones de código. Parece que le faltan algunas pautas y/o no se implementan. Tener sin/pocas pruebas unitarias puede ser una mala idea, pero depende del caso específico. Sin embargo, breaking encapsulation, writing huge classes, ... Realmente haga un código propenso a los errores, por lo que definitivamente debe solucionarse.

Otros consejos

Creo que las revisiones de código y el mantenimiento de algunas pautas de codificación es una buena idea, pero creo que hacerlo para todos y cada uno de los cheques es una pérdida de tiempo. Es una buena idea al establecer un equipo y con programadores jóvenes, pero los programadores experimentados pueden pensar por sí mismos y, finalmente, tendrá que confiar en ellos. Dicho esto: puede hacer las revisiones de código periódico para las cosas frescas, pero mirar todas y cada una de las líneas de código que ingresan a sus VCS realmente está exagerando.

Y un pequeño comentario sobre las correcciones de su colega, algunas veces hacer una solución fea es la solución correcta. Puede ser que este código en particular no sea lo suficientemente importante como para invertir mucho tiempo, puede ser que la solución simple sea lo suficientemente buena y es mejor invertir tiempo en otras cosas. Hacer que su código sea "bonito" no es su objetivo principal como programador. Su objetivo principal es entregar Y obsesionarse con cada línea de código simplemente no lo llevará allí.

Lo que estoy tratando de decir es: necesitas elegir tus batallas. Está bien perder la batalla por una clase de utilidad insignificante para ganar la guerra de entrega (o esta guerra del subsistema realmente importante, para el caso).

Si el programa en cuestión no es un prototipo desechable único, creo que las revisiones de código deberían ser obligatorias para cada registro.

Los desarrolladores senior podrían tener un privilegio de registros no revisados, una vez que son conocidos lo suficientemente concienzudos como para solicitar una revisión cuando sea apropiado.

No estoy seguro de que la revisión del código sea la respuesta hasta que alguien comience a hacer cumplir mejores estándares de codificación. Alguien escribe código de mierda, los comenta/lo admite y lo registra de todos modos. ¿De qué sirve una revisión si alguien quiere rechazar el código, pero lo dejará atrás?

Vas a necesitar: establecer estándares, supervisar a los principales culpables más de cerca y golpear en sus cabezas de que el buen código no siempre toma más tiempo de escritura. Deben dejar de usar plazos como excusa para negarse a cambiar malos hábitos.

Licenciado bajo: CC-BY-SA con atribución
scroll top