Eu e o “Clean Code” – Parte 2: Descompilando

Terminei a primeira parte da minha análise com a seguinte pergunta: “o modo como o livro foi escrito pode induzir a este comportamento dogmático/apaixonado?”

Quando falamos de “Clean Code” muitas pessoas se exaltam. Não lembro de ter visto este comportamento com outros livros. Este fenômeno é péssimo pois dificulta uma visão crítica sobre o assunto e, consequentemente, impede que todos avancem na qualidade do código que escrevemos.

Meu objetivo neste post é reduzir esta paixão para que possamos ter conversas melhores sobre este tema. Para tal vou dissecar a estrutura narrativa do livro, isto é, como o autor (qual deles?) organiza sua argumentação para nos convencer do que aqui é tratado.

A partir do momento em que estas estratégias estiverem claras a pergunta com a qual iniciei este post poderá ser respondida.

Alertas sobre o que você lerá

Para este post não me interessa a versão original, mas sim a tradução para o português publicada pela editora Alta Books por ser a edição mais popular no Brasil e, portanto, aquela que mais nos influencia.

Tal como no primeiro post meu objetivo não é estar certo, mas levantar questões para que possamos iniciar leituras mais críticas do material técnico que chega a nós.

Muito do que aqui escrevo se baseia nos argumentos que apresentei na primeira parte desta série, sendo assim recomendo que você a leia primeiro (link).

Cito alguns trechos do livro nos quais identifiquei alguns comportamentos bem peculiares. Não caberia aqui citar todos os trechos aonde os mesmos ocorrem. O objetivo não é tirar do contexto o que foi dito (pelo contrário, em todos os casos digo exatamente onde encontrar a citação), mas sim ajudar você que irá ler ou reler o livro a ter uma visão mais fria da obra.

Quem escreveu o livro?

Se você perguntar para a maior parte das pessoas elas lhe respondem prontamente: “Robert C. Martin, o Uncle Bob!”.

A resposta está parcialmente correta: ele escreveu o livro, mas também o organizou, e não é o único autor. Há outros:

  • Brett Schuschert – “Concorrência” e “Apêndice A – Concorrência II”
  • James Greening – “Limites”
  • Jeff Langr – “Classes” e “Emergências”
  • Kevin Dean Wampier – “Sistemas”
  • Michael Feathers – “Tratamento de Erro”
  • Tim Ottinger – “Nomes Significativos” (meu capítulo favorito)

Se você colocar estes autores em perspectiva, verá que na realidade são responsáveis por aproximadamente um terço do livro:observe o gráfico que fiz mostrando o número de capítulos por autor.

Esta informação parece boba mas faz toda a diferença na sua releitura pois lendo atentamente, apesar da tradução homogeneizar os estilos, verá que são visões e estratégias narrativas diferentes presentes no texto.

Levando em consideração que Robert Martin escreveu no mínimo dois terços do livro e é o responsável por compilar o trabalho dos demais autores, daqui para frente neste texto levarei em consideração apenas este como o autor e não levarei em consideração em minha análise os capítulos que não são de sua autoria.

Primeira indução – o título

A estrutura narrativa deste livro usa e abusa de emoções e valores a começar pelo título: “Código Limpo”. A escolha do título na minha opinião é um feito de marketing genial: é normal encontrar pessoas que referenciam qualquer boa prática de codificação como “código limpo” ou “clean code” (mesmo que estas práticas sequer estejam presentes no livro).

Limpeza aqui entra no mínimo como um valor estético do ponto de vista metafórico. O único caso que conheço de personagem que encara a sujeira como virtude é o Cascão (criado por Maurício de Souza). Este é o primeiro momento de indução do leitor a emoções que vão além de uma leitura técnica padrão.

Todo mundo quer fazer parte de um grupo que seja referência em seu ofício. Você quer ser um “clean coder” quando está começando e também quer “codificadores limpos” em sua equipe.

Segunda indução – o personagem “Uncle Bob”

Antes uma história envolvendo eu, Wittgenstein e Hegel

Por muitos anos um dos meus maiores heróis foi Wittgenstein. Lembro que apesar de não entender nada do que ele escrevia pensava comigo: “não entendo por que deve ser algo brilhante”. De fato era genial, muito mais do que imaginava na época com meus 21 anos.

E eu lia tudo sobre Wittgenstein: há vários livros fascinantes sobre sua época (A Viena de Wittgenstein), e biografias maravilhosas (Wittgenstein, o Dever do Gênio). Até que percebi algo curioso: o que realmente foi meu motivador inicial pra gostar tanto de Wittgenstein não era sua obra, mas sua vida (que é incrível e cercada de personagens históricos tão fascinantes quanto ele).

Wittgenstein: a maior parte dos problemas da Filosofia se deve a uma má compreensão da linguagem. (da TI também)

Quando percebi este meu desvio consegui pela primeira vez ler Wittgenstein direito e aprendi horrores no processo: até hoje é um dos autores que mais me influencia e mais me fez crescer, mas me arrependo de ter sido seduzido por todo este “glamour” no início: perdi muito tempo.

Outro autor que me influenciou demais foi Hegel: mas este teve uma vida que ao contrário da de Wittgenstein, era um tédio absoluto (não qualquer tédio, O Tédio Absoluto).

A escrita de Hegel é muito mais difícil e complexa que a de Wittgenstein, mas a entendi muito mais rápido. Na realidade, pra surpresa de todo mundo foi imediato, meu foco estava no conteúdo que Hegel escrevia, e não no Hegel.

O que aprendi com isto? Personagens carismáticos podem te desviar do foco principal ou construir uma aura que te impede de ver as coisas de forma fria.

De volta ao “Uncle Bob”

