Siempre trato de seguir el principio DRY estrictamente en el trabajo; cada vez que repito código por flojera, vuelve a aparecer más tarde cuando necesito mantener ese código en dos lugares.
Pero a menudo escribo pequeños métodos (tal vez de 10 a 15 líneas de código) que deben reutilizarse en dos proyectos que no pueden referenciarse entre sí. El método podría tener algo que ver con redes / cadenas / MVVM, etc. y es un método generalmente útil que no es específico del proyecto en el que se encuentra originalmente.
La forma estándar de reutilizar este código sería crear un proyecto independiente para el código reutilizable y hacer referencia a ese proyecto cuando lo necesite. El problema con esto es que terminamos en uno de los dos escenarios menos que ideales:
- Terminamos con decenas / cientos de pequeños proyectos, cada uno para albergar las pequeñas clases / métodos que necesitábamos reutilizar. ¿Vale la pena crear un nuevo
.DLL
solo por un poquito de código? - Terminamos con un solo proyecto con una colección cada vez mayor de métodos y clases no relacionados. Este enfoque es para lo que hizo una empresa para la que solía trabajar; tenían un proyecto llamado
base.common
que tenía carpetas para cosas como las que mencioné anteriormente: redes, manipulación de cadenas, MVVM, etc. Era increíblemente útil, pero hacer referencia a él arrastraba innecesariamente todo el código irrelevante que no necesitabas.
Entonces mi pregunta es:
¿Cómo hace un equipo de software para reutilizar pequeños fragmentos de código entre proyectos?
Me interesa especialmente si alguien ha trabajado en una empresa que tiene políticas en esta área, o que se ha encontrado con este dilema personalmente como yo.
nota: mi uso de las palabras "Proyecto", "Solución" y "Referencia" provienen de un fondo en el desarrollo de .NET en Visual Studio. Pero estoy seguro de que este problema es independiente del idioma y la plataforma.