"Ten cuidado con compartir"
Consejos de programación para #programadores.
-----------------------------------------------------------------------
LIBRO: 97 COSAS QUE TODO PROGRAMADOR NECESITA SABER.
POR: KEVLIN HENNEY.
-----------------------------------------------------------------------
7° "TEN CUIDADO CON COMPARTIR":
Fue mi primer proyecto en la empresa, acababa de terminar mi carrera y estaba ansioso por probarme a mí mismo quedándome hasta tarde todos los días pasando por el código existente. Mientras trabajaba en mi primer largometraje, tuve especial cuidado en poner en su lugar todo lo que había aprendido: comentar, iniciar sesión, extraer código en bibliotecas dónde me fuera posible, etc. La revisión del código que tanto me había parecido listo vino como un rudo despertar: ¡la reutilización estaba mal vista!.
¿Cómo podría ser ésto? A lo largo de la universidad, la reutilización se presentó como el epítome de ingeniería de software de calidad. Todos los artículos que había leído, los libros de texto, los profesionales de software experimentados que me enseñaron: ¿estaba todo mal?.
Recomendado por LinkedIn
Contexto.
El hecho de que dos partes muy diferentes del sistema ejecutaran alguna lógica de la misma manera significó menos de lo que pensaba. Hasta que saqué ésas bibliotecas de código compartido, éstas partes no dependían unas de otras.
Cada una podría evolucionar de forma independiente. Cada una podría cambiar su lógica para adaptarse a las necesidades del entorno empresarial cambiante del sistema. Ésas cuatro líneas de código similar fueron accidentales: una anomalía temporal, una coincidencia. Es decir, hasta que llegué a las bibliotecas de código compartido que creí ataron los cordones de los zapatos de cada pie al otro.
Los pasos de un dominio comercial no se pueden realizar sin sincronizar primero con el otro. Costes de mantenimiento en aquellas funciones independientes utilizadas son insignificantes, pero la biblioteca común, requería un orden de magnitud más pruebas.
Si bien había disminuido el número absoluto de líneas de código en el sistema, tenía aumento el número de dependencias. El contexto de éstas dependencias es crítico: si hubieran sido localizadas, el intercambio podría haber estado justificado y algún valor positivo. Cuándo éstas dependencias no se mantienen bajo control, sus diez brocas enredan las preocupaciones más grandes del sistema, aunque el código mismo se ve bien.
Éstos errores son insidiosos porque, en el fondo, suenan como una buena idea. Cuando se aplican en el contexto adecuado, estas técnicas son valiosas. En el contexto equivocado, aumentan el costo en lugar del valor. Al entrar en una base de código existente sin conocimiento de dónde se utilizarán las distintas partes, yo diría que se tendría que tener más cuidado en éstos días con lo que se comparte.
Cuidado con la cuota. Revisa tu contexto. Y sólo entonces, procede.
-Udi Dahan-