2011-02-15 13 views
7

Recientemente eché un vistazo a algún código que había comprometido con nuestro sistema de control de versiones en el trabajo, y encontré que muchos de ellos habían sido reemplazados (está bien) pero la versión anterior todavía estaba allí, comentada.Nombre del anti-patrón de mantener viejo código obsoleto alrededor de

Supongo que el chico se sintió un poco "inseguro" acerca de eliminarlo, y por lo tanto lo dejó allí comentado. Sin embargo, eso no es necesario, ya que estamos usando el control de versiones. (La versión anterior estaba mal, por lo que no es como que va a ser necesario en el futuro.)

Estas preguntas StackOverflow hacer frente a la cuestión de si se aleja del viejo código de esa manera alrededor es una buena idea o no:

Sin embargo, mi pregunta es: ¿hay un término para este tipo de cosas, o un "nombre de anti-patrón" Puedo citar al hablar con mis colegas al respecto?

+0

La pregunta está cubierta bastante bien en http://stackoverflow.com/questions/758279/checking-in-of-commented-out-code – tawman

Respuesta

3

"Litter."

Este es un término que uso personalmente. Hasta donde yo sé, no es un nombre de patrón reconocido. Pero luego, no reconozco ninguno de los otros que figuran aquí. "Litter" comunica el concepto y su valor de inmediato a aquellos que no han leído los nombres lindos y oscuros.

+0

+1 Sí, esa es una buena, gracias! –

1

Lo he visto referido como un "pecado imperdonable" pero no hay un nombre formal que yo sepa.

También podría llevar a Código duplicado, Método largo o Clase grande Code Smells si considera que el código comentado tiene un aroma. (editar de nuevo) En realidad, cuanto más pienso, "malos comentarios" debería ser un olor a código. Código comentado sin ningún tipo de explicación ciertamente no es un "comentario" útil.

+1

No conozco un nombre formal para ella tampoco, sorprendente a medida que sucede mucho en mi experiencia. ¿Por qué la gente hace estas cosas? –

+0

@Robin: si ve que necesita este código comentado de nuevo, es más fácil descomentar que buscar la versión anterior correcta, verifique solo este archivo y vuelva a fusionarlo. Si incluso recuerdas que había una versión anterior. (Esto no es para defender esta práctica, sino simplemente como una respuesta al "Por qué", incluso si no tenía ningún signo de interrogación). –

1

Wikipedia records this anti-pattern under the name Boat Anchor. Aunque no puedo decir que alguna vez encontré ese uso antes de buscarlo en Google.

+0

Es cierto que también me encontré con ese término, ¡aunque nunca había oído hablar de él antes de buscar! Pero, por desgracia, se refiere al código que ya no se llama (pero podría llamarse, en principio, y también podría funcionar), a diferencia del código que se ha comentado (ya que el código tenía un error o algo así). –

+2

Boat Anchor parece referirse al código "en vivo" que no tiene un propósito funcional, al menos dado el ejemplo en la página de Wikipedia (una variable declarada e inicializada, pero nunca hace referencia nuevamente). Creo que hay una sutil diferencia entre eso y el código que simplemente se comenta en bloques. –

2

El Anti Patterns book llama esto al Lava Flow antipattern, en el que el código antiguo no utilizado permanece en la base de código, ya sea que esté o no comentado.

+1

Es cierto, pero creo que hay una diferencia entre el código que aún podría ser invocable (incluso si no lo es) e incluso podría funcionar, y un código que se sabe está equivocado y por lo tanto reemplazado (y, en este antipatrón, todavía incluido en la fuente, comentado.) –

Cuestiones relacionadas