Deus está nos detalhes”, arquiteto Ludwig mies van der Rohe

Como Fred Brooks nos adverte, provavelmente devemos refazer as principais peças de software do zero a cada sete anos ou mais para eliminar o problema. Talvez devêssemos atualizar a constante de tempo de Brooks para uma ordem de semanas, dias ou horas em vez de anos. É aí que está o detalhe.  O domínio é alcançado de duas formas: conhecimento e trabalho.  O conhecimento é obtido a partir dos princípios, padrões, práticas e heurísticas que um professor conhece, e domina esse conhecimento praticando.

O que é um código limpo?

Código Limpo

hnz-consultoria-e-treinamentos-blog-o-que-significa-saa

Não adianta tentar escrever código limpo se você não sabe o que significa para o código ser limpo!

A má notícia é que escrever código limpo é como pintar um quadro.  A maioria de nós sabe quando uma pintura é bem ou mal pintada, mas ser capaz de reconhecer a boa arte do mal não significa que saibamos pintar.  Portanto, ser capaz de reconhecer código limpo a partir de código sujo não significa que sabemos escrever código limpo.

Escrever código limpo requer o uso disciplinado de uma miríade de pequenas técnicas aplicadas através de um senso cuidadosamente adquirido de “limpeza”. Esse “senso de código” é fundamental.

O código limpo pode ser lido e melhorado por um desenvolvedor diferente de seu autor original. Tem testes unitários e de aceitação. Tem nomes significativos. Ele fornece uma maneira ao invés de muitas maneiras de fazer uma coisa. Possui dependências mínimas, que são explicitamente definidas, e fornece uma API clara e mínima. O código deve ser cultivado dependendo da língua, uma vez que, dependendo da língua, nem todas as informações necessárias podem ser claramente expressas apenas em código. ” ( “Big” Dave Thomas, fundador da OTI, padrinho da estratégia eclipse)

Então é nossa responsabilidade fazer a linguagem parecer simples! Fãs de linguagem em todos os lugares, cuidado, não é a linguagem que faz os programas parecerem simples, é o programador que faz a linguagem parecer simples.

5S LEAN e código limpo

A filosofia dos 05 S do Lean compreende bem os conceitos do código limpo.

  • Seiri ou organização. Saber onde as coisas estão, usando abordagens como o nome certo, é fundamental. Acha que nomes identificadores não são importantes?
  • Seiton, ou sistematização. Há um velho ditado: um lugar para tudo, e tudo em seu lugar. Um trecho de código deve ser onde você espera encontrá-lo, e se não, você precisa fatorá-lo de volta para obtê-lo.
  • Seiso ou limpeza: Mantenha o local de trabalho livre de fios pendurados, graxa, detritos e detritos. O que os autores daqui dizem sobre sujar seu código com comentários comentados e linhas de código que capturam a história ou desejos para o futuro? Livre-se deles.
  • Seiketsu, ou padronização: o grupo concorda em como manter o local de trabalho limpo. Você acha que essas práticas dizem alguma coisa sobre ter um estilo de codificação consistente e um conjunto de práticas dentro do grupo? De onde vêm esses padrões?
  • Fechar o trabalho ou disciplina. Isso significa ter a disciplina para seguir práticas e refletir com frequência sobre o trabalho e estar disposto a mudar.

A visão japonesa entende o valor crucial do dia-a-dia do trabalhador e, ainda mais, dos sistemas de desenvolvimento que se devem às ações simples e cotidianas desses trabalhadores. A qualidade é o resultado de um milhão de atos altruístas de cuidado, não qualquer grande método que desce dos céus.  Só porque esses atos são simples não significa que são simplistas e não significa que sejam fáceis.

No entanto, são grandeza e, ainda mais, beleza, em qualquer esforço humano. Ignorá-los ainda não é ser totalmente humano.

A Regra dos Escoteiros

Deixe o acampamento mais limpo do que encontrou. Se todos nós entregamos o código um pouco mais limpo do que quando o recebemos, o código simplesmente não poderia apodrecer.  Limpar não precisa ser algo enorme. Renomeie uma variável para melhor, divida uma função que é um pouco grande demais, remova uma pequena duplicação, limpe um composto se declaração.

Os problemas de um código que não é limpo

Código Limpo

Falta de qualidade

No final dos anos 80, uma empresa escreveu um aplicativo espetacular.  Era muito popular e muitos profissionais compravam e usavam.  Mas então os ciclos de libertação começaram a se estender. Os bugs não foram corrigidos de uma versão para outra. Os tempos de carregamento aumentaram e os acidentes aumentaram.  Lembro-me do dia em que desliguei o produto por frustração e não o usei novamente.  A empresa fechou pouco depois disso.

Duas décadas depois, conheci um dos primeiros funcionários daquela empresa e perguntei o que tinha acontecido. A resposta confirmou meus medos.  Eles correram para trazer o produto ao mercado e criaram uma grande bagunça no código. À medida que adicionavam mais e mais recursos, o código piorava e piora até que eles simplesmente não conseguiam mais gerenciá-lo.  Foi o código errado que derrubou a empresa.

Atrasos nos câmbios de código

Se você foi programador por mais de dois ou três anos, provavelmente foi retardado pelo código bagunçado.

O grau de desaceleração pode ser significativo. Dentro de um ou dois anos, equipes que estavam se movendo muito rápido no início de um projeto podem se encontrar se movendo em um ritmo de tartaruga.  Cada mudança que eles fazem no código quebra duas ou três outras partes do código. Nenhuma mudança é trivial. Cada adição ou modificação no sistema requer emaranhados, torções e nós para serem “compreendidos” para que mais emaranhados, torções e nós possam ser adicionados.

Com o tempo, a desordem se torna tão grande, tão profunda, e tão alta que eles não podem limpá-la.

Enigma primordial

Os programadores enfrentam um enigma de valores básicos.  Todos os desenvolvedores com mais de alguns anos de experiência sabem que as bagunças acima os atrasam. E ainda assim, todos os desenvolvedores sentem a pressão de fazer bagunças para cumprir prazos. Resumindo, eles não demoram a ir rápido! Os verdadeiros profissionais sabem que a segunda parte do enigma está incorreta. Você não vai cumprir o prazo fazendo a bagunça.

Na verdade, a bagunça vai imediatamente atrasá-lo e forçá-lo a não cumprir o prazo. A única maneira de cumprir o prazo, a única maneira de ir rápido, é manter o código o mais limpo possível em todos os momentos.

Conclusão

Gostou de conteúdo? Se cadastre em nosso boletim informativo e receba semanalmente artigos e vídeos dos mais diversos conteúdos da área de TI! Fique ligado que na semana que vem iremos contar tudo o que você precisa para deixar o seu código limpo!

HNZ

HNZ

One Comment

Leave a Reply