In generale, evito di reinventare la ruota se la funzionalità che desidero, o qualcosa di simile ad essa, esiste nella libreria standard della lingua che uso.
Tuttavia, se devo incorporare librerie di terzi, è un appello di giudizio a seconda di quanto ampiamente usata e stimata sia la biblioteca. Voglio dire, stiamo parlando di Boost o Bob's Kick-ass String-Parsing Tools 1.0?
Anche se la biblioteca è generalmente ben nota e apprezzata in tutto il settore, è ancora una dipendenza di terze parti . I programmatori generalmente pongono un'enfasi significativa sulle virtù del riutilizzo del codice, mentre spesso sorvolano il pericolo delle dipendenze. Un progetto con troppe dipendenze di terze parti probabilmente cadrà a lungo termine mentre lentamente si trasforma in un incubo di manutenzione.
Quindi sfruttare il codice esistente è buono , ma le dipendenze sono cattive . Sfortunatamente, queste due affermazioni sono in contrasto tra loro, quindi il trucco sta cercando di trovare il giusto equilibrio. Ecco perché è necessario identificare dipendenze accettabili . Come ho detto, qualsiasi cosa nella Libreria standard della lingua è molto probabilmente una dipendenza accettabile. Passando da lì, librerie che sono altamente considerati in tutto il settore sono generalmente accettabili (come Boost per C ++, o jQuery per Javascript) - ma sono ancora meno desiderabile della libreria standard, perché non tendono ad essere meno stabile di librerie standardizzate .
Per quanto riguarda le librerie che sono relativamente sconosciute, (ad esempio l'ultimo caricamento su SourceForge), si tratta di dipendenze estremamente rischiose, e generalmente consiglierei di evitarle nel codice di produzione, a meno che tu non abbia abbastanza familiarità con il codice sorgente per mantenerle tu stesso.
Quindi è davvero tutto un atto di bilanciamento. Ma il punto è che basta dire alla cieca "Riutilizzare il codice bene! Reinventare la ruota è male!" è un atteggiamento pericoloso. I vantaggi di sfruttare il codice di terze parti devono essere valutati rispetto agli svantaggi dell'introduzione delle dipendenze.