Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
ltomazeli
Advisor
Advisor
0 Kudos
747

Clean code é um termo usado para descrever software que é fácil de ler, entender, manter e testar. Neste blog, quero resumir alguns princípios importantes e fornecer uma introdução ao tópico para iniciantes. Além disso, o blog deve se conectar ao repositório de guias de estilo, aos livros e às iniciativas atuais em que os especialistas podem contribuir.



O que torna o código limpo?


A obtenção do código limpo envolve seguir um conjunto de melhores práticas e padrões, como usar nomes significativos, manter as funções pequenas e focadas e usar comentários com moderação. Ter uma base de código, legível e sustentável, é essencial para o desenvolvimento sustentável. Os livros Clean Code de Robert C. Martin, Code Complete de Steve McConnell, The Pragmatic Programmer de David Thomas/Andy Hunt, e alguns outros livros contêm muitas melhores práticas e exemplos de código limpo.



O que é código que não está limpo?


Código que não é limpo é um código que é difícil de ler, entender e manter. Pode ter má organização, nomes confusos ou enganosos, estilo inconsistente e outros problemas que dificultam o trabalho.


Alguns exemplos de código que não está limpo podem incluir:




  • Código com funções longas e complexas de difícil compreensão, teste e manutenção.

  • Código com convenções de nomes ruins, como variáveis com nomes curtos, não descritivos ou funções com nomes que não refletem com precisão sua finalidade.

  • Código com estilo inconsistente, como indentação ou espaçamento inconsistentes, o que pode dificultar a leitura e a compreensão.

  • Código com código desnecessário ou redundante, o que pode dificultar a manutenção e a compreensão.

  • Código que torna difícil a automação de testes, por exemplo, acoplamento (coupling) estático entre classes.


No geral, o código que não é limpo é muitas vezes mais propenso a erros e bugs, e pode ser mais demorado para trabalhar, pois requer mais esforço para entender, testar e manter.



Code Quality de xkcd.com/1513/ em Creative Commons BY-ND 2.5



Benefícios do código limpo


Existem muitos benefícios para escrever o código limpo, incluindo:




  • Melhor legibilidade e compreensão: limpar o código é mais fácil de ler e entender, o que pode facilitar a adaptação, debug e manutenção dos desenvolvedores.

  • Risco reduzido de erros e bugs: Código limpo geralmente é mais confiável e menos propenso a erros e bugs, pois é mais fácil de entender, testar e manter.

  • Maior produtividade: é mais fácil e rápido trabalhar com código limpo, o que pode aumentar a produtividade e a eficiência do desenvolvedor. De acordo com um meta-estudo, o código não saudável pode conter mais de 15 vezes mais defeitos e reduzir a produtividade por um ....

  • Maior capacidade de adaptação e evolução: código modular limpo é mais fácil de modificar e atualizar, o que pode ajudar o software a evoluir e se adaptar às mudanças de requisitos ao longo do tempo.

  • Melhor colaboração em equipe: a limpeza do código é mais fácil para os membros da equipe entenderem e trabalharem, o que pode melhorar a colaboração e a comunicação dentro da equipe.

  • Melhor manutenção a longo prazo: código limpo é mais fácil de manter e atualizar ao longo do tempo, o que pode economizar tempo e recursos. E reduzir o risco se os engenheiros se deslocarem para outros projetos ou deixarem a empresa.

  • Aumento da reutilização do código: limpar o código em módulos facilita a reutilização em diferentes contextos, o que pode economizar tempo e recursos.

  • Melhor desempenho: o código limpo geralmente é mais eficiente e pode ser executado mais rapidamente, pois é menos complexo e mais fácil de otimizar quando necessário.

  • Processo aprimorado de revisão de código: o código limpo é mais fácil de revisar, pois é mais organizado e mais fácil de entender. Isso pode levar a revisões de código mais eficientes e eficazes.

  • Melhor reputação: escrever código limpo pode ajudar a aumentar a reputação do desenvolvedor ou equipe de desenvolvimento, pois demonstra um compromisso com a qualidade e o profissionalismo.


Em geral, o código limpo pode ajudar a garantir que seu software seja confiável, sustentável e fácil de trabalhar, o que pode levar a maior eficiência, produtividade, maior qualidade e maior satisfação de desenvolvedores e usuários. Os benefícios do código limpo vão além do processo de desenvolvimento e podem ter um impacto positivo no sucesso de longo prazo do software e da equipe que trabalha nele.



Princípios e exemplos importantes de código limpo


Primeiramente, resumimos alguns princípios importantes para o código de limpeza e forneçam alguns exemplos simples. Para cada princípio há muito mais a aprender no guia de estilo e nos livros.




  • A limpeza do código torna mais fácil para os desenvolvedores entender, modificar e manter um sistema de software. Quando o código está limpo, é mais fácil encontrar e corrigir bugs, e é menos provável que quebre quando as alterações são feitas.

  • Um dos princípios fundamentais do código limpo é a legibilidade, o que significa que o código deve ser fácil de entender, mesmo para alguém que não esteja familiarizado com o sistema. Para conseguir isso, os desenvolvedores devem, por exemplo, usar nomes significativos para variáveis, funções e classes.

  • Outro princípio importante do código limpo é a simplicidade, o que significa que o código deve ser o mais simples possível, sem complexidade desnecessária. Para conseguir isso, os desenvolvedores devem evitar o uso de estruturas de dados ou algoritmos complexos, a menos que sejam necessários, e devem evitar adicionar funcionalidades ou funcionalidades desnecessárias.

  • Além da legibilidade e simplicidade, o código limpo também deve ser atualizável, o que significa que deve ser fácil modificar e atualizar o código sem quebrá-lo. Para conseguir isso, os desenvolvedores devem escrever um código modular que é organizado em funções pequenas e focadas, e deve evitar a duplicação de código.

  • Finalmente, o código limpo deve ser bem documentado. Isso significa que deve incluir comentários claros e concisos que expliquem a finalidade e a funcionalidade do código. No entanto, os comentários não devem ser usados para explicar o próprio código; o código deve ser escrito de uma forma autoexplicativa.


