¿Cómo determinar si hay código útil eliminado en el control de código fuente?

9

Entonces estaba leyendo sobre esta pregunta ¿Debería eliminar el código sin referencia?

Algunos de los consejos fueron eliminar el código sin referencia ya que el código está en el control de origen para referencia en caso de que sea necesario más adelante.

¿Cómo organiza este código eliminado para que una versión posterior de usted (o algún otro programador) pueda encontrarlo más tarde? ¿Haces una rama separada o la etiquetas de alguna manera en el control de código fuente?

Nunca he resucitado el código eliminado fuera del control de la fuente antes, principalmente lo he usado para rastrear cambios en el código que aún está activo. He hecho referencia a ramas antes cuando contenían el trabajo experimental de otra persona, así que tal vez esa sea una buena manera de marcar secciones interesantes de código que se eliminan en el tronco.

Peter Smith
fuente
¿Qué vcs estás preguntando? suena como svn
mosquito
svn es lo que tengo en mente, pero creo que podría aplicarse a cualquier control de fuente.
Peter Smith
Usted dice: "Lo que más tengo en mente son proyectos cancelados o pospuestos" en respuesta a una respuesta. Creo que debería editar su pregunta porque es bastante diferente del "código sin referencia".
Pieter B

Respuestas:

6

A menos que esté experimentando en una rama y aún no esté seguro de qué solución se reintegrará en última instancia, generalmente no hace referencia al código eliminado.

Es posible que, en muy raras ocasiones, busque explícitamente el código eliminado que recuerda vagamente para resolver un problema que tiene en este momento . Pero, la razón más típica por la que verá el código eliminado es cuando está revisando el trabajo atrasado para comprender algo sobre el código o comportamiento actual de una aplicación con respecto a su código o comportamiento histórico.

Específicamente, podrías ser ...

  • haciendo una revisión general del código / entendiendo un refactor
  • buscando el commit que introdujo el error X
  • satisfaciendo su curiosidad / buscando el compromiso que resolvió un error
  • volver a implementar una característica o característica similar
  • entender el código o los datos que parecen funcionar junto con el código que no existe

... etc.

Y en esos casos, normalmente no está resucitando el código antiguo. Simplemente está entendiendo algo que ve en este momento usando el código eliminado para contexto u orientación.

svidgen
fuente
4

Supongo que la respuesta es: a la gran mayoría de los programadores no les importa hacer referencia al código eliminado. Por varias razones. Algunas razones que me vienen a la mente son:

  • Probablemente lo más importante, pura pereza ...

  • La mayoría nunca sintió la necesidad de resucitar algún código, por lo que no tienen ninguna experiencia que los motive a facilitar la resurrección del código.

  • La mayoría del código que se elimina se elimina por algún motivo. Por lo general, se reemplaza por otro código mejor, funcionalmente equivalente o más potente. ¿Por qué alguien querría resucitar el código inferior?

    Tenga en cuenta que esto también es un problema psicológico: la mayoría de los programadores están muy orgullosos de los resultados de su trabajo. ¿Cómo podría venir a la mente que todavía había algo de valor en lo que reemplazaron?

  • Dado que la mayoría del código no se elimina por completo, sino que se reemplaza, las interfaces que se han cambiado en la transición proporcionan suficiente información si realmente necesita rastrear el código eliminado debido a algunas regresiones introducidas por el nuevo código.

Pero, independientemente de la cantidad de razones más o menos válidas que puede poner detrás de este desprecio por el código muerto, creo que es realmente un "no me importa" por parte de los programadores. E incluso si intenta marcar cosas eliminadas de alguna manera, prepárese para ser ignorado completamente con ese esfuerzo ...

cmaster - restablecer monica
fuente
Supongo que intentaré responder por qué. Si se reemplaza el código, tiene sentido después de un corto período de tiempo, el código eliminado ya no es realmente necesario. Lo que más tengo en mente son los proyectos cancelados o pospuestos. Particularmente aquellos en los que se desarrolló o cambió una gran cantidad de funcionalidad, pero finalmente no se completó completamente y no se usó en la producción actual.
Peter Smith
1
@PeterSmith: debe crear ramas separadas para dicho código. Entonces no hay necesidad de eliminar el código, ya que de todos modos no existe en la rama de trabajo.
JacquesB
Además de lo que dijo @JacquesB, si tiene algún código que no se utiliza en absoluto, tiende a quedar desactualizado con bastante rapidez. Es posible que pueda revivir una rama muerta después de un año, después de cinco años tendrá que reiniciar desde cero. La rama muerta aún puede ser útil como fuente de ideas, pero es probable que su código ya no sea utilizable.
cmaster - reinstalar a monica el
1

Esta pregunta probablemente recaiga en "¿Cómo mantiene la trazabilidad de sus registros VCS contra la base de datos de errores y los requisitos de su sistema?"

Los momentos en que las personas van a resucitar el código del control de Source tienden a ser aquellos en los que descubres que algo se rompió involuntariamente y necesita ser devuelto.

Lo más importante en ese escenario para alguien que busca un fragmento específico de código eliminado es que puede rastrearlo fácilmente a través de la base de datos de requisitos y la herramienta de seguimiento de errores; porque es probable que estén buscando el requisito específico o palabras que describan la funcionalidad. Es poco probable que sepan el nombre del archivo fuente o la clase / función que se eliminó.

Si desea realizar un seguimiento de algún código interesante / experimental que debe eliminarse antes del lanzamiento, simplemente puede rastrearlo con algunos tickets de "error" en la línea de "Eliminar código no utilizado para ..." . O tal vez introduzca un nuevo tipo de ticket en el sistema para la función Prototipo .

Entonces, para responder la pregunta directamente, no use ramas / etiquetas en su sistema VCS para rastrear el código eliminado, use su herramienta de seguimiento de cambios.

Ben Cottrell
fuente
0

El consejo está dirigido a personas que mantienen código obsoleto en la base de código "por si acaso". Dado que el código seguirá existiendo en el control de código fuente, no debe temer eliminarlo. Realmente no organizas el código eliminado como tal, ya que el punto es que ya no es necesario. Simplemente agrega un mensaje de confirmación que indica qué se modificó y eliminó en la confirmación. El mensaje de confirmación más relevante para el código eliminado es el mensaje en el momento en que se agregó inicialmente el código, no el mensaje cuando se eliminó nuevamente.

El "trabajo experimental" es realmente un tema diferente. Deberías tener una rama separada para eso.

JacquesB
fuente