Uma sugestão do "Código Limpo" de Bob Martin me faz coçar a cabeça. "Se uma função chamar outra, ela deverá estar verticalmente próxima e o chamador deve estar acima do chamado"
Até agora, tenho me aproximado mais ou menos das diretrizes .Net, que agrupam os membros da classe por tipo (propriedades, ctors, funções) e visibilidade (public / prot. / Private). A dica parece um problema no começo ... mas "pode funcionar". Pessoalmente, encontrei casos em que gostei desse layout - mais fácil de detalhar quando você está na cadeia de chamadas correta.
A ideia por trás da dica parece sólida, mas outros cenários como "deixe-me ver a interface pública desta classe" podem piorar. Talvez o tio Bob esteja apostando nas classes pequenas e no suporte a IDE para visualizar tipos ...
Alguém já tentou isso por um período prolongado?
Atualização: parece que um trecho de código está em ordem
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... }
}