Pregunta

He trabajado en dos empresas, en la que cada uno tenía una metodología diferente cuando llegó a las revisiones de código:

En la primera empresa, un código de revisión fue llevada a cabo por los líderes de equipo y se requiere después de la finalización de cada módulo.

Sin embargo, en la segunda empresa, los jefes de equipo no eran necesarios para llevar a cabo cualquier revisiones de código, y la acaba de funcionalidad y problemas de diseño.

Así que estoy confundido.Es el proceso de revisión de código que realmente se necesita?Si es así, ¿por qué?Y si no, ¿por qué no?

¿Fue útil?

Solución 10

Revisión de código: El proceso de revisión del código debe ser un vital Uno para todos, explicaré quién obtiene beneficios debido a la conducción de la revisión del código, así como cuáles son los beneficios que están obteniendo.

1. Beneficios obtenidos por la Compañía debido a la conducción de la revisión del código:Si se realiza una revisión del código frecuente, la compañía puede obtener los productos finales de una manera mucho mejor optimizada que los ayude a obtener el nombre de marca en su mercado y también ayudar a la compañía a obtener o mejorar su actual Cmmi nivel.

2. Beneficios para el líder del equipo debido a la conducción de la revisión del código:Como todos sabemos, un maestro puede identificar fácilmente los errores, porque están revisando las respuestas de sus estudiantes con más frecuencia, para que puedan tener una idea, en las que las áreas pueden ser posibles para cosas incorrectas. Del mismo modo, el líder del equipo también sabe cuáles son las cosas que salen mal en estas áreas. ¿Cómo podemos rectificarlos y también ayudar al líder del equipo a obtener las ideas de noticias del desarrollador junior también?

3. Beneficios para el desarrollador junior debido a la conducción de la revisión del código:El desarrollador junior puede tomar fácilmente las ideas sobre el proceso de revisión del código, también pueden obtener cuál es el estándar de codificación, por ejemplo: para crear API de manera adecuada, aprenderán la estandarización de la codificación que puede ayudarlos en el futuro especialmente cuando se convierten en postes de nivel superior.

Por lo tanto, mi conclusión es que la revisión del código es un proceso muy vital para todos [incluso para el miembro del equipo también], ya que la revisión del código nos ayuda a corregir nuestros errores descuidados en nuestro código, porque todos somos seres humanos, por lo que no podemos predecir que nunca tenemos hacer errores descuidados en el código.

Otros consejos

Personalmente, creo que cada parte de código debe pasar por una revisión de código, no importa si usted es desarrollador junior o senior.

¿Por qué? Para empezar, su título no indica nada sobre cómo se desarrolla, y un desarrollador senior podría aprender algo del junior. En nuestra empresa cambiamos para que uno de los otros miembros del equipo revise su código ... sobre todo estamos en unidos como un "junior" y un senior juntos, por lo que todo lo que no se dice a diario puede ser atrapado en un seguimiento. Si al senior no le gusta el código junior, debe escuchar por qué el junior lo hizo lo que hizo y mirarlo y ver si esa es una solución factible que podría usarse en el futuro ... es cuestión de ser más sabio, no importa quien eres.

Una cosa importante de la revisión del código es no ser demasiado agradable, si está siendo un buen tipo, solo permitirá que más y más un código desordenado evolucionen en el sistema. Justo cuando ayer comencé a reelaborar una solicitud completa que escribió un ex Juniordeveloper empleado, y mi Dios ese Código podría haber necesitado una revisión antes de irse.

No veo por qué debería ser el líder del equipo que solo haga reseñas, pero requiere una persona que no se asienta de elegir una "lucha" por un código mal desarrollado, y tiene que ser una persona a la que se preocupa por cómo debería el código. ser. No todas las compañías contratan personas que realmente se preocupan por lo que hacen, y esos huevos malos no deberían poder hacer revisiones de código, ya que probablemente se encogen de hombros y digan "ok" al código malo.

Básicamente, se necesita revisión del código para todos los programadores, independientemente de la experiencia. Es el control de calidad del desarrollo de software, y una de las razones por las que el código abierto puede ser de muy alta calidad.