Na primeira parte desta série falei um sobre a construção da autoridade. A personagem do autor entra nesta fórmula também e claramente há a elaboração de uma personagem aqui, a partir do próprio nome (palavras são poderosas): “Uncle Bob” (o “Tio Bob”).

A escolha do apelido é novamente algo muito inteligente: reduz a gravidade do nome original do autor (Robert Martin) e ao mesmo tempo constrói proximidade com o leitor. A proximidade se dá não só pelo apelido mas também por serem apresentados no texto pequenos detalhes sobre a vida privada desta personagem. Um exemplo sutil mas doce é a ilustração de entrada do capítulo 2 (“Nomes significativos”).

(a história que contei sobre mim serviu a dois fins: te aproximei de mim ao mesmo tempo que mostrei como personagens podem nos seduzir ;) )

E claro, há inúmeras palestras que você encontra na Internet nas quais a personagem vai se construindo: falando sempre de forma direta (adora gestos), segura (aponta o dedo), bem humorada, madura, e cheio de exclamações. Ao mesmo tempo diversas menções a elementos de cultura geek são realizados (Star Trek, Star Wars) alimentando com isto o estereótipo do nerd.

Observe como no texto de Robert Martin (o “tio”) há as mesmas exclamações. No primeiro capítulo (“Código Limpo”) você encontra um exemplo clássico logo na segunda página:

(…) E que não precisarão mais de programadores, pois as pessoas criarão programas a partir de especificações.

Bobagens! Nunca nos livraremos dos códigos (…)

Robert Martin – Capítulo 1 – Código Limpo

A linguagem adotada na maior parte das vezes é coloquial, o que ajuda a criar o elo entre leitor e autor. Ele gosta das mesmas coisas que você, e tem uma linguagem simples, parecida com a sua.

Terceira indução – valores morais e falsas equivalências

Por todo o texto há menção a valores morais e estéticos, o que na minha opinião é perigosíssimo quando o assunto é código fonte. Entenda: não estou negando que haja um fator artístico ou ético no ofício, mas é um risco enorme quando estes aspectos projetam suas sombras sobre a engenharia.

No Epílogo do livro ao contar sua participação em uma conferência sobre desenvolvimento ágil em 2005 quando recebe uma fitinha verde de punho de Elisabeth Hedrickson na qual se encontrava escrito “Obcecado por testes” chega a dizer:

(…) Descobri que eu não poderia retirar minha fitinha do punho. Não por que ela estivesse presa a ele, mas por estar moralmente presa. A fita fazia uma afirmação evidente sobre minha ética profissional (…)

Robert Martin – Epílogo do livro Clean Code

E o uso de metáforas morais é encontrado em muitos pontos no livro. No capítulo 4 – Comentários -, por exemplo, você encontra o seguinte trecho:

Por que não gosto de comentários? Por que eles mentem. Nem sempre, e não intencionalmente, mas é muito comum.

Robert Martin – Capítulo 4 – Comentários

Na citação acima talvez você ache que estou pegando no pé, entretanto após ler as quase 400 páginas do livro encontrando metáforas morais como esta o tempo inteiro, não há como negar que um iniciante acabe por absorver toda esta “moralidade” e, com isto, adquirir uma leitura apaixonada pelo texto.

(Um post que preciso escrever é sobre este capítulo 4, que é um dos mais danosos da história da computação na minha opinião. Podem me cobrar isto)

É também comum o uso de exemplos extremos para se justificar a aplicação de boas práticas. No primeiro capítulo há uma comparação com medicina que é um belo exemplo:

(…) e se você fosse médico e um paciente exigisse que você parasse com toda aquela lavação das mãos na preparação para a cirurgia só porque isso leva muito tempo?

Robert Martin – Capítulo 1 – Código Limpo

Observe como são comparadas duas situações de gravidade absolutamente distintas: uma cirurgia (específica) e o ato de codificar qualquer coisa (absolutamente genérico). Lendo atentamente o texto você encontrará exemplos similares pelo texto. Não são situações equivalentes com este tipo de generalização no segundo caso.

Outro exemplo do apelo à estética você encontra na introdução do capítulo 5: “Formatação”:

Quando as pessoas olham o código, desejamos que fiquem impressionadas com a polidez, a consistência e a atenção aos detalhes presentes. Queremos que reparem na organização. Desejamos que suas sobrancelhas se levantem ao percorrer os módulos; que percebam que foram profissionais que estiveram ali.

Robert Martin – Capítulo 5 – Formatação

Observe que interessante o apelo a estética, à impressão que os outros terão de nós, é um chamado portanto à necessidade que todos tempos de sermos bem recebidos a um grupo se sobrepondo à necessidade real da formatação: facilitar a leitura.

Estes são apenas alguns exemplos que você encontrará no texto do livro. São trechos extremamente eficazes em manter o leitor colado ao texto, sem dúvidas, mas ao mesmo tempo induzem o leitor a emoções que acabam por gerar as situações que descrevi na primeira parte desta série.

O trecho sobre “Escolas de Pensamento”

Antes de finalizar esta segunda parte preciso falar sobre o trecho “Escolas de Pensamento” pois muitas pessoas o referenciaram para mim dizendo que neste trecho o autor se exime do comportamento dogmático dos leitores. Discordo.

Logo no primeiro parágrafo encontramos:

(…) Apresentaremos nossos conceitos como verdades absolutas, e não nos desculparemos por nossa austeridade. Para nós, a essa altura de nossa carreira, tais conceitos são absolutos. São nossa escola de pensamento acerca do que seja um código limpo.

Robert Martin – Capítulo 1 – Código Limpo – grifos do autor

Na sequência é feita uma comparação muito pobre com escolas de artes marciais. Não há sentido na comparação pois diversas das práticas mencionadas no texto são recomendações comuns em nossa indústria (funções pequenas, separação de responsabilidades, etc) e não “novidades” exclusivas trazidas por esta “escola de pensamento”.

