Quando lavoro sul codice, devo affrontare molte delle stesse sfide che i miei compagni di squadra fanno, e ho scritto alcune utili funzioni e classi, e anche loro. Se c'è una buona comunicazione, sentirò parlare di qualcosa di eccezionale che qualcuno ha messo insieme, e sei mesi dopo, quando ne avrò bisogno, me lo ricorderò e chiamerò quella funzione, risparmiando tempo. Se non me lo ricordo, o non l'ho mai saputo, probabilmente reinventerò la ruota.
Esiste una pratica particolare per documentare questo tipo di cose? Come li rendi facili da trovare?
Se la tua squadra non ha tale documentazione, come fai a sapere se la tua ruota esiste già?
MODIFICARE:
Finora tutte le risposte tranne una hanno a che fare con una situazione ideale, quindi vorrei riassumere quelle soluzioni: documentazione e comunicazione; wiki, stand-up meeting, ecc. Queste sono tutte cose fantastiche, ma si affidano ai programmatori che hanno il tempo (e le competenze) di scrivere la documentazione e partecipare alle riunioni e prendere appunti e ricordare tutto.
La risposta più popolare finora (quella di Caleb) è l'unica che potrebbe essere utilizzata da un programmatore incapace di documentazione e riunioni e che fa solo una cosa: la programmazione. La programmazione è ciò che fa un programmatore, e sì, un grande programmatore può scrivere documentazione, unit test, ecc., Ma ammettiamolo: la maggior parte di noi preferisce programmare alla documentazione. La sua soluzione è quella in cui il programmatore riconosce il codice riutilizzabile e lo estrae nella propria classe o repository o altro, e dal fatto che è isolato, diventa reperibile e facilita la curva di apprendimento per usarlo ... e ciò è stato realizzato mediante la programmazione.
In un certo senso la vedo così: ho appena scritto tre funzioni e mi viene in mente che qualcun altro dovrebbe conoscerle. Potrei documentarli, scriverli, annunciarli in una riunione, ecc. - cosa che posso fare, ma non è la mia forza - o ... Posso estrarli in una classe, nominarlo bene, farli funzionare come una scatola nera e incollala dove vanno gli altri file di classe. Quindi una breve email che lo annuncia è facile. Altri sviluppatori possono eseguire la scansione del codice e comprenderlo meglio di quanto potrebbero utilizzare una funzione isolata utilizzata nel codice che non comprendono appieno: tale contesto viene rimosso.
Mi piace perché significa che avere una serie di file di classe ben denominati, con metodi ben nominati, è una buona soluzione che si ottiene con una buona programmazione. Non richiede riunioni e attenua la necessità di una documentazione dettagliata.
Ci sono altre idee in questa vena ... per sviluppatori isolati e costretti a perdere tempo?