Eu fiz essa pergunta no Stackoverflow e, antes de ser vaiado, recebi a sugestão útil de Péter Török de que esse poderia ser o melhor lugar para publicá-la.
Venho programando em Java há alguns anos. Eu sempre discuti decisões de design com colegas com base no que constitui 'bom estilo'. De fato, há várias perguntas / respostas do StackOverflow que discutem um design com base no fato de algo ser 'bom estilo'.
Mas o que faz 'bom estilo'? Como muitas coisas, eu sei quando a vejo ... mas eu queria ter uma idéia melhor do que apenas minha consciência dizendo que esse design não parece certo.
Quais são as coisas em que você pensa para produzir um código bom e bem projetado?
(Eu reconheço que isso é um pouco subjetivo, pois o que é 'bom estilo' dependerá da tarefa em questão). (Além disso, devo acrescentar que não estou interessado em estilos de equipe - por exemplo, "usamos recuos de 2 espaços em vez de 4" ... e não estou interessado nas convenções de código Java.)
Edit: obrigado por todas as boas respostas / comentários até agora. Estou especialmente interessado em respostas que ajudem a codificar aquelas coisas que fazem a consciência de um programador (e possivelmente o estômago) se mexer?
fonte
Respostas:
Alguns breves pontos:
fonte
Adicionando à lista de Ryan:
xFactoryFactory
aula, está fazendo errado :-)Eu vou parar por aí.
fonte
HammerFactoryFactoryFactory
aula? ;-)Embora aprecie as respostas dos outros, achei justo compartilhar algumas das coisas em que penso ao tentar escrever um bom código:
o que precisa saber sobre essa classe / método / variável? ou seja, onde esse conhecimento deve morar?
como esse código pode afetar a memória / desempenho do meu aplicativo? (Reconheço que 'a otimização prematura é a raiz de todo mal'; portanto, não estou sugerindo que você gaste muito tempo otimizando, mas sim uma consciência enquanto inicialmente escrevia meu código.)
está claro (do código e das estruturas de código) o que isso faz? (Tento seguir a máxima: "Esforce-se para não permitir que as pessoas entendam, se esforce para tornar impossível que as pessoas entendam mal".)
fonte
Leia a classe String e ArrayList para obter excelentes exemplos de programação Java adequada. Mas eles são altamente concisos, quase no estilo C, o que não é necessariamente o melhor para código de manutenção com documentos java mínimos. A prática comum em minha loja é sem comentários, por isso tento comentar por código usando nomes detalhados de camelCase var e uso excessivo de novas linhas para delimitar uma linha de pensamento da outra. Ainda discuto usando guias para separar os vars de seus valores. As guias podem melhorar a legibilidade, IMO, mas apenas quando feitas minimamente e são muito subjetivas. Acho que é realmente sobre o público. Não há melhor resposta aqui.
fonte