Ci sono alcuni modi per farlo.
Primo modo, usa le tue funzionalità linguistiche. In Java è possibile utilizzare funzionalità come Abstract, Final, Public, Private, inheritance, interfacce, delegati, eventi. Ciò impedirebbe loro di incasinare il codice a livello di object oriented. Potresti fare un ulteriore passo avanti e implementare modelli di design. Modelli progettati sono stati adattati negli anni '90 da programmatori, ma prima sviluppati da un architetto il cui nome era Alexander Christopher. Gli schemi di progettazione hanno il strong vantaggio di definire il design del codice e di imporre una struttura di progettazione. Leggi l'articolo la banda di quattro. Esiste anche un sito in cui sono implementati diversi modelli di progettazione.
A livello di classe, potresti usare cose come getter e setter, che dovrebbero ripulire il codice e renderlo più gestibile. Comunica al tuo team in generale di usare prefissi per i nomi delle funzioni, come get, set, is (per restituire booleani).
Ho letto da un libro chiamato "codice pulito" che dovresti usare fino a 20 funzioni in una classe e ogni classe dovrebbe essere classificata per funzionalità. Anche il numero di linee nella funzione dovrebbe essere limitato. Quindi, perché non dire alla tua squadra di seguire tale politica?
Insegna al tuo team di scrivere codice più breve se puoi, usa le espressioni trache invece di if, usa switch invece di molti if e else, usa ricorsione invece di alcuni cicli, fai loop mentre invece loop while. Evita l'uso di etichette in loop, evita molte istruzioni di condizione in ifs o loop, evita loop lunghi (commenta alla fine del ciclo di parentesi se il ciclo è lungo), evita molti cicli annidati.
Per riassumere, imponi un modello su tutta la progettazione del codice attraverso classi astratte, interfacce di eredità e schemi di progettazione generali. Usa le funzioni short ben denominate, raggruppale per classe, permette di usare i giusti accessor (cerca di usare accessor insoliti come 'final', 'sealed'), usa getter e setter, in quanto sono anche un mezzo per il controllo del codice. Cerca di indirizzare e commentare come scrivere un flusso di controllo pulito, breve ed efficace. Usa l'API in più poiché offre funzionalità predefinite, non provare a trovare le tue funzionalità in quanto comporterà più codice, che è anche meno testato.
* Sono stato in una situazione di codice disordinato troppe volte per sapere cos'è il codice pulito!