Editar: La razón es que un revisor de código hoy está exactamente en el mismo papel que un mantenedor más tarde. Si el código no tiene sentido para él hoy, tampoco tendrá sentido más adelante, lo que hace que los errores sean más caros de solucionar. Por lo tanto, hágalo comprensible hoy, mientras que el desarrollador aún recuerda el código. Además, el revisor puede ver errores u omisiones que el desarrollador se perdió.

Desafortunadamente, muy pocos quieren hacerlo, pero que se ven desde el punto de vista de los negocios, debería ser obligatorio.

Trabajo en un lugar donde la revisión del código ahora es un requisito, pero no era tan poco como hace 3 años. Ha realizado una gran mejora en nuestro código y en la capacidad de los demás para mantener el código más adelante. Incluso los desarrolladores senior y muy experimentado cometen errores que pueden arreglarse de manera fácil y silenciosa en la revisión del código antes de que QA los encuentre o peor antes de que el cliente los encuentre. Además, al menos una persona que no sea el desarrollador orginal es familiar con el código.

A menudo, cuando una organización lo intenta algo nuevo, como lo hicimos con la revisión del código, hay mucha resistencia al cambio. No he visto casi nada de eso (también fuimos estatices de obtener un departamento formal de control de calidad). Con la revisión del código. Se necesita solo una o dos reseñas para ver el valor.

He encontrado nuevas técnicas que no había considerado tanto para hacer una revisión del código del trabajo de otra persona o en revisar mi código. Hemos encontrado problemas de competencia con las nuevas contrataciones relativamente rápido al tener revisiones de código y, lo que es más importante, por cómo respondieron a la revisión del código. Hemos aprendido qué cosas parecen perfectamente claras en este momento en el grueso de la programación de esa sección que no será clara en el mantenimiento. Esto es invaluable. Puede ser que lo único necesario es un comentario de por qué se hizo algo. Hemos encontrado algunos malentendidos fundamentales sobre el diseño de nuestra base de datos que debía corregirse para que un informe tenga la información correcta.

A menudo, lo que he visto en una revisión de código es que, según el acto de explicar algo a otra persona, el desarrollador tendrá una bombilla encendida en su cabeza y se dará cuenta de que hay un error que el revisor no vio.

Y Boy Can Code Review identifica a los programadores de vaqueros que no seguirán ningún estándar ni utilizarán herramientas obligatorias y cuyo código será casi imposible de montainable por cualquier otra persona. Y puede obligarlos a llegar con el programa o salir también.

Las personas más resistentes a la revisión del código son a menudo las personas de las que la organización más necesita deshacerse porque saben en sus corazones que su código no puede aprobar una revisión del código.

Agile Guy diría: "No necesitas una revisión de código, solo haz una programación de pares y escribe buenas pruebas" :)

La revisión de código es una buena forma de difundir conocimientos y buenas prácticas a través de un equipo.En mi experiencia es una buena idea para asegurarse de que todo el código se revisará, y tratar de variar que revisa cuál es el código.

En mi actual equipo de todos' código es revisado por igual, y tanto el programador y el revisor tiene que ser satisifed con el código antes de que pueda ser liberada.Esto se aplica tanto a los desarrolladores senior de ser revisado por los más jóvenes y los desarrolladores, un desarrollador junior revisión de otro, o de otros desarrolladores senior revisar cada uno de los otros.Si el revisor no tiene experiencia o no se siente cómodo en la revisión de cualquier pieza de código, a continuación, se va a un equipo con otro desarrollador (y tal vez también el desarrollador original) para hacer la revisión como un grupo.

He estado en el negocio durante más de 20 años, trabajando para compañías de software y para diferentes empresas y ninguno de estos lugares tenía un proceso de revisión de código. Sin embargo, puedo entender y apreciar los beneficios de tener uno. Esencialmente, según los entiendo, deben usarse para garantizar la adherencia a los estándares, que deben seguirse para que otros puedan mantener más fácilmente el código en el futuro. La legibilidad del código también puede verificarse en un proceso de revisión, ya que este también asegurará que el mantenimiento pueda funcionar de manera efectiva con el código.