O uso da metáfora “escola de pensamento” é inclusive bastante controverso pois fica parecendo que o autor está comparando sua escola a um “time” e seus “seguidores” a torcedores.

Respondendo à pergunta inicial e prosseguindo

Na minha opinião, sim, o modo como “Código Limpo” é escrito pode induzir seus leitores a um comportamento dogmático.

Há uma série de fatores aqui que levam a isto:

  • Tal como disse no primeiro post, o fato de se terminar um livro é considerado um grande feito (e é) por muitos e, como tal, é comum a defesa do conteúdo com unhas e dentes.
  • É criada uma conexão direta com o leitor a partir da construção de uma personagem que é o autor.
  • O uso repetido de metáforas baseadas em valores estéticos e morais induz aqueles que estão iniciando a terem uma visão mais focada em princípios morais (do autor) que técnicos.

É por esta razão que sempre digo para ler este livro com muito cuidado e, ainda mais importante, junto a outros materiais. As práticas ali contidas não foram criadas pelos autores que ali escrevem, são o resultado do trabalho de outras pessoas e da prática coletiva do ofício de construção de sistemas.

Há uma oportunidade perdida neste livro: já que há tantas metáforas morais/estéticas, é uma pena que sejam apenas metáforas, e não tenha havido aqui um aprofundamento nas mesmas.

(talvez haja fora do livro, mas não conheço)

Você não deve fazer um julgamento moral pelo modo como este texto foi escrito: esta foi a estratégia adotada pelo autor e que foi muito bem sucedida. Talvez se não o tivesse feito desta forma uma multidão de pessoas jamais lesse um livro sobre boas práticas de construção de software.

Infelizmente esta linguagem apaixonada acaba por gerar o comportamento que menciono no primeiro post. Uma pena: empobrece algo que tem muito valor. Como dizem por aí “é bom, mas é ruim”.

Meus próximos posts serão sobre capítulos específicos do “Código Limpo”. Começarei pelo capítulo 4 – Comentários, que na minha opinião nos trouxe mais problemas que soluções.

PS: uma última citação

Quando terminei o texto me lembrei do Prefácio do livro, escrito por James O. Coplien.

(…) Comprei dois pacotes dessa iguaria essa manhã e nela veio este antigo ditado dinamarquês:
(… – tá escrito em dinamarquês)
“Honestidada em pequenas coisas não é uma coisa pequena”. Era umb om presságio para com o que eu já desejava dizer aqui.

James O. Coplien – Prefácio de Código Limpo

Não falei??? O prefácio já nos avisa! :D

PS 2: algo que ajuda nas leituras técnicas

Autores carismáticos são adoravelmente perigosos. Eles te seduzem sem que você perceba. Algo que sempre me ajudou bastante é conhecer as falácias lógicas mais comuns. Seguem alguns links legais:

