Não force suas partes íntimas no meu rosto

Acho que devemos escrever código para o leitor . Ou seja, o pobre colega que deve entender nossa intenção .

Nunca li uma única classe em que os campos ou propriedades privadas desempenham um papel crucial na minha compreensão dessa classe.

Normalmente visito uma classe pelos seguintes motivos:
– Conhecer o valor de uma constante estática e obter uma visão geral deles
– Ler o construtor (ou as etapas de configuração / inicialização) para identificar as pré-condições que a classe pode impor a mim (vergonha !)
– Aprofundar meu entendimento de como a API pública funciona, especialmente para métodos com nomes ligeiramente obscuros e para identificar efeitos colaterais
– Tenha uma ideia das propriedades / campos / getters / setters públicos

No entanto, não me interessa ler os detalhes dos métodos auxiliares privados, ou constantes privadas ou campos. É por isso que eu acho que você deve declarar suas classes desta forma:
– Tipos de dados públicos, enumerações e constantes
– Métodos estáticos
– Construtores e inicializadores
– Métodos públicos
– Todas as suas coisas privadas, de preferência na ordem que mais provavelmente me interessa como leitor