Actualmente, trabajo en una pequeña tienda donde soy el desarrollador único. Ocasionalmente hemos traído contratistas para ayudar con la cartera de pedidos. Al menos uno o dos de esos contratistas han escrito un código que no necesariamente cumplió con los estándares de los míos o las empresas, pero funcionó bien y fue al menos algo comprensible. Cuando señalé este problema a la gerencia, no les importaba, solo querían saber si hacíamos lo que les pagamos para hacer. Entonces, supongo que solo depende de la empresa, y si el código limpio y fácil de mantener es el producto deseado, o si solo quieren algo que funcione bien por el dinero.

Obviamente como desarrollador, y uno que tiene que mantener el código, me gustaría trabajar con un código limpio que sigue un estándar de algún tipo, pero no siempre tengo ese lujo, así que hago lo mejor de él y lidiar con lo que tengo , incluso si eso significa tener que reescribir algún código en mi propio estándar.

Las revisiones de código pueden identificar defectos anteriormente en el ciclo de vida del software cuando los problemas son más fáciles (y más baratos) de solucionar. A Smartbear Hemos desarrollado un Herramienta de revisión del código de pares y también han investigado mucho sobre cómo hacer que las revisiones de código sean efectivas. Según los datos de nuestros clientes, los defectos que se encuentran en la revisión del código son 8-12x más baratos para encontrar y arreglar que los defectos encontrados en QA. El ahorro de costos por sí solo hace que la revisión del código valga la pena, pero hay más valor que solo eso. La revisión del código es una excelente manera para que todos en el equipo aprendan y mejoren como desarrolladores de software.

Hay algunas trampas que pueden hacer que las revisiones de código se vuelvan menos efectivas, y parece que su organización está atrapada en una de ellas. Realice la revisión del código sobre el código, no sobre las personas. Los títulos no significan nada en una revisión de código. Apelas a la autoridad (debes hacerlo a mi manera porque soy el líder del equipo) Haz más daño que bien. Enseñe en su lugar. Los ingenieros senior deben explicar por qué debe hacerse su camino, no solo exigir que lo sea. Si está teniendo dificultades para explicar un concepto, también es una experiencia de aprendizaje para usted. Ambos serán mejores desarrolladores por el esfuerzo que realiza.

Creo que el código que revisa todo el código es exagerado. La cantidad de tiempo que lleva revisar todo el código podría pasar mejor en otro lugar. Alterntivley creo que el código crítico y o o las piezas particularmente complejas necesitan una revisión del código, pero ciertamente no todas las líneas de código.

En mi opinión, el código que será utilizado por una empresa, si fue escrito por un desarrollador junior o senior, siempre debe ser revisado. ¿Por qué? Porque ¿y si el código tuviera varios errores? ¿Y qué pasaría si, durante el tiempo se usara este código, el programa se bloqueó? Para evitar que sucedan estas cosas, todo el código debe revisarse antes de su uso.

Pero, ¿qué pasa con esas compañías que no revisan el código? Probablemente sean las compañías que tienen muchos problemas tecnológicos y muchos, como dicen a los consumidores, "se bloquean" ;-).

Así que déjame responder a todas tus preguntas:

  • Sí, el proceso de revisión es necesario.
  • ¿Por qué? Por las razones que dije anteriormente.

¿Cuál es la diferencia con interferir con sus ideas antes de verificar su código (revisión) o luego debido a un error, ser demasiado inteligente/difícil de entender o no seguir las prácticas estándar aceptadas? ¿Es tu ego?

No puede ignorar los méritos de la revisión del código o cualquier otra cosa solo porque está siendo implementado mal por un miembro del equipo menos calificado que no respeta. La revisión del código no es un proceso altamente complejo que solo unos pocos súper programadores son capaces de comprender. No estoy seguro de que haya muchos programadores o escritores profesionales que sean capaces o que tengan tiempo para autoeditarse.

