Código Bom🙂, Código Ruim😖
Fala time, estou lendo atualmente alguns livros sobre Gestão, códigos e arquitetura.
Por isso hoje quero falar sobre códigos, quando você escreve códigos em qualquer linguagem que você tenha proficiência é possível que você esteja escrevendo código bom e também ruim.
Calma eu sei que está funcionando se não você provavelmente estaria tentando resolver o dia todo e talvez até virando a noite mas, eu sei que está lendo aqui e não está tão ruim assim rsrs.
No mundo da engenharia de software existem práticas e padrões que dão uma direção sobre o que é bom ou ruim para a leitura e entendimento e as vezes para o funcionamento. Quando falo em funcionamento quero dizer que se você fizer um método de 300 linhas que faz tudo que deveria e fizer o mesmo método segregado por responsabilidade, intenção, com interfaces, etc.. eles vão funcionar da mesma maneira, então o que muda? O que muda é que o Severino que pegar um bug e precisar mexer na primeira forma que expliquei vai provavelmente levar mais tempo para tentar resolver do que o Severino-2 que pegar o que está separado para dar manutenção, explico. Para o primeiro cenário é muito mais fácil se perder pois vamos tirar um trecho de exemplo, o programador declarou a variável "int PontoDeApoio" na linha 3, durante seu desenvolvimento essa variável foi alterada diversas vezes no meios das 300 linhas, só que lá no final perto de retornar o resultado do método a variável recebeu "PontoDeApoio = PontoDeApoio + 6" e de repente você viu que o valor não era o esperado, pô Berg mais aí é fácil, o valor vai depender das iterações que ela teve, exatamente isso, você terá que percorrer todo o código de novo fazendo o debug para achar no meio onde está o problema, o que leva mais tempo e depois mais tempo e assim por diante.
Agora vamos para o cenário do Severino-2 está boa parte do método separada com suas responsabilidades e intenção. Enfrentamos o mesmo problema, mas agora a variável "PontoDeApoio" não é mais uma variável e sim um método "CuidaPontoDeApoio" que contém todas aquelas regras que estavam espalhadas ou seja toda a responsabilidade do método é só cuidar do valor de "PontoDeApoio", até a explicação aqui fica mais fácil, rsrs. Eu sei que a base de código é viva e vai acontecer de fazermos tudo em um lugar simplesmente por ser mais fácil e vai funcionar, e está tudo bem. Só que no futuro você mesmo pode pegar para ajustar algo e qual das estratégias você preferiria atuar? Abaixo alguns tópicos para fixar na memória, porque no final das contas precisamos entender o que outro ser humano criou.
Bom código
É sustentável: acima de tudo, isso significa que o código pode ser facilmente lido e compreendido. A manutenção consiste em corrigir bugs, adicionar recursos e se adaptar às mudanças externas. Para fazer qualquer uma dessas coisas, você precisa saber como o código funciona.
Tem um estilo claro e conciso: Um bom código não é inteligente. É direto e fácil de entender. Não requer um doutorado. em ciência da computação para compreender.
Tem uma intenção clara e bem definida: o código deve ser fácil de entender e não exigir muitas suposições. Deve ficar claro o que o código pretende fazer e como deve ser usado.
Possui dependências mínimas: um bom código não possui dependências estranhas entre classes. É independente e fácil de testar.
Recomendados pelo LinkedIn
Código ruim
É complicado: código incorreto costuma ser inteligente e tenta fazer muitas coisas ao mesmo tempo. É como tentar construir um arranha-céu em areia movediça.
É difícil de manter: Código incorreto é difícil de entender e modificar. É como tentar consertar um quebra-cabeça com peças faltando.
Tem intenção pouco clara: código incorreto geralmente tem intenção pouco clara ou confusa. É como tentar ler uma receita escrita em uma língua estrangeira.
Possui muitas dependências: códigos incorretos geralmente possuem dependências interligadas entre classes. É como tentar desembaraçar um nó.
Em resumo, a diferença entre um código bom e um código ruim é como a diferença entre um edifício seguro e um edifício inseguro. Um bom código é bem estruturado, fácil de entender e de fácil manutenção, enquanto um código ruim é complicado, difícil de entender e difícil de modificar.
Por hoje é isso, pessoal. Espero que tenham gostado e abaixo seguem algumas referências para nos aprofundarmos no assunto 😃 Até segunda que vem!
Para conferir mais vai em BergNews