
Esta é uma tradução da
publicação de Michael McKee. Michael é um programador profissional que, de tempos em tempos, compartilha sua experiência e habilidades com colegas, tanto iniciantes quanto profissionais.
A maioria dos programadores é a última a pensar na estética do código que cria. Obviamente, quase todo mundo segue as regras gerais. Mas e se formos mais longe? Um bom código deve funcionar em primeiro lugar. Mas acredito que ele deve ter seu próprio estilo, isso se aplica não apenas ao conteúdo, mas também à forma.
A Skillbox recomenda: Curso anual prático "Desenvolvedor PHP do zero ao PRO" .
Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".
Este não é realmente o caso. Aqui estão alguns dos problemas que todos os programadores iniciantes autodidatas enfrentam. Existem vários artigos e notas sobre isso, mas quero lhe mostrar como criar o código visualmente para que ele não apenas esteja correto, mas também tenha uma boa aparência de fora. Acredito que a auto-expressão é possível não apenas nas artes visuais - pode ser feita sempre e em qualquer lugar.
A organização do trabalho, bem como sua forma visual, é muito importante para mim. O Ruby é uma ótima opção para uma linguagem de programação, como se fosse feita especialmente para atender aos meus requisitos, porque nos permite fazer o que queremos sem problemas. É flexível, elegante e lógico.
Vamos olhar para este exemplo.

Até um programador iniciante entenderá o que está errado aqui. É apenas doloroso olhar para este código. Mas a versão corrigida, que já parece melhor.

Ufa! Muito melhor Agora vemos o que pertence e como. Mas esse código pode ser melhorado. A declaração de attr_reader e attr_accessor pode ser ainda mais expressiva.

Declarar cada novo atributo com uma nova linha é muito mais fácil de ler. Agora, temos uma lista de atributos que são atribuídos a cada acessador. Você pode ir mais longe.

Aqui já é fácil entender onde existe apenas a possibilidade de ler, onde - tanto a leitura quanto a escrita.
Vamos agora ver a próxima parte desta classe - o método de inicialização. Você pode fazer muitas coisas aqui.

Em princípio, lemos o código, tudo parece estar bem. Mas você pode fazer melhor.

Se você colocar todos os operadores de atribuição em uma coluna, isso resultará muito bem. Observando esse código, é fácil dizer o que, como e por que funcionará.
Vamos ver como o InvoiceItem inteiro ficará agora.

Agora temos uma aula que é fácil de ler e entender rapidamente. As atribuições são fáceis de selecionar, os acessadores de atributos são fáceis de usar.
Que outras opções de otimização existem para o nosso código? Na maioria dos casos, no início da aprendizagem de programação, escrever testes pode causar problemas devido à falta de conhecimento. É desperdiçado tempo criando dados falsos. Isso não é terrível, mas em muitos casos, leva à criação de grandes matrizes de texto de difícil leitura. Vamos olhar para isso.

Oh, droga! Aqui, no início, um novo repositório é criado para armazenar classes de transação. Existem três deles, cada um é usado para teste, caindo em um hash para uso posterior. Além disso, a classe que vamos criar exige muitos atributos. Cada um deles tem um nome e significado bastante longos. O que pode ser aprimorado para tornar o código com boa aparência?
Tudo é simples.

Quebramos cada um desses hashes com quebras de linha a cada nova declaração de valor. Além disso, o mesmo método foi usado na otimização do InvoiceTeam. Agora, no editor, você pode ver facilmente todos os dados de teste em um campo de visão bastante restrito. Podemos ver os valores das chaves. Se necessário, eles podem ser alterados sem rolar para frente e para trás.
Uma estratégia semelhante pode ser usada quando trabalhamos com um grande número de atributos.

Nesse caso, não vemos toda a estrutura do código, pelo menos na área de visualização atual. Para ver os atributos, você precisa rolar constantemente, o que não é muito conveniente. Vamos corrigir da mesma maneira que fizemos acima, no exemplo de hash.

Lemos o novo código - e muito mais amigável ao ser humano, se assim posso dizer. Vemos claramente todos os atributos e atribuições. A depuração possível está ficando mais fácil. Algo pode dar errado e, em seguida, descobrir o que e por que não funciona será difícil se você não colocar o código com uma aparência "bonita".
Quando escrevemos programas, não devemos esquecer: é importante não apenas que eles funcionem corretamente, mas também que o princípio de seu funcionamento seja claro para os colegas, se necessário. O código deve ser lógico, dividido em parágrafos, frases e seções estruturais.
Bem e no final - meu exemplo favorito para Ruby. Vamos dar uma olhada.

Vamos pegar cada elemento dos animais e aplicar o método de capitalização. Parece bom, mas ainda melhor é que o código pode ser reduzido um pouco e tornado mais legível para os seres humanos.

Um método semelhante funciona em muitos casos e eu recomendo usá-lo sempre que possível.
Em geral, o artigo pode ser chamado de trivial, mas oferece ao iniciante a oportunidade de entender a beleza do código. Ou seja, o código em si deve não apenas estar funcionando, mas também ser compreensível - mesmo que o programa seja escrito apenas para você. Se você desenvolver o hábito de criar um código bonito e funcional, ele poderá ajudar seu crescimento profissional.
A Skillbox recomenda: