Propaganda
Sem dúvida, a programação é difícil. Uma coisa é Aprender línguas e estude algoritmos, mas é uma outra fera tentando codificar um aplicativo de trabalho complexo que não faz você querer arrancar os olhos.
De certa forma, escrever código limpo é muito parecido com desenho, culinária ou fotografia - parece mais fácil do que realmente é. Então, por que se preocupar? Bem, porque os benefícios valem a pena:
- Os problemas se tornam mais fáceis de resolver. Depois que você começa a pensar em código limpo, sua abordagem para a solução de problemas muda. Em vez de soluções de força bruta, seus algoritmos e design de software se tornam mais elegantes e intencionais.
- Menos tempo é desperdiçado em manutenção. O código limpo é mais fácil de ler e entender, portanto, você gasta menos tempo tentando descobrir o que certos segmentos realmente fazem e mais tempo corrigindo, revisando, estendendo etc.
- As idéias são mais claramente comunicadas. Se você estiver trabalhando com outros programadores, o código limpo reduz a probabilidade de mal-entendidos entre todos, o que também significa menos erros a longo prazo.
Veja como VOCÊ pode começar a escrever um código limpo.
1. Usar nomes descritivos
O que são variáveis, classes e funções? Existem várias maneiras de responder a isso, mas quando você realmente pensa sobre isso, essas coisas nada mais são do que a interface entre um programador e a lógica subjacente de um aplicativo.
Portanto, quando você usa nomes pouco claros e não descritivos para variáveis, classes e funções, você está basicamente ofuscando a lógica do aplicativo de qualquer programador que lê o código, incluindo você mesmo.
"Eu não sou um grande programador; Sou apenas um bom programador com ótimos hábitos ".
- Kent Beck
O que uma variável chamada dxy
realmente significa? Quem sabe. Você provavelmente precisará ler todo o código para fazer engenharia reversa de seu significado. Por outro lado, o significado de uma variável como distanceBetweenXY
é instantaneamente reconhecível.
O mesmo vale para classes e funções. Não se contente com CalcTan ()
quando você pode ir para CalculateTangent ()
ou CalcTangentAngle ()
em vez de.
2. Dê a cada classe / função um propósito
Você já espiou dentro de uma função com centenas ou até milhares de linhas de comprimento? Se você tiver, sabe o quanto pode ser doloroso navegar, entender e editar. Os comentários podem ajudar, mas apenas em um grau limitado.
"A programação está dividindo uma grande tarefa impossível em várias pequenas tarefas possíveis".
- Jazzwant
O código limpo é dividido em partes atômicas. Toda função deve ter como objetivo fazer uma única coisa e toda classe deve ter como objetivo representar um conceito em particular. Essa é uma simplificação, é claro, mas, na dúvida, mais simples é mais limpa.
Na prática, um cálculo complexo como GetCreditScore ()
pode precisar ser dividido em várias funções auxiliares, como GetCreditReports ()
, ApplyCreditHistoryAge ()
e FilterOutstandingMarks ()
.
3. Excluir código desnecessário
Esse mau hábito é um com o qual ainda luto de tempos em tempos. Geralmente acontece assim: quero corrigir ou otimizar um pedaço de código, para comentar e reescrever logo abaixo - e, mesmo que funcione, mantenho o código antigo lá por precaução.
"É possível que o software não seja como qualquer outra coisa, que ele deva ser descartado: que o objetivo principal é sempre vê-lo como uma bolha de sabão?"
- Alan J. Perlis
Com o tempo, acumulo um monte de blocos de código comentados que não são mais necessários e ainda desordenam meus arquivos de origem. E o mais engraçado é que, em muitos casos, o código ao redor evoluiu para que o código comentado não funcionasse mesmo se restaurado.
O fato é que essa prática de comentar o "código de backup" foi tornada obsoleta pelo controle de origem. Se você não estiver usando algo como Git ou Mercurial, precisará comece a usar o controle de origem imediatamente. Código mais limpo espera por você.
Lembre-se, também é importante evitar escrever código repetitivo, o que você pode realizar facilmente com uma estrutura da web. Aqui estão alguns estruturas da Web que valem a pena aprender como desenvolvedor 5 Frameworks da Web que vale a pena aprender para desenvolvedoresInteressado em aprender desenvolvimento web avançado? Evite escrever códigos repetitivos, use essas estruturas de desenvolvimento da Web. consulte Mais informação .
4. Legibilidade> Cleverness
Muitos programadores combinam "código limpo" com "código inteligente", como se compactar dez linhas em um fosse de alguma forma mais limpo. Claro, ocupa menos espaço na tela, mas é realmente mais fácil de entender? Às vezes, talvez. Mas na maioria das vezes? Não.
“Todo mundo sabe que a depuração é duas vezes mais difícil do que escrever um programa em primeiro lugar. Então, se você for o mais esperto possível quando escrever, como será que você será depurado? ”
- Brian W. Kernighan
Acho que os programadores adoram código inteligente porque parece um quebra-cabeça ou enigma resolvido. Eles encontraram uma maneira especial e única de implementar algo - um "atalho", se você desejar - e quase atua como uma validação das habilidades do programador.
Mas, para escrever um código limpo, você precisa deixar seu ego à porta.
Sempre otimize o código para a próxima pessoa que vai lê-lo, porque é provável que a próxima pessoa seja na verdade será você e não há nada mais vergonhoso do que ser incapaz de ler ou entender o seu próprio inteligência.
5. Mantenha um estilo de codificação consistente
eu tenho nada contra bons tutoriais de programação O que faz um bom tutorial de programação?Nem todos os tutoriais de programação são iguais. Alguns beneficiam você e outros acabam desperdiçando seu tempo. Aqui está o que procurar em um tutorial de programação de qualidade. consulte Mais informação , mas uma das desvantagens é que os novatos acabam adotando uma grande variedade de hábitos conflitantes, principalmente no que diz respeito ao estilo de codificação.
Não estou aqui para declarar que um estilo é melhor que outro. Se você quer aparelhos em suas próprias linhas, vá em frente. Se você quiser preceder chamadas de método com espaços, tudo bem. Se você preferir guias a espaços, não deixe que eu o convença.
Mas faça o que fizer, fique consistente!
Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Flat é melhor que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
- Tim Peters, O Zen do Python
Se você vai usar camelCaseNaming
para variáveis, não adultere-o com underscore_naming
. Se você usar GetThisObject ()
em um só lugar, não vá com FetchThatObject ()
Em outro lugar. E se você mesclar abas e espaços, merece ter o teclado retirado.
Decida o que você vai fazer desde o início e cumpra-o completamente. Algumas linguagens, como Python e C #, possuem guias de estilo para toda a linguagem que você pode querer seguir.
6. Escolha a arquitetura certa
Existem muitos paradigmas e arquiteturas diferentes que você pode usar para criar seus projetos. Observe como esta dica é sobre como selecionar o direita um para as suas necessidades, não para selecionar o melhor um lá fora. Não há "melhor" aqui.
“Sem requisitos e design, a programação é a arte de adicionar bugs a um arquivo de texto vazio.”
- Louis Srygley
Por exemplo, o padrão Model-View-Controller (MVC) é muito popular no momento no desenvolvimento da Web porque ajuda a manter seu código organizado e projetado de maneira a minimizar os esforços de manutenção.
Da mesma forma, o padrão Entity-Component-System (ECS) é muito popular agora no desenvolvimento de jogos, porque ajuda a modular os dados e a lógica do jogo de uma maneira que facilita a manutenção, enquanto produz um código mais fácil de ler.
7. Domine os idiomas do idioma
Uma das dificuldades em dominando uma nova linguagem de programação 7 truques úteis para dominar uma nova linguagem de programaçãoNão há problema em ficar impressionado quando você está aprendendo a codificar. Você provavelmente esquecerá as coisas tão rapidamente quanto as aprende. Essas dicas podem ajudar você a reter melhor todas as novas informações. consulte Mais informação é aprender as nuances que o separam de todos os outros idiomas. Essas nuances podem ser a diferença entre código feio e complicado e código bonito e fácil de manter.
Considere Python, Java e JavaScript. Eles são todos extremamente diferentes um do outro, em um grau que requer uma maneira diferente de pensar, dependendo do idioma que você escolher usar.
"Não vale a pena conhecer uma linguagem que não afeta a maneira como você pensa sobre programação."
- Alan J. Perlis
Enquanto o Python tem tudo a ver com código compacto e tipagem por pato, Java é mais do lado da verbosidade e da explicitação. Toda linguagem possui expressões idiomáticas (como compreensão de lista em Python) que incentivam uma certa maneira de codificação. Você faria bem em aprendê-los.
Também existem “antipadrões” com os quais se preocupar, que são essencialmente padrões de design abaixo do ideal que resultam em código ineficiente, não confiável ou ruim. Estude e desaprenda todos os anti-padrões comuns relacionados ao seu idioma de escolha.
8. Estude o Código de Mestrado
Se você deseja escrever um código limpo, a melhor coisa a fazer é ver como é o código limpo e tentar entender por que é assim - e não há melhor maneira de fazer isso do que estudar os arquivos de origem de mestres da indústria.
Obviamente, você não pode simplesmente entrar na sede da Microsoft e espiar os projetos deles, mas sempre pode navegue por projetos conhecidos de código aberto Como exibir e editar o código-fonte de um aplicativo de código-fonte abertoEmbora abrir código aberto seja uma boa opção, você também precisará investir na comunidade certa. O GitHub é um dos melhores lugares para fazer isso, não apenas por causa da enorme quantidade ... consulte Mais informação . Não sabe por onde começar? Tente o projetos apresentados no Github.
“Qualquer tolo pode escrever código que um computador possa entender. Bons programadores escrevem código que os humanos podem entender. ”
- Martin Fowler, Refatoração: aprimorando o design do código existente
Afinal, essa é uma das razões por que existem projetos de código aberto Por que as pessoas contribuem para projetos de código aberto?O desenvolvimento de código aberto é o futuro do software. É ótimo para os usuários, porque o software de código aberto geralmente está disponível gratuitamente e geralmente é mais seguro. Mas o que leva os desenvolvedores a contribuir com código de graça? consulte Mais informação : para que outros possam aprender com eles. E se você decidir contribuir para esse projeto, pode acelerar o processo de aprendizagem 5 idéias de projetos para ajudá-lo a aprender a programar mais rapidamenteExistem algumas maneiras de facilitar a curva de aprendizado da programação. Deixe suas mãos sujas e aprenda mais rápido com projetos paralelos que você pode iniciar a qualquer momento. Brinque com esses cinco. consulte Mais informação .
Pessoalmente, a primeira vez que vi um código realmente limpo foi quando deparei com um projeto Python de código aberto de um certo hobby. O código era tão elegante que quase parei de programar, mas acabou me ensinando muito.
9. Escreva bons comentários
"Escreva bons comentários" é o conselho mais antigo do mundo da programação. De fato, assim que os novatos são introduzidos nos comentários, eles são incentivados a comentar o mais rápido possível.
Mas quase parece que chegamos longe demais na direção oposta. Os iniciantes, em particular, tendem a comentar demais - descrevendo coisas que não precisam ser descritas e perdendo o objetivo de realmente ser um "bom comentário".
"Sempre codifique como se o cara que acabasse mantendo o seu código fosse um psicopata violento que sabe onde você mora."
- John Woods
Aqui está uma boa regra geral: existem comentários para explicar por que um código existe e não o que realmente existe. Se o código for escrito de maneira suficientemente limpa, deve ser auto-explicativo sobre o que faz - o comentário deve lançar luz sobre a intenção por trás do motivo de ter sido escrito.
Os comentários podem ser bons para avisos (ou seja, "remover isso quebrará A, B e C"), mas a maioria deve descubra coisas que não podem ser imediatamente coletadas do código (ou seja, "use esse parâmetro porque X, Y e Z ").
10. Refatorar, Refatorar, Refatorar
Assim como a edição faz parte do processo de escrita, a refatoração faz parte do processo de codificação. Uma aversão à refatoração é a maneira mais rápida de acabar com um código impossível de manter; portanto, de muitas maneiras, essa é realmente a dica mais importante a ser considerada.
Em resumo, refatoração é apenas um termo sofisticado para limpar o código sem afetar seu comportamento real.
"Sempre que tenho que pensar para entender o que o código está fazendo, pergunto-me se posso refatorá-lo para tornar esse entendimento mais imediatamente aparente".
- Martin Fowler, Refatoração: aprimorando o design do código existente
Um pouco de sabedoria que ficou comigo é o ditado: "Não comente códigos ruins. Reescreva. Como Fowler explica na citação acima, se o código parecer confuso o suficiente para você precisar comentá-lo, talvez seja necessário refatorá-lo.
Além disso, à medida que você edita bits de código aqui e ali em todo o seu projeto, sempre deixe o código em um estado melhor do que quando você o encontrou pela primeira vez. Pode parecer um incômodo no momento, mas valerá a pena a longo prazo (e pode até evitar o esgotamento mental Programação Burnout: Como recuperar sua motivação perdidaEscrever todas essas linhas de código pode ser desgastante física e emocionalmente. Tudo o que você precisa para se recuperar é a consciência de que a motivação pode ser recuperada. consulte Mais informação ).
Sempre há algo novo para aprender
Um programador que está aprendendo a escrever código limpo é semelhante a um romancista que aprende a escrever prosa limpa: não há uma maneira correta de fazer isso por si só, mas há muitas maneiras erradas de fazer isso, e levará anos para mestre.
Algumas pessoas não têm o que é preciso e acabam saindo da programação para sempre 6 sinais de que você não deve ser um programadorNem todo mundo está preparado para ser um programador. Se você não tem certeza absoluta de que pretende ser um programador, aqui estão alguns sinais que podem levá-lo na direção certa. consulte Mais informação - e tudo bem, porque há uma abundância de outros trabalhos técnicos que não envolvem codificação A codificação não é para todos: 9 trabalhos de tecnologia que você pode obter sem eleNão desanime se você quiser fazer parte do campo da tecnologia. Há muitos empregos para pessoas sem habilidades de codificação! consulte Mais informação . Mas para todos os outros, o código limpo é algo que vale absolutamente a pena buscar, mesmo que demore o resto da sua vida para chegar lá.
Joel Lee tem um BS. em Ciência da Computação e mais de seis anos de experiência profissional em redação. Ele é o editor chefe do MakeUseOf.