Cerco sempre di seguire rigorosamente il principio DRY ; ogni volta che ho ripetuto il codice per pigrizia, morde più tardi quando ho bisogno di mantenere quel codice in due punti.
Ma spesso scrivo piccoli metodi (forse 10-15 linee di codice) che devono essere riutilizzati in due progetti che non possono fare riferimento l'un l'altro. Il metodo potrebbe essere qualcosa a che fare con networking / strings / MVVM ecc. Ed è un metodo generalmente utile non specifico per il progetto in cui si trova originariamente.
Il modo standard per riutilizzare questo codice sarebbe creare un progetto indipendente per il codice riutilizzabile e fare riferimento a quel progetto quando ne hai bisogno. Il problema è che finiamo in uno dei due scenari tutt'altro che ideali:
- Finiamo con decine / centinaia di piccoli progetti - ognuno per ospitare le piccole classi / metodi che dovevamo riutilizzare. Vale la pena creare un
.DLL
completamente nuovo solo per un piccolo pezzetto di codice? - Finiamo con un singolo progetto che contiene una crescente collezione di metodi e classi non correlate. Questo approccio è ciò che una società per cui ho lavorato per fare; avevano un progetto chiamato
base.common
che aveva cartelle per cose come ho detto sopra: networking, manipolazione delle stringhe, MVVM ecc. Era incredibilmente maneggevole, ma riferendola inutilmente trascinava con sé tutto il codice irrilevante di cui non avevi bisogno.
Quindi la mia domanda è:
In che modo il team di un software riesce a riutilizzare piccoli bit di codice tra i progetti?
Sono particolarmente interessato se qualcuno ha lavorato in un'azienda che ha politiche in questo settore, o che ha incontrato personalmente questo dilemma come me.
nota: Il mio uso delle parole "Progetto", "Soluzione" e "Riferimento" provengono da uno sfondo nello sviluppo .NET in Visual Studio. Ma sono sicuro che questo problema è indipendente dalla lingua e dalla piattaforma.