¿Alguna vez ha regresado a una línea de código unos meses después y se ha preguntado qué estaba pensando? Habría una mejor oportunidad de atraparlo con una revisión de código. Solo lo atrapaste y eres solo un poco mejor que el programador que estabas hace un tiempo, espero.

OMI Una revisión de código debe ser esencial para todos los desarrolladores, pero Solo cuando las personas que hacen la revisión son competentes. En el pasado he rechazado el código en una revisión porque, no es broma, lo seguí SOLID, hizo alguna inyección de dependencia y se organizó el código en espacios de nombres y carpetas de acuerdo con el diseño lógico, e incluía un pequeño conjunto de pruebas unitarias para verificar el código. El código fue rechazado como "demasiado complicado" y me dijeron que usara una clase que acabara con todo y eliminó las pruebas porque no era como la compañía escribió el código.

Una revisión de código como esa no tiene valor, pero una revisión de código con un equipo competente a menudo puede iluminar algo sobre el diseño (por ejemplo, por qué debe hacer x e y pero no z) o indicar una falla real (por ejemplo, hacer x hará que Y falle por razones incorrectas).

Por supuesto que la revisión del código no es necesario. Por otra parte, tampoco son las pruebas, la integración continua, el control de la fuente, la participación del cliente, el perfil, el análisis estático, el hardware decente, las compilaciones de un solo clic, el seguimiento de errores, la lista continúa.

Junto con las revisiones de código, las cosas que menciono anteriormente son herramientas que ayudan a garantizar la calidad del software. Con una combinación de habilidad, suerte, tiempo y determinación; tú pueden entregar software de calidad sin nada de esto, pero es más probable que usted no.

En su escenario, no hay nada de qué confundirse. No todas las organizaciones se entregan a todas las mejores prácticas. Pueden estar en desacuerdo con él, puede entrar en conflicto con una mejor práctica diferente que implementan, o pueden considerar que la sobrecarga de implementarlo es demasiado grande para ellos en este momento. Dependiendo de sus circunstancias, pueden ser correctos al hacerlo, o pueden estar haciendo una economía falsa. Para algunas herramientas, (por ejemplo, control de fuente) la relación de recuperación/esfuerzo es tan buena que usarla es obvia; Para otros está menos claro.

No hay duda de que la revisión del código es una práctica que introduce una sobrecarga significativa. Debido a esto, las organizaciones buscarán minimizar esa sobrecarga, ya sea al no hacerlo en absoluto, o solo hacerlo en ciertas situaciones (por ejemplo, para un miembro del equipo junior o un cambio particularmente peludo). No siempre es obvio que pague más (al atrapar errores, reducir la deuda técnica o compartir el conocimiento) de lo que cuesta. La mayor parte de esa recuperación es difícil de cuantificar, mientras que es muy fácil contar la cantidad de horas hombre que su organización gasta haciendo revisiones. El bit más fácil de cuantificar (recuento de errores reducido) es fácil de atribuir a otros factores (por ejemplo, "por supuesto, tiene menos errores, es más maduro").

Hacemos un juego de fútbol en línea en Turquía. Muchos usuarios y maestros de juegos nos ayudan a la funcionalidad. También dan comentarios sobre las características necesarias. Así que creo que si tienes muchos usuarios, se pueden hacer pruebas de funcionalidad para ayudar o obtener insignias. La colobración de desarrolladores, maestros de juegos y usuarios con foros, equipos de apoyo y entornos de prueba privados crean un proyecto social.

Se necesita revisiones de código y compartir experiencias entre el equipo de desarrollo, pero si no es crítico, no tiene que forzarse.

Creo que cuán detallada es la inspección del segundo partido depende de su ciclo de vida, ya sea más ágil o más cascada en sus procesos. Creo que es razonable hacer diseños/inspecciones de alto nivel, así como más inspecciones de diseño de nivel de detalle. Creo que también es bueno involucrar a varios miembros de un equipo para inspeccionar.

Son absolutamente necesarios ya que tienen poca experiencia.

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