Un suggerimento del "Clean code" di Bob Martin mi fa grattare la testa. "Se una volta una funzione chiama un'altra, dovrebbero essere vicini verticalmente e il chiamante dovrebbe essere al di sopra della chiamata"
Finora, sono stato più o meno fedele alle linee guida .Net, che raggruppano i membri della classe per tipo (proprietà, informazioni, funzioni) e visibilità (pubblico / prot. / Privato). All'inizio la punta sembra un problema ... ma "potrebbe funzionare". Personalmente ho riscontrato casi in cui mi è piaciuto questo layout, più facile da analizzare quando sei nella giusta catena di chiamate.
L'idea alla base del suggerimento sembra valida ma altri scenari come "fammi guardare l'interfaccia pubblica di questa classe" potrebbero peggiorare. Forse lo zio Bob punta sulle piccole classi e sul supporto IDE per la visualizzazione dei tipi ...
Qualcuno l'ha provato per un lungo periodo?
Aggiornamento: sembra che uno snippet di codice sia in ordine
class SomeType()
{
/// fields, ctors, et. all
public void Method1() { // calls HelperMethod1 and HelperMethod2 }
private void HelperMethod1 { // calls HelperMethod3 }
private void HelperMethod3 {}
private void HelperMethod2 {}
public void Method2 () { // and so on... }
}