C'è una discussione sul lavoro sull'uso corretto delle interfacce in OOP. Mi è stato insegnato e ho sempre lavorato partendo dal presupposto che le interfacce precedono le concrezioni e che tutti i metodi dovrebbero essere trattati nei contratti. Mi sto disaccoppiando 101.
Ho scoperto che l'applicazione di questo schema insegna universalmente agli sviluppatori junior le corde, mi prepara al successo lungo la strada ("oh, tutto questo è strettamente accoppiato! Non posso usare nulla di tutto questo!"), e prende pochissimo tempo. È semplice (e utile) capire che noi, sempre, trattiamo i contratti.
Un altro collega sta dicendo che l'astrazione dovrebbe essere applicata solo quando ci sono più implementazioni e che farlo tutto il tempo rende le cose confuse per la squadra. Per me, non mi interessa, D è solo confuso all'inizio e diventa rapidamente una seconda natura, e per me è solo il modo corretto di costruire.
Ma volevo raggiungere e vedere se qualcuno poteva fornire alcuni riferimenti / testi di esperti che spiegavano perché o perché no.