23 comentários em “Eu e o “Clean Code” – Parte 2: Descompilando”

  1. José Yoshiriro

    Olá, Henrique. Parabéns pelo excelente texto novamente. Seguem minhas opiniões.

    Primeira indução – o título

    Sobre o marketing do nome. Não entendi. Isso foi uma crítica negativa? Se sim, o que dizer do seu livro “Vire o Jogo com Spring Framework”?. Veja: “Vire o jogo” com 1 framework. Não achou que teve um marketing aqui? Em tempo, achei o seu título ótimo, assim como a obra, que recomendo sempre e até recomendei à biblioteca da faculdade onde leciono.

    Sobre o termo limpo. Aqui é apenas uma questão de idioma. O termo em inglês, “clean”, não se aplica só a limpo no sentido de “não sujo”. Procure o que significam os termos “clean work” e “clean job” em inglês. Esse termo “clean” usam até para golpes de artes marciais para definir um golpe muito bem dado, com a técnica e força perfeitas. Enfim, não foi usado no sentido de “não sujo” mas como “organizado”, “bonito de ver”. Dai em português usaram o “limpo” mesmo, a tradução direta, que só tem o significado de “não sujo”. É um termo bem comum em inglês.

    De novo veja como parece estranho você criticar o uso do “clean” argumentando que “ O único caso que conheço de personagem que encara a sujeira como virtude é o Cascão”. Ora, eu não poderia dizer então que “o único caso que conheço de personagem que encara continuar perdendo o jogo é o pessoal da família Adams” se quisesse criticar o título “Vire o Jogo com Spring Framework”?

    De novo: “ Este é o primeiro momento de indução do leitor a emoções que vão além de uma leitura técnica padrão.” E dizer que vai ”virar o jogo com o spring” não induz o leitor a nada mais humilde que “virar o jogo”?

    Desculpe bater nessa tecla, mas acredito que prometer que vai “virar o jogo” é até mais forte que prometer que vai ensinar técnicas de código limpo (organizado). E, de novo, não vejo nada de errado no seu título, assim como não vejo no Clean Code.

    Enfim, mas qual o problema de caprichar no marketing? Contanto que não se minta no título, claro, eu não vejo problemas.

    Segunda indução – o personagem “Uncle Bob”

    Não, pera… é sério que você vê problema em o autor falar bem de si em sua própria obra? Pra mim o problemas seria “belpesciar”, ou seja, mentir, exagerar e tal.
    E será mesmo que o autor desviou o foco para si mais que para seus ensinamentos? Faça um teste: pergunte a 20 pessoas aleatórias (devs ou afins, claro) que pelo menos ouviram falar do Clean Code se sabem quem é seu autor.

    E sobre como o uncle Bob “criou um personagem”, bom, e qual o problema? Eu veria problema em caso de mentiras, exageros ou declarações do tipo “quem discorda de mim é um idiota” (bem ao estilo Fábio Akito, por exemplo). Sem mentiras nem megalomanias só vejo motivo de palmas.

    Terceira indução – valores morais e falsas equivalências
    Bom, aqui concordo contigo. Na minha obra segue uma linha bem diferente quanto a isso, usando apenas analogias, digamos, leves, comparando com uma cozinha, por exemplo.
    Mas, apesar de concordar contigo no fato, não concordo que isso seja tão perigoso assim.
    Você fala muito do lance do autor gerar emoções. Desculpa, mas ele fez isso sem ensinar mentiras nem a praticar comportamentos extremistas, é mérito dele! Você não acha que gera emoções e pessoas que concordam 100% contigo ao ler seus excelentes trabalhos?

    O trecho sobre “Escolas de Pensamento”

    Aqui é onde discordo frontalmente de você. Aqui pareceu uma questão até pessoal.

    Sinceramente, vi aqui um grande esforço seu pra fazer uma crítica aqui. O cara foi explícito e você tentou pegar algo implícito pra discordar do que está explícito no texto.

    No texto logo posterior a esse que você menciona ele é mais explícito ainda sobre várias escolas de pensamento (no caso, de artes marciais, que é a analogia dele) estarem certas. Não tenho o texto traduzido, mas o original diz (destaques meus):

    “None of these different schools is absolutely right. Yet within a particular school we act as though the teachings and techniques are right. After all, there is a right way to practice Hakkoryu Jiu Jitsu, or Jeet Kune Do. But this rightness within a school does not invalidate the teachings of a different school.”

    E segue ainda, e, de novo bem explícito: “The techniques and teachings within are the way that we practice our art.”

    Mais claro ainda depois: “But don’t make the mistake of thinking that we are somehow “right” in any absolute sense. There are other schools and other masters that have just as much claim to professionalism as we. It would behoove you to learn from them as well.”

    Eu poderia ainda citar outras partes explícitas sobre a obra não se afirmar como verdade absoluta, mas acho que já está bom.

    E resumo, você reconhece que o autor é bom de marketing e que tem ótimas técnicas para seduzir o leitor. Mas acha isso de certa forma ruim por talvez “seduza demais” o leitor ao ponto de fazê-lo se tornar um “cedo seguidor do uncle Bob e sua obra”.

    Bom, o escritor que propõe técnicas de programação ou de limpeza de motor ou de fabricação de bolos, imagino que vai tentar “se vender” e defender com bons argumentos as técnicas que ensina.

    Mas se o autor é tão bom em marketing pessoal e escrita que, mesmo sendo MUITO e VÁRIAS VEZES explícito em sua obra sobre não estar com a verdade suprema, muita gente o torna “infalível”, até que ponto isso é digno de crítica? Aqui entramos num debate mais filosófico, creio eu. E é aqui o maior valor desses seus posts sobre o Clean Code, penso eu.

    Até que ponto um autor tem responsabilidade sobre as consequências de sua obra ou sobre como os leitores lidam com ela?

    1. Kico (Henrique Lobo Weissmann)

      Oi Yoshiriro,
      entendo que você esteja na defensiva por que vai publicar um livro sobre Clean Code. E acredito também que você tenha lido de forma muito pouco atenta o que escrevi e ignorando os avisos que fiz no início e fim do texto. Então vamos lá.

      Aliás, este seu comentário apaixonado é exatamnte o que descrevo no primeiro post.

      Mas vamos lá: o objetivo do texto, tal como dito na introdução, é mostrar a estrutura narrativa do livro, isto é, quais as estratégias que o autor adota na sua escrita e como elas podem induzir ao comportamento que descrevo na primeira parte (leia atentamente as coisas que você escreveu e verá que é muito próximo do que narro ali).

      1) Título do livro

      Primeiro você faz uma comparação com o título do meu livro: te contar uma coisa. Não fui eu quem deu este título, foi a editora na época. Eu nem gosto deste nome, acho cafona pra daná. Prosseguindo.

      Sobre o título do livro: você leu na introdução eu falando que meu foco aqui é a edição em português? De resto, é o que está descrito ali.
      Inclusive sequer faço uma crítica negativa: chego a dizer que o nome é genial inclusive. Leia novamente o texto.

      2) Sobre o personagem Uncle Bob

      Observa como você começa a discussão comigo: “Não, pera… é sério que você vê problema em o autor falar bem de si em sua própria obra? ”

      Vê o comportamento exaltado que, este sim, CRITICO na primeira parte? Leia novamente o que disse no texto: o que estou apresentando é como o autor se apresenta na obra, nada mais que isto.
      Inclusive elogio novamente a questão aqui.

      De novo, leia novamente o texto.

      3) Sobre o uso de metáforas morais e falsas equivalências.

      Você escreve: ” Você não acha que gera emoções e pessoas que concordam 100% contigo ao ler seus excelentes trabalhos? ”

      Sinceramente, se o assunto é software, espero que o que eu faço não gere este tipo de emoção. Nada mais perigoso que pessoas exaltadas trabalhando com algo que é essencialmente engenharia.

      4) Sobre as escolas de pensamento

      Ali é bem a cerejinha do bolo. Se você ler novamente verá que minha crítica é justamente pelo fato de:

      a) Ele se apropriar de técnicas que são padrão da indústria faz anos.
      b) Usar a metáfora de escolas marciais muito parecidas com as que usamos em times de futebol.

      O que mostra mais uma vez a construção do comportamento que apresentei.

      Resumindo Yoshiriro,
      seu comentário exaltado confirma tudo o que disse. E ao usar estes termos comigo aqui, mais uma vez, impede um diálogo saudável (a parte que tenta me chamar de hipócrita em relação ao meu livro), exatamente como descrevi na primeira parte do texto.

      Quando estiver menos exaltado a gente conversa, ok?

  2. Na minha leitura dos livros, Robert Martin, li o codigo limpo e a arquitetura limpa. Me pareceram mais livros autobiograficos do que tecnicos. E nos livros ele cita consistentemente coisas da propria vida para validar argumentos tecnicos. Isso para mim é ainda mais gritante na arquitetura limpa

    1. Kico (Henrique Lobo Weissmann)

      Concordo, no “Arquitetura Limpa” isto é gritante: vou até reler a introdução pra ver se ele não faz menção a isto logo no início.
      Há outro aspecto interessante também: são autores que se auto referenciam. Ele referencia outros autores que, por sua vez, fazem referências e ele como retorno.

      É bem interessante.

  3. José Yoshiriro

    Oi, Henrique.

    Não estou na “defensiva”. Ora, discordar de você é estar na defensiva?

    Creio ter sido bem precipitado seu julgamento mas fácil de entender dada a coincidência sobre meu livro. Mas te garanto que teria usado exatamente os mesmos argumentos caso não tivesse livro nenhum em jogo.

    “Aliás, este seu comentário apaixonado é exatamnte o que descrevo no primeiro post.” Será? Eu não defendi o Uncle Bob. Leia com atenção o que escrevi para entender o centro do meu ponto: Eu apenas discordo de 1 e somente 1 ponto seu: Que a obra Clean Code é responsável pela legião de pessoas que a considera como que infalível, dogmática. Aliás, concordei com esse ponto das pessoas acharem isso erradamente quando comentei o pont anterior, lembra?

    Então, desculpe, mas não tem paixão do meu lado não. Apenas argumentos quanto a 1 e somente 1 ponto de sua crítica. Cuidado para não achar que sempre que discordam de você é “estar na defensiva” ou estar “apaixonado”, Henrique.

    Você disse estar aberto ao debate dai quando vem o primeiro argumento com 1 discordância é “defensiva” e “apaixonado”. Isso te parece razoável?

    Mas quero ratificar que mesmo assim não diminuiu 1 gota minha admiração por você. São coisas que acontecem na comunicação assíncrona mesmo, esses desentendimentos ;)

    Sobre o título. Henrinque, na boa: você foi obrigado a aceitar esse título? Desculpe mas já estou no segundo livro pela mesma editora pelo menos comigo ficou bem claro que o autor tem a palavra final no título.

    Sobre o personagem Uncle Bob. Henrique… Henrique… Seu post é sobre o quê? Qual o objetivo dele? Tentar mostrar como, segundo você, a obra Clean Code induz o leitor a criar um ar de “infabilidade” ou algo assim na obra. Logo, todos os pontos que você citou são relacionados a isso. Ou só esse tópico não tinha nadinha de nada a ver com esse ponto? Eu apenas disse que se isso que ele fez induz o leitor ao que você acredita que induz, então basicamente a maioria dos autores cometem o mesmo “erro”.

    Sobre o uso de metáforas morais e falsas equivalências. Bom aqui acho que ficamos 100% alinhados ;)

    Sobre as escolas de pensamento. Henrique, olha o que você escreveu: “Ele se apropriar de técnicas que são padrão da indústria faz anos.” Se apropriou? Oi?! Amigo, precisa eu colar aqui os trechos onde ele diz que, sim, são padrões de anos e não criações dele?

    “seu comentário exaltado confirma tudo o que disse”
    Desculpa mas não confirma nada. Garanto que se der minha resposta à várias pessoas discordarão disso. Apenas questionei 1 e somente 1 ponto: a obra induz o leitor a achar ela como que infalível e dogmatica? É somente esse ponto que eu discordo de você. Eu acho ela dogmática e infalível? Desde meu comentário ao outro post deixei claro que não. Então como eu “confirmei tudo que disse”? Desculpa, mas não.

    E mais: Exaltado? Por que exaltado? Só porque discordei de você? Porque escrevi muito? Usei ofensas? Fui irônico? Fiz alguma conclusão sobre os motivos de você estar escrevendo o que escreveu como você fez comigo (a história da “defensiva” e o motivo dela até)? Defina exaltado, no caso.

    1. Kico (Henrique Lobo Weissmann)

      Yoshiriro, leia as expressões que está usando e vai entender o que quero dizer com “exaltado”.

      Ficar aqui no disse não disse em nada adianta.

      E minha experiência com a editora (novamente você forçando pra fora do tema) nada tem a ver com meu texto, foi você que trouxe a questão.

  4. José Yoshiriro

    Henrique, tudo bem?

    Amigo, você está bem? Na boa, quem começou adjetivando o debatedor aqui foi você. Aliás, até agora eu não o fiz.

    Faz um teste, de verdade: dá nossos diálogos pra uma pessoa que não os leu ainda mas tira nossos nomes. Vou fazer o mesmo aqui pra ver se eu te tratei mal ou fui grosso, sei lá. Aliás, se te ofendi de alguma forma, peço desculpas pois não foi o motivo nunca. Insisto que só discordo de 1 e somente 1 coisa (deve ser a 4ª vez que digo isso): que o Clean Code induz os leitores a “glorificarem” ele ou algo assim. Eu concordo, falando isso de novo, que a obra tem uma legião de “adoradores”, só discordo contigo sobre o que levou a isso. É tão simples quanto e não entendo porque todo esse tom pesado em cima de mim, Henrique, de verdade.

    Henrique, eu só sai um pouco do tema justamente pra responder aos adjetivos que me colocou, e colocou de maneira precipitada, insisto. Onde eu sai do tema na minha primeira resposta, poderia me mostrar?

    Eu falei do titulo de seu livro como parte do meu argumento sobre “título marketeiro” que você trouxe a tona. Fiz de maneira bem respeitosa. Quem falou de editora foi você primeiro. Eu só *perguntei* se você foi obrigado a aceitar o título.

  5. José Yoshiriro

    Henrique, talvez a parte que tenha te deixado mais chateado foi sobre o título do seu livro. Permita-me explicar para que não ocorram atritos desnecessários entre nós.

    Amigo, EU TE JURO: não passou pela minha cabeça que você era hipócrita por causa do título do seu livro. Apenas pensei que:
    1. Você tivesse sido o autor do título. Talvez 99 em 100 pessoas achem isso, não concorda?
    2. Você não tivesse percebido ainda como o título de sua obra tem um bom marketing (no bom sentido, o de saber vender, sem mentiras ou falsas promessas)

    Fiquei aqui muito triste em ler que você cogitou que eu te achava hipócrita. Te juro amigo, não passou mesmo na minha cabeça isso.

    De verdade, se quiser detonar minha obra, do ponto de vista técnico, fique a vontade. pode pode num post de “piores leituras de 2023”. Só peço, de coração, que não ache eu te chamei de hipócrita ou que penso isso de ti.

    Insisto que de tudo isso que tá rolando aqui só discordo de ti quanto ao lance do Clean Code induzir o leitor a “divinizar” ele ou algo assim (5ª ou 6ª vez que repito isso rsrsrs).

    1. Kico (Henrique Lobo Weissmann)

      Prezado, você não entendeu nada.

      O objetivo de todos os posts não foram para diminuir o tamanho do livro (apesar de você repetir isto em seus comentários ad nauseam), mas pra proporcionar uma leitura melhor devido à postura exaltada que muitos, como você, fazem do trabalho. Vou citar apenas algumas das coisas que você disse aqui:

      * Você diz que eu critico o termo “Clean” quando na realidade digo que foi brilhante.
      * Vai além na questão do título e apresenta uma falta equivalência ridícula entre o título do meu livro e o que estou falando a respeito. Respondo que eu mesmo não gosto do título e vêm com um “você foi obrigado a aceitar esse título? Desculpe mas já estou no segundo livro pela mesma editora pelo menos comigo ficou bem claro que o autor tem a palavra final no título”.
      * Não entende que em momento algum estou dizendo que o livro é ruim, mas sim que está sendo feita uma análise técnica/literária do conteúdo.
      * Diz que estou criticando a criação da personagem Uncle Bob quando na realidade no meu texto não há qualquer juízo de valor em relação a isto: apenas o fato de que se você se atentar ao personagem ignora a obra.
      * Ignora totalmente o início do texto em que digo que só iria falar sobre a tradução para o português por ser a edição mais conhecida no Brasil.
      * Sobre sua exaltação: basta ver as expressões que você usa nos seus comentários e o TAMANHO dos mesmos (maiores que o texto original)
      * E quanto ao experimento público que pediu, tá aqui: https://twitter.com/loboweissmann/status/1655584391203004416?s=20

      Resumindo: é exatamente o que disse no primeiro post.
      Me desculpe, você claramente não está sabendo conversar.

      A resposta mesmo que deu ao Renan ali em cima mostra isto. Tá parecendo um fanboy.

      Sem mais.

  6. José Yoshiriro

    Oi, Renan.

    Sim, isso é fato. Mas, será que isso é ruim, bom ou só é mais um método, um estilo de ensinar? Será que esse método/estilo funcionaria para outras áreas de conhecimento?

  7. Uma pena ver uma pessoa que investiu tempo, procurou fontes, embasar seu ponto de vista em diferentes contextos, produzir um texto super coeso e ter que lidar com comentarios desse tipo… Ainda bem que meu blog eh irrelevante em termos de audiencia. Eu posso colocar minhas reflexoes com mais de 140 caracteres sem haters 🙂
    Apesar de discordar de um ponto ou outro eu achei a producao do texto muito valida e necessaria, uma vez que a nossa area esta ficando cada dia mais rasa (vide ‘discussoes’ de Twitter que so rodam entre “CLT x PJ”, “Mediocre x sei la o que”, “ingles ou nao”). Precisamos gerar discussoes mais maduras como essa.
    O texto me abriu a mente para coisas alem da tecnologia. Obrigado pelas suas reflexoes.
    Ao inves de discutir pessoas deveriamos estar discutindo ideias.

  8. José Yoshiriro

    Henrique,

    amigo, infelizmente você parece ter levado pro lado pessoal. Eu não deveria ter citado seu livro. Isso claramente mexeu contigo. Li e li novamente e me parece que você está ou só lendo “por cima” o que escrevi ou está com lendo carregado de sentimentos. Me desculpe, de verdade. De novo, não quis te chamar de hipócrita, só peço que acredite nisso.

    Cara, com assim eu sou fanboy? Meus argumentos valeriam para qualquer pessoa. Eu tentei refutar seus argumentos *apesar de* serem para o uncle Bob não *por causa* de serem dele. E que fanboy concordaria com um tos tópicos que você citou, o de valores morais como eu fiz?

    Vamos aos seus bullets.

    “O objetivo de todos os posts não foram para diminuir o tamanho do livro (apesar de você repetir isto em seus comentários ad nauseam)”
    Desculpe, mas onde eu disse e repeti isso? Poderia me mostrar por favor?

    “Você diz que eu critico o termo “Clean” quando na realidade digo que foi brilhante”
    Diz que foi brilhante mas foi tipo alguém elogiando a oratória de um político que não gosta. Teve até a menção ironônica lá no lance do casção. Eu apenas defendi toda obra cujo título é “marketeiro” (contanto que não seja mentiroso, claro).

    “* Vai além na questão do título e apresenta uma falta equivalência ridícula entre o título do meu livro e o que estou falando a respeito. Respondo que eu mesmo não gosto do título e vêm com um “você foi obrigado a aceitar esse título? Desculpe mas já estou no segundo livro pela mesma editora pelo menos comigo ficou bem claro que o autor tem a palavra final no título”.”
    Amigo, desculpa mas essa parte já ficou claro que mexeu muito contigo. Eu deveria ter citado outros livros de outros autores e tenho certeza que todo o tom desse debate seria outro. De novo, peço desculpas e não quis te chamar de hipocrita ou algo assim.

    “* Não entende que em momento algum estou dizendo que o livro é ruim, mas sim que está sendo feita uma análise técnica/literária do conteúdo.”
    Poderia me mostrar onde eu afirmei ou sequer dei a entender que eu disse que você afirmou que o livro é ruim? Ou pode me mostrar onde eu exaltei o livro?

    “* Diz que estou criticando a criação da personagem Uncle Bob quando na realidade no meu texto não há qualquer juízo de valor em relação a isto: apenas o fato de que se você se atentar ao personagem ignora a obra.”
    Poderia mostrar nos meus textos onde eu disse que você criticou a criação da personagem Uncle Bob?

    ” Ignora totalmente o início do texto em que digo que só iria falar sobre a tradução para o português por ser a edição mais conhecida no Brasil.”
    Não ignoro totalmente não. Simplesmente disse que eu não tinha a versão em português. Inclusive disse “Não tenho o texto traduzido, *mas* o original diz”. Até te pergunto: na versão traduzida o texto não está tão explícito quanto no original quanto a orientar os leitores sobre a “não fabilidade” da obra?

    “* Sobre sua exaltação: basta ver as expressões que você usa nos seus comentários e o TAMANHO dos mesmos (maiores que o texto original)”
    Fiquei exaltado sim, mas só depois de seu comentário sobre o lance de você ser hipócrita. Isso me exaltou porque tenho uma grande admiração por você. Não a toa te convidei pra comentar meu livro de Spock. Se um dia encontrar com algum ex-aluno meu é extretamente alta a chance dele dizer que falei de ti em aula, indiquei seu blog e seus livros.
    Isso sim me deixou exaltado, não seu post. Veja que começei a usar CAIXAS ALTAS justamente depois disso e só em frases que se referem a esse ponto da “hipocrisia”.

    “* E quanto ao experimento público que pediu, tá aqui:”
    Bom, foi bem diferente do experimento que pedi, que deveria ser sem nossos nomes para não haver influcência do “gosto do Kiko x gosto do Yoshi” e não deveria já ter sido iniciado com juízo de valor “Apareceu um comentário no meu blog que é exatamente o comportamento que narro na primeira parte do texto sobre Clean Code.”.

    Aliás, Henrique, não meu comportamento não é exatamente o que você narra na primeira parte. Você parece estar confundido o fato de eu discordar pontualmente de você com concordar totalmente com o Clean Code / uncle Bob. De novo, parece que você está lendo “por cima” e/ou com muita emoção o que escrevo. Vejamos.
    No primeiro post você fala sobre a “endeusação” do livro, basicamente. Sobre como acham ele dogmático, como pega até mal duvidar de pontos dele, como ele é usado em kits de boas vindas etc. Estou certo?
    Poderia então me mostrar onde meu comportamento foi nesse sentido? Um boa leitura, e com calma, do que eu escrevi aqui viu que meu foco foi 1 e somente 1: não defender o livro ou o autor, mas sim discordar de que ele induz o leitor a fazer dele dogmático. É a 7ª vez que repito isso.

  9. José Yoshiriro

    Olá, Sales.

    Amigo, você escreveu “Uma pena ver uma pessoa que investiu tempo, procurou fontes, embasar seu ponto de vista em diferentes contextos, produzir um texto super coeso e ter que lidar com comentarios desse tipo”.

    Para contextualizar: Eu sou um grande admirador do Henrique. Ele até escreveu, a pedido meu, um comentário no meu livro sobre Spock. Eu sempre falo dele para meus alunos e recomendo suas obras a eles.

    Sobre o que você escreveu, eu gostaria de saber se “comentarios desse tipo” (menção negativa) foram os meus. Se sim, poderia me dizer onde acha que “pequei”? Eu sempre estou aberto a críticas pois sempre quero melhorar, de verdade. Seja sincero, por favor. Agradeço.

    1. Olá José,
      De fato a parte do “comentários desse tipo” foram referentes aos seus sim 🙂
      O que quis dizer com isto foi que a sequência de comentários me pareceram um tanto emocionados e rapidamente desviados do foco (discutir pessoas ao invés de ideias), Por isso a conotação negativa.
      No mais é óbvio que podemos discordar uns dos outros, mas mesmo nas dicordâncias devemos construir pontes ao invés de muros (muito vai depender da linguagem empregada).
      Exemplo de discordância errada na minha opinião: “O que vc falou não presta. Vc tem certeza mesmo que tal coisa é errada??”
      Exemplo de discordância correta na minha opinião: “Em relação à opinião X eu tenho um diferente ponto de vista. Eu acredito que se você olhar sob a perspectiva Y, você vai ver que [insira aqui sua opinião]”
      Acho que é isso 🙂
      Abraços

  10. José Yoshiriro

    Henrique, se você topar, a gente “zera o cronômetro”.

    Em respeito a nossa “tipo-quase-amizade” (não dá pra dizer amizade porque nunca tomados um café ou cerveja juntos, infelizmente kkkk) de vários anos. Poxa, desde quando a gente conversa? Desde 2015 pelo que vi aqui nos meus emails.

    Começamos com o pé esquerdo aqui, aliás eu, em meter seu livro no meio. Foi ingenuidade minha. O plano era um mas a execução deu errado hehehe.

    Vou tentar resumir bem o que achei deu seus pensamentos e argumentos até aqui:

    1. Sim, acho que o Clean Code não é infalível e que ele tem uma legião de seguidores dogmáticos e isso tá nos comentários do primeiro post que fiz no Linkedin. Pode confirmar lá.

    2. Não, não sou fanboy do uncle Bob. Note que todos os meus argumentos no primeiro comentário finalizavam com algo como “todos que fazem isso”. Meus argumentos foram *apesar de* se tratar dele, não *por ter* sido ele. Amigo, sou mais fã seu do que dele. Se um dia encontrar com ex-aluno meu poderá confirmar isso. Certamente falo mais de ti do que dele nas minhas aulas.

    3. Sobre seus 2 primeiros argumentos: discordo deles simplesmente porque se aplicam a uma imensidão de autores e livros. Olha na Amazon e veja quantos livros de programação têm um título “marketeiro”. Dai dá uma olhada nas redes sociais dos autores pra ver se a imensa maioria não tenta criar um “personagem” (como blog, apelidinhos, canais no youtube, palestras, etc etc etc). Era esse e somente esse meu ponto.

    4. Basicamente concordei com seu 3º argumento. Um fanboy não faria isso e defenderia o uncle Bob com unhas e dentes aqui dizendo “ele foi é brilhante usando essa técnica… o miserável é um gênio, como diria o Vegeta” hahaha

    5. Com seu último argumento não tenho como concordar porque a obra simplesmente transborda textos explícitos alertando o leitor sobre a não perfeição da obra e recomendando leituras divergentes até.
    Aqui eu, respeitosamente, mas sinceramente, achei que você forçou a barra. E, caso na versão traduzida esses textos não estejam claros, manda aqui que me retrato, sem problemas. Mas não tenho mesmo a versão traduzida. Não foi nenhuma “jogada pra ganhar o debate” não, de verdade.

    “Mas e ai, por que então acha que o livro tem essa legião de seguidores dogmáticos?”

    Claro que o estilo de escrita do livro e seu título colaboraram. Nenhum livro com título ruim e mal escrito faz sucesso de público e cria legião de fanboys.
    Mas, como eu disse antes também, pode conferir num comentário do 1o post no linkedin: se eu ou você tivessemos escrito a mesma obra, com o mesmo título e conteúdo, não teria se tornado o que se tornou.

    O que teve a mais, então?
    A fama dele, como te disse antes. Foi um dos signatários do manifesto ágil. Já teve 2 best sellers de programação antes do Clean Code. Etc. Se a fama é justa ou exagerada, aí é outro debate.

    Minha única defesa pontual do uncle Bob em sí é o fato de ele, sim, pelo menos na obra original (não sei como traduziram isso aqui no Br), falar várias vezes na obra sobre ela não ser perfeita e pra lerem “escolas” diferentes. No meu entendimento, ele fez a parte dele aqui.
    Essa é minha única defesa direta a ele. As demais foram defesas de todo título marketeiro honesto e todo marketing pessoal honesto.

    Espero que tenha esclarecido agora.

  11. Fiz um comentário no primeiro artigo sem saber o quê o segundo tratava e mais um ótimo texto que complementa e trás uma análise precisa (ao meu ver) do modo de escrita do livro.
    Atualmente estou lendo o novo livro de “tio Bob”, o Craftsmanship Limpo, que até o ponto em que li, me aparenta ter uma abordagem um pouco diferente. Pela primeira vez, o autor (ou o tradutor) tentar conversar com o público brasileiro. Provavelmente uma mudança de postura para se aproximar a novos públicos.

    Eu passei por várias fases com relação a esse livro, já achei ele lei absoluta, quando estava no início da carreira, já odiei por me decepcionar em outro momento profissional, mas após uma certa maturidade e alguns outros livros depois vejo ele como uma ferramenta em que tenho que pegar aspectos que façam sentido para o meu momento profissional com a consciência de que pode mudar. Acho ele importante por trazer uma discussão interessante para o meio do palco. Outros livros que acho polêmico e espero análises sua algum momento são o DDD de Evans e o Programador Apaixonado.

    Mais uma vez parabéns pelo artigo e um forte abraço!

    1. Kico (Henrique Lobo Weissmann)

      Oi Ivan, obrigado!

      Ou, a gente gostando ou não do livro, temos de ler, né? Todo mundo fala a respeito.

      Este novo não li, e faz todo o sentido focar em mercados “emergentes” já que lá já saturaram a coisa: muito legal a gente ser visto lá fora, né?

      Meu problema com Código Limpo (o livro) é que temos aqui um autor MUITO sedutor. E isto nos leva a erros terríveis.

      Meu próximo post na série é justamente sobre isto.

  12. Jorge Augusto Reis

    O Kiko faz um Dógma muito maior que a própria obra e não aceita qqr crítica, que o livro tem seus pontos altos e baixos acho que todo mundo já sabe… mas o tom soberto da crítica é ridículo, e vai argumentar que … não é essa intenção, em resumo, gerar hate pra engajar.

    1. Kico (Henrique Lobo Weissmann)

      Oi Jorge, não acho que seja hate nem dogma. Se fosse dogma não teria justificativas (e eu as mostro aqui). Se fosse hate eu só falaria mal, e aqui até falo pontos positivos. É apenas uma análise de discurso.

  13. Vejo que os comentarios acabam virando outro post… portanto vou ser rapido 🙂

    Post super lucido sobre esse inferno que virou o culto do “Clean Code” e o chato do Uncle Bob. Robert eh chato e eu ja trabalhei com ele na Ericsson em um projeto que supostamente ele estaria ajudando como consultor.

    O cara so forcou suas teorias com baixissima aplicacao no real problema… falou, falou e nao entregou uma linha. Criou uma tensao desnecessaria no time, entre outras c#gadas.

    Ele apenas pegou um punhado de teorias que ja existem e compilou em um livro de facil digestao – tanto q temos um culto sobre isso com pessoas que leram apenas este livro (e talvez nem tenham lido)

    Parabens pela bela analise, Kiko.

    1. Kico (Henrique Lobo Weissmann)

      Obrigado Cássio! Que ótimo ter aqui um relato em primeira mão, valeu!

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Rolar para cima