No geral, o código limpo é uma parte essencial do desenvolvimento de software. Isso facilita a compreensão e a manutenção de um sistema e pode ajudar a evitar bugs e outros problemas.



O repositório do guia de estilo


https://github.com/SAP/styleguides


Sob a licença CC BY 3.0 e aberta a contribuições internas e externas da SAP, esperamos que esse repositório ajude desenvolvedores em todo o mundo a tornar seu código um pouco mais limpo, dia a dia.


O objetivo de longo prazo do repositório de guias de estilo é cobrir as linguagens de programação mais importantes do mundo SAP. Até agora, só o ABAP está coberto, mas estou convencido de que mais está por vir. Talvez também estejamos aptos a cobrir Java, TypeScript, Kotlin, Go e muito mais – em vez de um desejo próximo da realidade.



Livros


Existem vários livros, que abordam o tema em detalhes, explicam o raciocínio e o aplicam a linguagens de programação específicas.




Os livros também são muito adequados para aqueles que estão começando a aprender as linguagens de programação. Ou colegas que já dominaram o Clean ABAP e querem aprender a limpar o SAPUI5. E até especialistas na linguagem de programação mencionaram que aprenderam muito e foi uma fonte de inspiração.



Limpar família de livros de código para ABAP e SAPUI5/JavaScript



Uma base para melhoria


Os principais benefícios de ter uma compreensão comum de um estilo de código em uma dada linguagem de programação são a melhor mantenibilidade, legibilidade e testabilidade. Mas também há muitos outros benefícios e novas possibilidades, que este blog explora mais detalhadamente:




  • Por que ter um conjunto de regras comum? À medida que uma organização cresce, ela ajuda a manter a base de código consistente e permite que os desenvolvedores se concentrem nos aspectos importantes. Há menos conflitos sobre os fundamentos (por exemplo, formatação) devido a um estilo de código padrão.

  • Promovendo o princípio da otimização do código para o leitor: Dado que o código será lido com muito mais frequência do que está escrito, um princípio importante para todas as regras é otimizar para o leitor e não para o escritor. Portanto, o guia de estilo pesa a legibilidade maior do que usar expressões poderosas, o que deixa o escritor expressar algo concisamente, mas são mais tarde difíceis de ler.

  • Consistência da base de código: Se a base de código é construída com os mesmos princípios e guia de estilo em mente, ele permite que os engenheiros pulem para uma parte desconhecida do código e façam melhorias rapidamente.

  • Melhorar a experiência do desenvolvedor: ter um guia de estilo consistente cria um ecossistema por conta própria e permite melhorar a experiência do desenvolvedor. Depois que o guia de estilo foi publicado em 2019, a comunidade começou a criar ferramentas para melhorar as revisões de código, práticas de revisão de código documentado, verificações estendidas de código estático, formatos de treinamento desenvolvidos e fez algumas ferramentas para corrigir automaticamente o código. Essa consistência criou a base para vários projetos InnerSource/open source, melhorias de plataforma e acionou a exploração de outras ideias.

  • Scaling de uma organização: à medida que uma organização cresce, é importante ter uma compreensão comum do estilo do código. Ele ajuda a impulsionar novos desenvolvedores mais rapidamente e focar o tempo em programação de pares ou revisões de código em outros aspectos.

  • Além disso, outras funções, não apenas desenvolvedores, beneficiam-se, por exemplo, de consultores que precisam fazer extensões ou equipes SRE (Site Reliability Engineering) que precisam melhorar as operações.

  • A consistência também melhora a manutenção a longo prazo, uma vez que novos engenheiros que assumem a propriedade podem entender mais rapidamente e atualizar o código.

  • O guia de estilo permite impor regras com verificações de código estáticas ou até mesmo desenvolver correções automáticas. Assim, algumas discussões não ocorrem mais, o que permite concentrar o tempo dos desenvolvedores em aspectos mais importantes.


Atividades atuais


Com o sucesso do guia de estilo e número de propostas de melhoria, surge a necessidade de um processo mais formal quando se trata de rever propostas de melhoria. Tornar todo o processo transparente e ter clareza para tomar decisões.


Isso inclui a clareza sobre como eles devem ser abertos, como são processados e o período típico no qual, de alguma forma, pode esperar uma decisão. Além disso, especialmente para mudanças com maior impacto (e.g. mudanças incompatíveis) precisamos de um processo formal para a tomada de decisão, uma vez que essas mudanças também serão refletidas em verificações estáticas de código e por isso afetam um grande número de desenvolvedores.


Nos últimos meses, trabalhamos na documentação de todo o processo e escrevemos nossos princípios norteadores para envolver a comunidade e tomar decisões. O processo será publicado em breve.


 

Artigo original: https://blogs.sap.com/2022/12/21/clean-code-writing-maintainable-readable-and-testable-code/