Faccio una linea di app aziendali in cui tutti gli altri sviluppatori sono abituati a fare applicazioni CRUD di base o sono focalizzati esclusivamente sulla creazione di interfacce graziose / funzionali e sto ottenendo molto da quanto segue.
"Con il modo in cui usiamo per farlo il dipendente avrebbe tutte le cose che potresti fare con un dipendente." Ed era vero. Quella "Classe" conteneva migliaia di righe di codice e qualsiasi cosa si potesse fare con un dipendente era lì. O, peggio ancora, c'era una tabella dei dati dei dipendenti e ogni sviluppatore ha capito come fare ciò che volevano fare nel gestore di eventi.
Tutte le cose cattive su questo approccio era vero, ma almeno lo sviluppatore utilizzando dipendente potrebbero, senza andare ad altri documenti, capire come iscriversi al dipendente in un piano di salute, danno un aumento di paga, il fuoco, il noleggio, il trasferimento ecc Lo stesso vale per il manager e tutte le altre idee importanti. Oppure, se hanno utilizzato l'impiegato altre tabelle di dati necessarie, potrebbero semplicemente fare ciò che volevano.
Sì, c'era molto codice duplicato. Sì, era un codice molto fragile. Sì, testarlo era molto più difficile del necessario. Sì, la modifica della funzionalità è stata la paura di indurre e Copy Paste è stato naturale a causa dell'approccio.
Ma potevano almeno scoprire ciò che era disponibile con la creazione di una classe o che potevano fare quello che devono ottenere fatto senza dover capire la differenza tra le interfacce, classi astratte, classi concrete ecc E non hanno bisogno di cercare qualsiasi cosa diversa dai metodi restituiti da intellisense o conoscere le tabelle in cui i dati risiedevano.
Ho cercato su Google / abbaiato e persino yahoo! d ma non ho trovato alcun riconoscimento di questo problema.
Quindi forse non c'è un problema e mi manca solo qualcosa. Ho tormentato il mio cervello cercando di capire una soluzione in cui lo sviluppatore (s) che non funzionano il reale comportamento / progettazione facilmente può scoprire come fare qualcosa, senza dover fare riferimento a documenti esterni o la scansione dei nomi di classe nelle varie componenti / progetti per trovare quello che sembra funzionerà.
L'unica cosa che sono riuscito a venire in mente è avere questi, in mancanza di un nome migliore, "Tabella di classe di contenuto" che non fa altro che restituire le classi attuali (e in realtà la maggior parte di loro sono interfacce ma non conosciamo la differenza o anche la cura) che altri sviluppatori possono utilizzare per eseguire i compiti effettivi desiderati. Ancora finiscono con classi molto grandi ma non c'è quasi nessun comportamento in loro.
Esiste un modo migliore per non richiedere una conoscenza approfondita del livello intermedio in cui avviene l'effettiva implementazione di SOLID?
Fondamentalmente quello che sto chiedendo è un modo per consentire agli sviluppatori di tipo CRUD di continuare a essere sviluppatori CRUD in un sistema molto complesso