Nella mia sede di lavoro ho notato una cosa strana in cui gli sviluppatori includeranno librerie di grandi dimensioni per fare cose semplici. Per essere chiari siamo un negozio di Scala. Ecco due esempi:
1) In un progetto facciamo l'analisi CSV che era in origine una funzione a 3 linee. A causa del creatore di CSV che non ha generato in modo coerente il formato corretto, questo è cresciuto fino a coprire vari casi d'angolo. Uno sviluppatore junior ha deciso di introdurre in scala-csv la descrizione dei formati CSV e una classe Exception. Non ha integrato l'analisi di CSV per utilizzare la libreria fino a quando non viene richiesta. Poiché avere due modi per analizzare CSv in un sistema è stupido, abbiamo scelto di utilizzare la libreria.
2) Uno sviluppatore senior acquistato in uno scala wrapper per il tempo di Joda per la sua capacità di ordinare. Questo è stato usato in un caso isolato. Quando viene richiesto di rimuovere o integrare completamente la libreria, l'unica scusa fornita era "beh, potremmo averne bisogno in seguito". Alla fine la libreria è stata rimossa.
Sebbene entrambe le storie siano diverse, evidenziano una strana mentalità di includere solo le librerie complete per le funzionalità di utilità. In entrambi i casi ho dovuto intervenire e insistere che ci integriamo con la libreria e usiamo la sua funzionalità di base o la rimuoviamo.
La mia domanda è se la mia insistenza sull'usare o meno le funzionalità offerte da una libreria completa o non includerla / far crearsi un cattivo approccio? La mia preoccupazione è che portare una libreria in giro per la funzionalità di utilità aggiunge solo problemi di dipendenza senza alcun beneficio. Ad esempio, la versione di Joda della libreria wrapper corrisponde alla nostra?