- É uma conversa sobre design de software entre Robert “Uncle Bob” Martin e John Ousterhout, realizada de setembro de 2024 a fevereiro de 2025
- Ambos escreveram livros sobre design de software
- Mostraram diferenças de opinião em três temas principais: comprimento de métodos, comentários e Test-Driven Development
- O foco central da conversa é como reduzir a complexidade do código, melhorar a legibilidade e escrever testes de forma adequada
Comprimento de métodos
- Uncle Bob (doravante UB) enfatiza a posição de que “funções curtas são boas, e, se possível, devem ser divididas ainda mais”
- Um método deve fazer apenas “uma coisa (One Thing)”
- No entanto, se isso for aplicado de forma extrema, pode levar à decomposição excessiva (
over-decomposition)
- John aponta que métodos pequenos demais podem, ao contrário, dificultar a compreensão do fluxo geral
- Quando há muitos métodos “rasos (
shallow)
14 comentários
Tenho vários livros da série Clean, mas acho que eles servem mais como referência em um nível metacognitivo. Quando você trata isso como princípio ou lei, fica extremamente cansativo e nada prático. É sempre o Uncle Bob falando dos princípios SOLID... pessoalmente, não acho que haja tanto conteúdo realmente prático assim.
Acho que
Code CompleteeClean Codeempatam em 1º lugar no ranking dos livros mais superestimados.A tradução de Software Philosophy já saiu? Procurei, mas não consegui encontrar.
Ironicamente, parece que um livro irônico como "como programar de um jeito difícil de manter" seria mais fácil de absorver do que um livro que só fica dizendo o que seria um bom código.
Acho que hoje em dia briguei mais por causa de gente que é fã de uma stack tecnológica ou arquitetura específica e fala como se fosse o fim do mundo não adotar essa stack ou arquitetura do que por causa de clean code. O certo é aplicar conforme a situação; parece que não existe nada que seja bom em qualquer caso.
Ótima discussão.
Pensando bem, eu também recomendava a Philosophy of Software Design, do John, para os juniores, mas nunca recomendei muito Clean Code.
Acho que o importante é não seguir cegamente apenas as manchetes sobre qualquer coisa, mas entender bem o contexto e aplicar isso adequadamente.
Acho que livros de desenvolvimento pessoal voltados à programação são úteis para iniciantes que ainda não têm valores formados sobre tecnologia ou formas de implementação, mas, à medida que a experiência se acumula, sua utilidade diminui. Isso também porque não existe uma verdade absoluta que se encaixe em todos os projetos e ambientes, e há situações em que princípios gerais não se aplicam. Como acontece com conselhos de livros de desenvolvimento pessoal em outras áreas mais gerais, parece melhor manter certa distância, aplicar apenas as orientações adequadas a cada contexto e não perseguir esses conselhos cegamente.
Concordo um pouco mais com o John.
Acho que o ponto principal é que, em vez de seguir cegamente o que os dois dizem como se fosse um dogma, devemos entender por que eles dizem isso e seguir em frente a partir daí.
Não podemos esquecer que código limpo não é o objetivo, mas um meio.
No fim das contas, moderação é essencial mesmo.
Muito útil 👍🏻
Opinião no Hacker News
Algumas pessoas podem ser muito dogmáticas sobre certas coisas. Não consigo entender por que tratam isso como se fosse um evangelho
Quando você passa por um projeto que segue cegamente as recomendações do Uncle Bob, percebe como o valor disso é baixo
Clean Code é apenas uma das ferramentas na caixa de ferramentas de um bom engenheiro de software
Algumas pessoas simplesmente agrupam linhas próximas e chamam isso de "refatoração", em vez de separar funções quando elas serão reutilizadas ou fazem sentido lógico
Há um caso importante que não foi mencionado sobre a importância dos comentários
Recomendo fortemente "A Philosophy of Software Design"
Foi uma reação aos problemas reais da indústria de software antes do movimento Clean Code
A opinião do Bob sobre comentários é estranha
Os livros do Uncle Bob são algo do qual você acaba se afastando com o tempo
Há reclamações sobre o próprio nome Clean Code