Eu e o “Clean Code” – Parte 4: Fim da Leitura
Tags: braziliandevs, livros, codigolimpo, cleancode
Published: 2023-05-24 21:26:13

---
title: Eu e o “Clean Code” – Parte 4: Fim da Leitura
published: true
date: 2023-05-24 21:09:29 UTC
series: Eu e o Clean Code (o livro)
tags: braziliandevs,livros,codigolimpo,cleancode
canonical_url: https://devkico.itexto.com.br/?p=4099
---

![](https://i0.wp.com/devkico.itexto.com.br/wp-content/uploads/2023/05/fechando_clean_code.jpg?resize=800%2C473&ssl=1)

Finalmente estou fechando esta série de posts sobre o livro “Código Limpo”: agora finalmente escrevo minhas impressões finais sobre a leitura e tudo o que envolve este texto.

Para ter uma visão completa sobre o que estou falando recomendo que você leia as três primeiras partes:

- [Eu e o Clean Code – Parte 1: Catequese](https://dev.to/loboweissmann/eu-e-o-codigo-limpo-o-livro-parte-1-catequizacao-ia3)
- [Eu e o Clean Code – Parte 2: Descompilando](https://dev.to/loboweissmann/eu-e-o-clean-code-parte-2-descompilando-4550)
- [Eu e o Clean Code – Parte 3: O Nefasto Capítulo sobre Comentários](https://dev.to/loboweissmann/eu-e-o-clean-code-parte-3-o-nefasto-capitulo-sobre-comentarios-2if2)

## Minha própria estratégia narrativa

![](https://i0.wp.com/devkico.itexto.com.br/wp-content/uploads/2023/05/kico_se_apontando.jpg?resize=800%2C500&ssl=1)

Falei tanto sobre a estratégia narrativa do Robert Matin, então pra começar entrego aqui a minha: meu objetivo nesta série foi mostrar alguns aspectos relacionados tanto à escrita do livro quanto ao que ocorre ao seu redor:

- Por que acredito que há uma postura dogmática em relação ao que ali é escrito (primeira parte).
- Em que medida o autor pode ser responsável por este comportamento dogmático (segunda parte).
- Expor a linguagem tóxica presente no texto original. Faço isto mostrando a construção de uma figura de autoridade na segunda parte e apresentando de forma explícita como esta toxicidade se manifesta na terceira parte quando disseco o quarto capítulo (“Comentários”).
- Deixar bem claro que há não um livro “Código Limpo”, mas vários: o original e as inúmeras versões alternativas do texto que se manifestam a partir dos comentários que são publicados a seu respeito em todo lugar.

Comecei mostrando o elefante branco que estava na sala, na sequência apontei o dedo para a linguagem exposta no texto e pra finalizar mostrei aonde a estratégia tóxica do texto aparece de forma mais explícita no livro (clássico mineiro comendo pelas beiradas).

Agora rasgo o verbo dizendo o que penso sobre o livro.

## Código bem escrito é uma coisa e “Código Limpo” outra

Apesar da expressão “Código Limpo” fazer uma referência a código bem escrito acho importante tornar clara uma diferença aqui: quando usamos o termo “Código Limpo” estamos nos referindo ao livro “Clean Code” e a [todos os produtos que Robert Martin](http://cleancoder.com/products) vende (tem até logotipo).

É um fenômeno muito similar ao que ocorre quando nos referimos a palha de aço como “Bom Bril”, por exemplo. Acho isto ruim pois na prática acabamos por fazer marketing gratuito ao referenciarmos algo que deveria não estar ligado a uma pessoa/empresa, mas a uma área: estratégias para a escrita de código bem feito.

As práticas descritas no livro não são invenção de seus autores (leia a [parte um](https://dev.to/loboweissmann/eu-e-o-codigo-limpo-o-livro-parte-1-catequizacao-ia3) para entender este plural), mas hábitos que já existiam e foram documentados por outros autores (veja na terceira parte quando mostro que o Capítulo 4 possui uma versão anterior “atóxica” escrita por Steve McConnell no Code Complete anos antes).

Aqui entra então um problema que o sucesso do livro trouxe: esta confusão de termos e a personalização de práticas.

Sendo assim daqui pra frente quando eu disser “Clean Code” ou “Código Limpo” me refiro ao livro, não a código bem escrito.

## Nem todo código bem escrito segue a cartilha de “Código Limpo”

Apesar de ter achado o vídeo “[Clean Code Terrible Performance](https://www.youtube.com/watch?v=tD5NrevFtbU)” do Casey Muratory (há um texto dele também que pode ser lido [aqui](https://www.computerenhance.com/p/clean-code-horrible-performance)) muito tendencioso (merece um post a parte) amei o fato de ter vindo à tona e, de um certo modo, foi o pontapé que eu precisava pra finalmente escrever esta série de posts.

Apesar dos pesares foi levantado um fato muito importante ali: seu código não deve obrigatoriamente seguir o que está sendo dito em um livro apenas pelo fato de… estar em um livro muito conhecido e recomendado. E este talvez seja o único ponto no qual concordo 100% com Casey Muratory apesar dele não dizer isto de forma explícita em seu material.

Por que o termo “princípio” que é aplicado às técnicas apresentadas no “Código Limpo” é uma aberração e acredito que nos trouxe sérios problemas. Usamos o termo “princípio” para denotar ou o início de algo ou a **base** para a construção de alguma coisa (há inclusive uma conotação moral aqui – veja o que falo a respeito na [segunda parte](https://dev.to/loboweissmann/eu-e-o-clean-code-parte-2-descompilando-4550) da série).

Observe os resultados que aparecem pra mim ao buscar “Princípios do Clean Code” no Google:

![](https://i0.wp.com/devkico.itexto.com.br/wp-content/uploads/2023/05/busca_principios_clean_code_google.jpg?resize=775%2C776&ssl=1)

O último resultado grita para mim: _“quais são as **boas práticas de programação?** “_.

Em diversos artigos (como [este](https://www.linkedin.com/pulse/clean-code-%C3%A9verton-toffanetto/?trk=public_post) no LinkedIn) “Clean Code” é descrito como: _“conjunto de práticas recomendadas para a escrita de código considerado ‘limpo'”_. Há um problema sério aqui que é o seguinte:

uma “boa prática” só faz sentido quando é **adequada** ao **contexto**!

E apesar de no próprio livro os autores mostrarem o contexto em que suas refatorações são aplicadas, na prática o que vemos é as mesmas serem aplicadas como princípios. Aliás… o termo “prática” também acho ruim. Um termo muito melhor na minha opinião é “estratégia” pois já trás em si implícita e explicitamente a necessidade de um contexto.

E vou além: a partir do momento em que o termo “princípio” se popularizou também se cria a impressão de que no “Código Limpo” estão todas as estratégias possíveis para se escrever bom código. Ignora-se todos os livros que cito na primeira parte desta série e que listo aqui de novo:

<main id="main"><article id="post-3879" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"><div><div itemprop="text"><ul><li>Code Complete – Steve McConnellA Philosophy of Software Design – John OusterhoutTrabalho Eficaz com Código Legado – Michael FeathersThe Pragmatic Programmer – Andrew Hunt e David ThomasBeautiful Code – Andy Oram e Greg WilsonRefatoração – Martin Fowler (aqui tenho várias críticas, mas é um bom livro)The Practice of Programming – Brian Kernighan e Rob Pike (yeap: o “cara” do C e do Go)Os padrões definidos pela sua linguagem (ou linguagens) de programação e sua documentação oficial.Livros sobre a linguagem de programação também costumam expor boas práticas.</li></ul></div></div></article></main>

Resumindo: “Código Limpo” é apenas um pequeno conjunto de estratégias que só devem ser usadas quando o contexto realmente é o adequado.

## A responsabilidade do autor

Um dos comentários que recebi é de uma riqueza imensa e me fez pensar bastante:

![](https://i0.wp.com/devkico.itexto.com.br/wp-content/uploads/2023/05/image-7.png?resize=844%2C525&ssl=1)

> <cite>Wellington, na <a href="https://dev.to/loboweissmann/eu-e-o-clean-code-parte-3-o-nefasto-capitulo-sobre-comentarios-2if2">terceira parte</a> da série</cite>

Como alguém que já viu a própria toxicidade gerar efeitos terríveis me senti muito seguro em responder o Wellington. Autores (geradores de conteúdo em geral) acabam construindo fama, autoridade e se tornando modelos para outras pessoas, especialmente aqueles que estão dando seus primeiros passos.

E faz parte da civilidade saber dar feedbacks que não sejam agressivos, mas honestos, especialmente para aqueles que ainda estão construindo a própria segurança. Quem está começando aprende com quem tem mais experiência, é assim que funcionamos.

([Kant](https://pt.wikipedia.org/wiki/Immanuel_Kant) descreve este aprender pelo exemplo como imperativo categórico (eu tinha de meter um filósofo aqui, né?))

E este livro é normalmente oferecido a iniciantes, que por sua vez tem a tendência de seguirem o exemplo dos mais experientes (no caso o autor) e, com isto, podem perpetuar posturas que, apesar de carismáticas, são ruins. O Wellington concordou comigo depois (aliás, foi uma bela conversa ali).

## Fechando o livro

Concluindo: ainda acho que todo mundo deveria ler este livro aqui no Brasil pela sua importância e influencia, mas não pela sua qualidade.

(pessoalmente o único capítulo que gosto é o segundo – “Nomes Significativos”, escrito pelo Tim Ottinger)

O grande mérito do livro foi ter criado toda esta excitação em relação à escrita de código bem escrito, entretanto do ponto de vista cultural o considero um desastre pelas razões que expus em toda esta série e finalizei neste post.

E agora vocês sabem o que digo presencialmente a todos aqueles a quem indico a leitura deste livro.

## PS: 

O José Yoshiriro (tivemos uma discussão bem acalorada nos comentários) escreveu [um livro](https://www.casadocodigo.com.br/products/livro-deixe-seu-codigo-limpo) sobre Clean Code publicado recentemente na Casa do Código.

Ele havia me pedido para lhe dar minha opinião sobre o mesmo durante a escrita. Na época lhe disse que não via sentido no livro por que era mais jogo ler o original. Yoshiriro, eu tava errado!

O fato de você ter escrito um livro sobre o mesmo assunto mas com uma linguagem bem melhor é uma excelente razão para que as pessoas o leiam ao invés do Código Limpo original.

Além do Yoshiriro o Alexandre Aquiles escreveu um [livro sobre SOLID](https://www.casadocodigo.com.br/products/livro-desbravando-solid) também pela mesma editora. Apesar de ter duas cópias impressas do livro (uma delas o Alexandre me deu de presente) até hoje não consegui ler, mas também recomendo a leitura pois tenho certeza que a linguagem é muito boa.

## PS 2:

São estratégias, não princípios!

The post [Eu e o “Clean Code” – Parte 4: Fim da Leitura](https://devkico.itexto.com.br/?p=4099) appeared first on [/dev/Kico](https://devkico.itexto.com.br).