{"id":51542,"date":"2024-12-18T10:28:26","date_gmt":"2024-12-18T13:28:26","guid":{"rendered":"https:\/\/www.locaweb.com.br\/blog\/?p=51542"},"modified":"2024-12-18T11:53:39","modified_gmt":"2024-12-18T14:53:39","slug":"clean-code","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/clean-code\/","title":{"rendered":"Clean Code: o que \u00e9 e quais s\u00e3o os princ\u00edpios?\u00a0"},"content":{"rendered":"\n<p class=\"has-text-align-center\"><em>Saiba o que \u00e9 Clean Code e como ele pode ajudar profissionais de programa\u00e7\u00e3o a criarem c\u00f3digos mais f\u00e1ceis de serem compreendidos!\u202f<\/em>&nbsp;<\/p>\n\n\n\n<p>O conceito de Clean Code \u00e9 bastante discutido no desenvolvimento de software. Basicamente, representa uma abordagem que foca em\u202f<strong>tornar o c\u00f3digo mais expressivo, leg\u00edvel e f\u00e1cil de manter<\/strong>.\u202f&nbsp;<\/p>\n\n\n\n<p>Profissionais e empresas que investem nele ficam bem-preparados para lidar com mudan\u00e7as, bugs e aprimoramentos. Afinal,\u202f<strong>ele ajuda a garantir um produto de alta qualidade e com vida \u00fatil longa<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Portanto, elaboramos este artigo, que explora os principais pontos sobre o assunto para que voc\u00ea possa aplic\u00e1-lo com sucesso na sua rotina de trabalho. Continue a leitura!&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>O que \u00e9 Clean Code?<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Trata-se de um estilo de codifica\u00e7\u00e3o\u202f<strong>focado em escrever c\u00f3digos que sejam facilmente entendidos por outras pessoas<\/strong>, tornando o trabalho colaborativo mais eficiente e a manuten\u00e7\u00e3o do sistema mais simples.\u202f&nbsp;<\/p>\n\n\n\n<p>Em um contexto de arquitetura e\u202f<a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/design-de-software\/\" target=\"_blank\" rel=\"noreferrer noopener\">design de software<\/a>,\u202f<strong>um c\u00f3digo limpo \u00e9 aquele que \u00e9 intuitivo e direto, com pouca ou nenhuma ambiguidade<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Isso \u00e9 fundamental para empresas que lidam com Virtual Private Server (VPS) e <a href=\"https:\/\/www.locaweb.com.br\/cloud\/cloud-server-pro\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cloud Hosting<\/a>. Nestes ambientes, a efici\u00eancia e a clareza s\u00e3o essenciais para lidar com diferentes cargas de trabalho, garantindo a estabilidade do sistema.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Quando surgiu o termo Clean Code?<\/strong>&nbsp;<\/h2>\n\n\n\n<p>O conceito ganhou popularidade com a publica\u00e7\u00e3o do livro\u202f<em>Clean Code: A Handbook of Agile Software Craftsmanship<\/em>, escrito por Robert C. Martin em 2008. Conhecido como Uncle Bob, o autor \u00e9 uma refer\u00eancia no campo do desenvolvimento de software.&nbsp;<\/p>\n\n\n\n<p>A obra apresentou diretrizes e uma abordagem pr\u00e1tica para o que ele chama de\u202f<em>craftsmanship\u202f<\/em>(habilidade artesanal). Nesse sentido, Martin considera que\u202f<strong>escrever c\u00f3digo \u00e9 compar\u00e1vel a um of\u00edcio que exige t\u00e9cnica, cuidado e aprimoramento cont\u00ednuo<\/strong>.&nbsp;<\/p>\n\n\n\n<iframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/49Sxr11BeiA?si=nwkdedz_z7kTH-o3\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Para que serve o Clean Code?<\/strong>&nbsp;<\/h2>\n\n\n\n<p>A pr\u00e1tica \u00e9 \u00fatil para tornar o c\u00f3digo acess\u00edvel e compreens\u00edvel. Conforme comentamos anteriormente,<strong>\u202fisso \u00e9 essencial para equipes de desenvolvimento<\/strong>.\u202f&nbsp;<\/p>\n\n\n\n<p>Muitas vezes, um profissional pode sair de um projeto e algu\u00e9m assumir as responsabilidades no lugar. Se o projeto estiver confuso e complexo, a nova pessoa programadora levar\u00e1 muito mais tempo para compreend\u00ea-lo,\u202f<strong>aumentando os custos de manuten\u00e7\u00e3o e os riscos de erros<\/strong>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Por que aprender o Clean Code e qual \u00e9 a sua import\u00e2ncia?<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Dominar esse conceito n\u00e3o \u00e9 apenas uma quest\u00e3o de melhorar o design e a\u202f<a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/arquitetura-de-software\/\" target=\"_blank\" rel=\"noreferrer noopener\">arquitetura de software<\/a>. Essa pr\u00e1tica potencializa o desempenho das equipes de desenvolvimento e, assim, contribui para a entrega de produtos mais confi\u00e1veis.\u202f&nbsp;<\/p>\n\n\n\n<p>Sempre importante lembrar:<strong>\u202fum c\u00f3digo limpo permite encontrar e corrigir erros rapidamente, facilita a adi\u00e7\u00e3o de novas funcionalidades e eleva a qualidade dos projetos<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Al\u00e9m disso, essa pr\u00e1tica est\u00e1 ligada a conceitos como o de Clean Architecture, que visa projetar sistemas robustos e, ao mesmo tempo, flex\u00edveis.\u202f&nbsp;<\/p>\n\n\n\n<p>Nesse sentido,\u202f<strong>ambos\u202fcaminham juntos para garantir uma estrutura de software organizada, que suporte mudan\u00e7as com o m\u00ednimo de impacto negativo<\/strong>.&nbsp;<\/p>\n\n\n\n<iframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/VuN0L5UGsbk?si=uIvaMaGH3eiMAyh5\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Quais s\u00e3o os princ\u00edpios fundamentais do Clean Code?<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Existem diversos preceitos que ajudam a escrever c\u00f3digos mais claros e f\u00e1ceis de manter. Vamos explorar os principais nos t\u00f3picos a seguir.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Nomenclatura clara e significativa<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Este \u00e9 o primeiro passo. Um nome bem escolhido para vari\u00e1veis, fun\u00e7\u00f5es e classes faz com que o c\u00f3digo seja autoexplicativo. Alguns exemplos de boas pr\u00e1ticas e erros comuns incluem:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Certo<\/strong>: calcularTotalComDesconto()&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Errado<\/strong>: calcTotal()&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Al\u00e9m disso, seguir conven\u00e7\u00f5es de nomenclatura, como usar o padr\u00e3o CamelCase para vari\u00e1veis em\u202f<a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/o-que-e-javascript\/\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript<\/a>, PHP, C# e Java (e.g., minhaVariavel), PascalCase para classes (e.g MinhaClasse) ou o padr\u00e3o snake_case em\u202f<a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/python\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python<\/a>\u202f(e.g., minha_variavel) ajuda na consist\u00eancia e no entendimento.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>C\u00f3digo mais limpo do que estava antes<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Este \u00e9 um princ\u00edpio que incentiva a pr\u00e1tica de otimizar o c\u00f3digo cada vez que algu\u00e9m precisa trabalhar nele.&nbsp;<\/p>\n\n\n\n<p>Ao corrigir um bug ou adicionar uma funcionalidade, o ideal \u00e9 limpar trechos que est\u00e3o confusos, melhorar coment\u00e1rios ou renomear vari\u00e1veis para nomes bem descritivos.<strong>\u202f<\/strong>&nbsp;<\/p>\n\n\n\n<p><strong>Isso garante que, gradualmente, o c\u00f3digo se torne mais f\u00e1cil de entender para quem est\u00e1 participando do trabalho<\/strong>.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Fun\u00e7\u00f5es pequenas e concisas<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Elas s\u00e3o mais f\u00e1ceis de ler, entender e testar.\u202f<strong>Cada uma deve ter uma \u00fanica responsabilidade e fazer apenas uma tarefa espec\u00edfica<\/strong>.\u202f Ao evitar fun\u00e7\u00f5es longas e complexas, \u00e9 poss\u00edvel manter o c\u00f3digo organizado, al\u00e9m de reduzir a possibilidade de erros.\u00a0<\/p>\n\n\n\n<p><strong>Leia mais<\/strong>:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/chatgpt-para-desenvolvedores-como-utilizar\/\" target=\"_blank\" rel=\"noreferrer noopener\">ChatGPT para desenvolvedores: como utilizar a seu favor?<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/seo-para-desenvolvedores-o-que-e-preciso-saber\/\" target=\"_blank\" rel=\"noreferrer noopener\">SEO para desenvolvedores: o que \u00e9 preciso saber?<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/como-conseguir-mais-clientes-3-dicas-para-desenvolvedores\/\" target=\"_blank\" rel=\"noreferrer noopener\">Como conseguir mais clientes: 3 dicas para desenvolvedores<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Encapsulamento de condi\u00e7\u00f5es<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Essa \u00e9 uma pr\u00e1tica a ser considerada,\u202f<strong>pois condicionais complexas tornam o c\u00f3digo dif\u00edcil de entender e manter<\/strong>. Um exemplo comum \u00e9 quando temos um bloco de if-else aninhado.\u202f&nbsp;<\/p>\n\n\n\n<p>Uma dica importante:\u202f<strong>encapsular essas condi\u00e7\u00f5es em fun\u00e7\u00f5es com nomes descritivos torna o c\u00f3digo mais leg\u00edvel<\/strong>.\u202f\u00a0Confira exemplos de como se comportar:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Certo<\/strong>: if (usuarioPossuiPermissao())&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Errado<\/strong>: if (usuario.permissoes.includes(&#8216;ADMIN&#8217;) &amp;&amp; usuario.idade &gt;= 18)&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>No exemplo correto, a fun\u00e7\u00e3o\u202f<em>usuarioPossuiPermissao()\u202f<\/em>encapsula a condi\u00e7\u00e3o e permite uma leitura mais direta. J\u00e1 no incorreto, temos uma condi\u00e7\u00e3o extensa diretamente no c\u00f3digo.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Evitar estruturas de controle complexas<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Aninhamentos profundos de\u202f<em>if, for, while<\/em>\u202fe\u202f<em>switch<\/em>\u202ftornam o c\u00f3digo mais dif\u00edcil de seguir. Uma abordagem recomendada \u00e9 simplificar as estruturas e, sempre que poss\u00edvel,\u202f<strong>dividir em fun\u00e7\u00f5es menores<\/strong>.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Evitar repeti\u00e7\u00e3o de c\u00f3digo<\/strong>&nbsp;<\/h3>\n\n\n\n<p>O princ\u00edpio Don&#8217;t Repeat Yourself (DRY) incentiva profissionais de desenvolvimento a evitar repeti\u00e7\u00f5es.\u00a0Afinal, duplicar o c\u00f3digo dificulta a manuten\u00e7\u00e3o, pois, ao modificar um trecho, \u00e9 necess\u00e1rio alterar todas as c\u00f3pias dele.\u00a0Para evitar cair neste problema,\u202f<strong>a melhor pr\u00e1tica \u00e9 criar fun\u00e7\u00f5es reutiliz\u00e1veis<\/strong>.\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Apenas coment\u00e1rios descritivos e necess\u00e1rios<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Coment\u00e1rios devem ser usados com modera\u00e7\u00e3o e<strong>\u202fsomente para explicar partes do c\u00f3digo que n\u00e3o s\u00e3o intuitivas<\/strong>.\u202f\u00a0Por exemplo:\u00a0<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Desnecess\u00e1rio<\/strong>: \/\/ incrementa a vari\u00e1vel i em 1&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Necess\u00e1rio<\/strong>: \/\/ calcula a m\u00e9dia dos valores fornecidos&nbsp;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Testes limpos<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Os testes tamb\u00e9m devem ser claros e leg\u00edveis. Isso ajuda na detec\u00e7\u00e3o r\u00e1pida de erros e assegura que cada parte esteja funcionando conforme o esperado.\u202f\u00a0Usar nomes descritivos para as fun\u00e7\u00f5es de teste \u00e9 essencial, pois facilita a leitura e o entendimento dos resultados.\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tratamento de erros<\/strong>&nbsp;<\/h3>\n\n\n\n<p>Um c\u00f3digo limpo lida com problemas de forma previs\u00edvel. Em vez de permitir que erros tragam falhas graves ao sistema, o melhor \u00e9 prever e tratar exce\u00e7\u00f5es.\u202f&nbsp;<\/p>\n\n\n\n<p>Por exemplo, ao lidar com APIs em um\u202f<a href=\"https:\/\/www.locaweb.com.br\/servidor-vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">servidor VPS<\/a>\u202fou em ambientes de Cloud Hosting,\u202f<strong>ele\u202fdeve considerar a possibilidade de falha de conex\u00e3o com quem est\u00e1 provendo a API.<\/strong>\u202f&nbsp;<\/p>\n\n\n\n<p>Nesse sentido, \u00e9 importante tratar o erro para informar o usu\u00e1rio ou registrar para an\u00e1lise posterior.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclus\u00e3o<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Escrever Clean Code n\u00e3o \u00e9 apenas uma t\u00e9cnica.\u202f<strong>\u00c9 um compromisso com a qualidade, a efici\u00eancia e a colabora\u00e7\u00e3o no desenvolvimento de software<\/strong>.\u202f&nbsp;<\/p>\n\n\n\n<p>Ao aplicar os seus princ\u00edpios, como nomenclatura clara, encapsulamento de condi\u00e7\u00f5es e tratamento de erros, voc\u00ea melhora o seu c\u00f3digo e facilita a manuten\u00e7\u00e3o dele.&nbsp;<\/p>\n\n\n\n<p>Lembre-se: demais profissionais podem ter acesso ao seu trabalho no futuro e precisam entender de forma simples e clara o que foi criado!&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saiba o que \u00e9 Clean Code e como ele pode ajudar profissionais de programa\u00e7\u00e3o a criarem c\u00f3digos mais f\u00e1ceis de serem compreendidos!\u202f&nbsp; O conceito de Clean Code \u00e9 bastante discutido no desenvolvimento de software. Basicamente, representa uma abordagem que foca em\u202ftornar o c\u00f3digo mais expressivo, leg\u00edvel e f\u00e1cil de manter.\u202f&nbsp; Profissionais e empresas que investem [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":51543,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-51542","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/51542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=51542"}],"version-history":[{"count":2,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/51542\/revisions"}],"predecessor-version":[{"id":51549,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/51542\/revisions\/51549"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/51543"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=51542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=51542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=51542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}