La mia azienda ha un progetto software abbastanza grande (un paio di milioni di righe di codice distribuite su molti assiemi). Un punto critico che abbiamo costantemente incontrato durante le revisioni del codice è stato con l'uso di classi condivise. Abbiamo diverse classi in un assembly condiviso utilizzato per risolvere problemi comuni che si verificano nel nostro codice. Queste classi potrebbero fare cose come la formattazione di un nome o l'esportazione di un file - operazioni che dobbiamo ripetere in vari punti del programma.
Spesso dobbiamo fallire la revisione del codice perché i programmatori non sono a conoscenza delle classi condivise a loro disposizione, portandoli a reinventare la classe esistente. Ad esempio, un programmatore potrebbe non sapere che esiste una classe progettata per esportare un file secondo le nostre specifiche, quindi scrive la propria versione più specifica. Questo diventa ancora più un problema se la classe condivisa è stata creata di recente e non è ancora utilizzata in troppi posti. I programmatori più esperti passano molto tempo a reinventare le ruote mentre svolgono compiti che, con la piena conoscenza degli assiemi condivisi, sarebbero stati relativamente semplici.
Quali sono alcune tecniche che potremmo provare per diffondere la conoscenza di questi assembly condivisi? Tipica documentazione di codice sembra insufficiente qui, poiché il problema è sapere se una classe esiste in primo luogo. Esistono buoni modi per documentare gli assembly condivisi che consentirebbero ai programmatori di rispondere rapidamente alla domanda "Esiste già una classe nel nostro codice che fa x"? Cosa possiamo fare quando aggiungiamo una nuova classe condivisa per far conoscere agli sviluppatori la classe e incoraggiarne l'uso continuo?