Me resulta frustrante cuando edito un archivo en el árbol fuente porque algún símbolo que estoy trabajando aparece en el archivo fuente (por ejemplo, un nombre de función, donde acabo de cambiar el prototipo o, por desgracia, más típicamente, acaba de agregar el prototipo a un encabezado), así que necesito verificar que el uso sea correcto, o el compilador ahora me dice que el uso en ese archivo es incorrecto. Entonces, edito el archivo. Luego veo un problema: ¿qué está haciendo este archivo? Y resulta que aunque el código es 'usado' en el producto, realmente no se usa activamente en absoluto.
Encontré una incidencia de este problema el lunes. Un archivo con más de 10.000 líneas de código invocó una función 'extern void add_remainder (void);' con un argumento de 0. Entonces, fui a arreglarlo. Luego miré el resto del código ... Resultó que era un componente de desarrollo de hace unos 15 años que nunca se había eliminado. Limpiar el código de forma limpia resultó con ediciones menores en más de media docena de archivos, y aún no he resuelto si es seguro eliminar la constante de enumeración de la enumeración por si acaso. Temporalmente, que está marcado como 'Sin usar/Obsoleto, ¿se puede eliminar de forma segura?'.
Ese trozo de código ha tenido cobertura de ensenada cero durante los últimos 15 años - producción, prueba, ... Verdaderamente, es solo una pequeña parte de un vasto sistema - en porcentaje, es menos de un 1% de destello en el gráfico. Aún así, es un código extra desperdiciado.
desconcertante. Molesto. Es terriblemente común (he registrado y solucionado al menos media docena de errores similares hasta el momento).
Y una pérdida de mi tiempo, y el tiempo de otros desarrolladores. El archivo había sido editado periódicamente a lo largo de los años por otras personas que hacían lo que yo hacía: un trabajo completo.
¿Realmente aumenta el tamaño binario? Para una biblioteca enlazada dinámicamente, no creo que lo haría. – Alex
no lo haría, la contaminación del espacio de nombres es un infierno, aunque – MahdeTo
¿Qué tal con la vinculación estática? – Alex