Pregunta

¿Cómo definiría " código no deseado " ;?


Editar:

En mi humilde opinión, cualquier miembro de código con 0 miembros llamantes activos (marcado recursivamente) es un código no deseado. (funciones, métodos, propiedades, variables son miembros)

¿Fue útil?

Solución

0 llamadas activas y sin posibilidad de uso en un futuro próximo. Y prefiero nunca comentar nada en caso de que lo necesite más adelante, ya que uso SVN (control de fuente).

Otros consejos

Aquí está mi definición de código no deseado :

  • Un código que no se ejecuta es un peso muerto. (A menos que sea una carga útil [maliciosa] para su código real, pero esa es otra historia :-))
  • Un código que se repite varias veces aumenta el costo del producto.
  • Un código que no puede ser probado en regresión está aumentando el costo del producto también.

Puede eliminar dicho código o refactorizarlo, pero no desea mantenerlo tal como está.

Como dijiste en el otro hilo, el código que no se usa en ningún lugar es prácticamente no deseado. En cuanto a cómo encontrarlo, sugeriría FindBugs o CheckStyle si estaba utilizando Java, por ejemplo, ya que estas herramientas verifican si una función se usa en algún lugar y la marca como no utilizada si no lo es. Muy agradable para deshacerse de peso innecesario.

Bueno, poco después de pensarlo, se me ocurrieron estos tres puntos:

  • puede ser un código que debería ser refactorizado
  • puede ser un código que no se llama más (restos de versiones anteriores)
  • puede ser un código que no se aplica a su guía de estilo y forma de codificación

Apuesto a que hay mucho más, pero así es como definiría un código no deseado.

En java marcaría el método o la clase con @Deprecated.

Cualquier miembro de código PRIVADO sin miembros de llamada activos (verificado de forma recursiva). De lo contrario, no sabe si su código no se usa fuera del análisis de su alcance.

Algunas cosas ya están publicadas pero aquí hay otra: Funciones que casi hacen lo mismo. (solo un pequeño cambio de variable y, por lo tanto, todas las funciones se copian y se pega esa variable)

Por lo general, le digo a mi compilador que sea lo más molesto posible, que recoge el 60% de las cosas que necesito examinar. Las funciones no utilizadas que tienen meses (después de verificar con el VCS) generalmente se eliminan, a menos que su autor me diga cuándo se utilizarán realmente. Los prototipos que faltan cosas también son sospechosos al instante.

Creo que tratar de implementar la limpieza doméstica automatizada es como tratar de hacer un dispositivo USB que garantice que juegues de forma "segura" ruleta rusa .

La parte más difícil de verificar son los componentes agregados al sistema de construcción, pocas personas se dan cuenta de eso y los kludges no utilizados se quedan para recoger musgo.

Más allá de eso, normalmente QUIERO el código, solo quiero que su autor lo refactorice un poco y haga que su estilo sea el mismo que el resto del proyecto.

Otra herramienta útil es doxygen , que le ayuda (visualmente) a ver las relaciones en el árbol de origen. Sin embargo, si está configurado para no extraer símbolos / objetos estáticos, no será muy exhaustivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top