Utilizziamo una libreria fornita da qualcun altro. Di recente a causa di cambiamenti in quella libreria il nostro progetto ha 500 errori. Durante la migrazione alla nuova libreria abbiamo rilevato che solo 15 API non funzionano e 500 errori sono ripetitivi (occorrono più volte 15 errori, poiché le stesse chiamate vengono utilizzate in così tante volte).In questo caso si tratta di un uso eccessivo dell'astrazione?
Così, per la migrazione ho proposto la creazione di un'altra classe wrapper statica interna, che avvolge le chiamate API di libreria. Perché se la biblioteca dovesse cambiare di nuovo avremo meno codice da cambiare e quindi il codice diventa più facile da mantenere in futuro. Inoltre, effettuando il wrapping delle chiamate, evitiamo errori umani (o usi API involontari (sovraccarichi)).
Ma alcune persone qui, non vedono il punto di avere un'altra classe di wrapper, che si ritiene sia totalmente non necessaria. Il loro unico punto di discussione è che, dato che la maggior parte delle modifiche API sono solo una riga, possiamo sempre cambiarle usando CTRL + H (Trova e sostituisci). E dicono anche che questa astrazione in più che sto suggerendo, toglie la leggibilità (come si nasconde la chiamata API reale dietro un altro nome del metodo (anche se significativo)) per il codificatore/lettore.
Che cosa è l'approccio migliore qui? Ho sbagliato con i miei suggerimenti?
Questa non è una cattiva idea. Non lasciare che i nay-sayers ti tradiscano. Se insistono nel rimuovere questa astrazione, la prossima volta * essi * possono essere quelli che risolvono i problemi del compilatore di oltre 500 librerie. – FrustratedWithFormsDesigner
E, utilizzando Trova/Sostituisci sull'intera soluzione, garantisce ore di divertimento per l'intero team .. – SWeko
SWeko: Penso che ci sia uno scherzo qui mi manca. Esiste una situazione in cui una ricerca/sostituzione globale potrebbe causare "ore" di sforzi per più della persona che fa la ricerca/sostituzione? – Ken