¿Cómo puede obtener críticas constructivas por su código?

8

Mi equipo rara vez revisa el código, principalmente porque no tenemos suficiente tiempo y las personas carecen de la energía y la voluntad para hacerlo. Pero realmente me gustaría saber qué piensan las personas sobre mi código cuando lo leen. De esta manera, entiendo mejor cómo piensan otras personas y adaptan mi código en consecuencia para que sea más fácil de leer.

Entonces mi pregunta es, ¿cómo puedo obtener críticas constructivas para mi código? Mi intención es entender cómo piensa la gente para que pueda escribir código más legible.

quemado
fuente
55
Hacer revisiones de código. Invita a otras personas a revisar tu código.
Finalizado el
44
Intercambio de pila de revisión de código . Lea detenidamente las preguntas frecuentes del sitio antes de publicar sus preguntas.
Yannis
2
Si nada más funciona, lea el código que escribió hace un tiempo _ su antiguo código se verá como si alguien más lo hubiera escrito, lo que lo hará objetivo.
SuperM
1
¿Quieres decir positivo o constructivo ?
Blrfl

Respuestas:

8

Después de haber trabajado en lugares con revisiones de códigos y sin ellas, se ha convertido en uno de mis problemas decisivos al buscar un nuevo empleo. El tiempo que ahorra evitando emergencias porque los problemas no surgieron hasta que llegó a pinchar es mucho mayor que el tiempo que pasa en la revisión del código. Y eso no menciona cuánto menos estresante es encontrar un problema en la revisión de código.

Sin embargo, podrías comenzar de a poco si el equipo necesita ser convincente. Como le gustaría revisar su código, comience allí. Pídale a uno o más de sus colegas que se reúnan con usted durante una hora más o menos y repasen algunas partes del código sobre las que cree que desea recibir comentarios. Si la retroalimentación es en gran medida negativa, no te pongas a la defensiva. Realmente tome notas y considere hacer los cambios sugeridos. Pero hágalo en algo que aún no ha enviado a pinchar (o, francamente, no hará los cambios). Incluso puede hacerlo informalmente en su escritorio, simplemente llame a alguien y diga: "Oye, no estoy seguro de tener la mejor solución aquí, ¿qué te parece?"

Otra forma de lograr que las personas empiecen a ver el valor de la revisión del código es tener una sesión semanal en la que todos tengan que presentar un código para su revisión (o rotar a cada persona pero solo una por semana, dependiendo de la complejidad del tipo de código que necesita revisión). ¡Trae donas o bagels la primera vez! Si las personas se sienten incómodas al decirle a alguien en persona o si cree que las personas estarán demasiado a la defensiva, pídales que envíen un correo electrónico al jefe y que consolide los comentarios para que la persona que se está revisando no sepa quién dijo qué sobre el código. Francamente, prefiero saber en persona quién dijo qué porque mi propia evaluación de sus propias habilidades de codificación me ayudará a decidir qué tan en serio debo tomar las críticas.

Si no puede encontrar a alguien para que revise su trabajo en código, siéntese consigo mismo e intente explicar el código y por qué está haciendo lo que está haciendo como si alguien estuviera allí. Estoy sorprendido de la frecuencia con la que la persona que construyó el código encontró el problema al explicar para qué era el código. También ayuda a sentarse con su documento de requisitos como una especie de lista de verificación y asegurarse de que no le falta algo requerido.

HLGEM
fuente
Probablemente tenga que comenzar poco a poco como dijiste porque muchos compañeros de trabajo clave a los que admiro están demasiado ocupados con los plazos / problemas de producción. Su última solución alternativa de sentarme solo y explicar cómo mi propio código parece ser lo mínimo que puedo hacer a continuación. Es una buena idea y recuerdo haberlo leído una vez como la depuración del pato de goma. es.wikipedia.org/wiki/Rubber_duck_debugging
burnt1ce
5

Ninguna herramienta sofisticada, en mi opinión, podría reemplazar sentarse con un desarrollador o arquitecto senior y recorrer el código (o su código, y ver lo que hicieron de primera mano). Dicho esto, descubrí que el código de prueba de unidad te obliga a pensar de forma reutilizable, también te obliga a incorporar patrones que podrían hacer que tu código sea más legible (con el beneficio adicional de un código mejor probado).

abellina
fuente
1
Las pruebas de unidad de IMHO te obligan a pensar de una manera comprobable, nada más y nada menos. La gente a menudo afirma que esto hará que el código sea más reutilizable, pero en mi opinión eso es una especie de leyenda urbana.
Doc Brown
Aquí están mis dos centavos, y mi razonamiento detrás del aspecto de reutilización: la mayoría de las pruebas unitarias que he realizado tratan en algún momento con objetos simulados. Esto lo obliga a pensar en cómo probar su software más adelante, pero también lo ayuda a pensar en las interfaces entre sus objetos. Estas interfaces a su vez, qué objeto simulado falsificaría, en mi humilde opinión podría llevarlo a la ruta de un código más reutilizable (sin embargo, esto es una especie de arte). Si puede diseñar claramente interfaces lean, podría burlarse fácilmente y, a su vez, obtener un mejor código.
abellina 01 de
2

¿Tienes buenas herramientas para las revisiones de código? Tuvimos un problema similar en mi grupo. Me tomé un tiempo para instalar un servidor de Reviewboard , y la participación en las revisiones de código aumentó . He descubierto que a la gente le gusta comentar sobre el código cuando es fácil.

Ben
fuente
2

Realmente debería considerar tomarse el tiempo para hacer revisiones de código, porque en mi experiencia vale la pena el esfuerzo con respecto a la calidad de su código. Si la revisión de código no es una opción en su equipo y desea comprender cómo piensan las personas, tal vez la programación de pares sea una opción para usted. Obtiene comentarios inmediatos sobre lo que está escribiendo, algo así como una revisión instantánea.

Benni
fuente