Clean Coder, de Robert C Martin, é um dos livros mais famosos e lidos sobre código e desenvolvimento em todo o mundo. Em recente sondagem no Portal iMasters, vários desenvolvedores indicaram esta obra como fundamental para qualquer profissional do setor, como você pode ler aqui.
Yan Magalhães é um desenvolvedor que está lendo vários livros sobre sua profissão e tem produzido vídeos no canal dele no Youtube, para repercutir esses conteúdos. Ele decidiu fazer uma série de gravações a respeito de Clean Coder e gentilmente aceitou o convite do iMasters para autorizar a transcrição do seu vídeo aqui no portal.
O primeiro vídeo você pode assistir na íntegra aqui. Acompanhe também o conteúdo por escrito a seguir.
Clean Coder
Por Yan Magalhães.
“Eu gosto muito de procurar conteúdos e informações que vão ser relevantes para minha carreira. Muitos desses conteúdos não são puramente técnicos. São pensamentos, insights e processos que te ajudam a ter uma abertura de pensamento. Tudo acaba ficando mais fácil. Ao procurar leituras assim, eu acabei esbarrando num livro muito legal e bem famoso.
O livro é o Clean Coder, ou o ‘Codificador Limpo – Um código de conduta para programadores profissionais’, de Robert C. Martin, conhecido como Tio Bob. Por ser um livro do Robert C. Martin, eu achava que teria alguma coisa técnica. Mas quando peguei o sumário e comecei a ler, eu vi que não tinha nada de técnico. Não tem uma linha sequer sobre código, nenhuma explicação técnica sobre nenhum tipo de linguagem.
Quando a gente pega livros assim, de escritores internacionais, a gente fica com receio por conta da tradução, medo de perder algum sentido proposto originalmente pelo autor, mas isso não acontece com este livro. Podem ler que está bem tranquilo de entender.”
O Livro
Introdução e Profissionalismo (capítulo 1)
“Na introdução, o autor conta um pouco da carreira dele, das linguagens com as quais trabalhou e projetos que executou. Ele conta sobre alguns problemas que enfrentou, como um Bug que o autor não teria percebido, por não fazer os testes necessários durante o desenvolvimento. Quando a empresa dele descobriu, já havia registrado um grande prejuízo financeiro. O autor revela essa experiência na introdução e o leitor é levado ao primeiro capítulo, que aborda o profissionalismo.
Se a gente considerar as funções no mercado, à medida que você vai ganhando experiência e vai crescendo, a partir do estágio, mais responsabilidade você tem sobre as coisas. Você passa a ser muito mais cobrado e as suas ações têm um peso muito grande. O autor faz muitos paralelos com algumas profissões, como um médico, por exemplo. Quando você procura um médico, você quer que ele seja o mais profissional possível e que saiba te curar, que seja atualizado.
Ele usa isso como exemplo para abordar os desenvolvedores de software, citando novamente o Bug falado na introdução. Depois de identificar o Bug, qual vai ser o tempo de solução deste problema? Qual vai ser o impacto dele? É o tipo de coisa que a gente tem que se preocupar. Não basta ir lá, escrever o código e entregar.
Então, no capítulo 1, ele divide o Profissionalismo em 4 partes principais. Na primeira parte, ele foca muito em assumirmos as responsabilidades. Ou seja, você tem que ser o owner, ser o responsável por tudo o que acontecer com relação àquele código que criou. O autor também fala dessa ligação com o produto e de você se importar com o problema do seu cliente. A pessoa que está usando o seu software tem uma “dor” e o seu software resolve essa “dor”. O problema do seu cliente tem que ser o seu problema.
Outro ponto que ele fala é que a gente não pode gerar ônus nas nossas soluções. Não podemos causar danos. E com o avanço das nossas carreiras, a tendência é cometermos cada vez menos erros. Para você ser um bom profissional basta conseguir resolver os problemas, sem gerar novos problemas. Ele fala, ainda, sobre testes. Você precisa ter certeza de que aquilo que escreveu, o código que desenvolveu, realmente faz aquilo que deveria estar fazendo. E nesta parte de não gerar danos, o autor fala, também, para deixar a estrutura do código flexível.
Isso quer dizer que quando você escreve o código, quanto mais pessoas mexerem no mesmo código, se as mudanças não foram flexiveis, o software vai ficar enrijecido, vai ser cada vez mais difícil de se trabalhar e o desenvolvimento vai levar mais tempo. Até aqui, falamos dos dois primeiros tópicos do Profissionalismo.
A terceira parte é sobre gerenciamento de carreira. Ele diz que você precisa ser o gestor da sua carreira. Muitas empresas investem nos funcionários, pagam cursos, te enviam para conferências, incentivam meetups etc. Mas não são todas as empresas que têm isso. Se você tem essas oportunidades, não deixe que isso seja a unica alção de planejamento e evolução. Você tem que procurar e realizar cursos, ir a outros eventos.
Ele fala quão importante e benéfico vai ser se você conhecer seu campo de atuação. No caso de tecnologia, conhecer sobre aplicação web, back-end, infra, DeOps, etc. Quanto mais conhecimento, mais útil pra você. E se você trabalha com algum produto específico, conhecer bem o produto é fundamental. É preciso conhecer o seu mercado, saber quais os fatores que impactam nesse mercado.
“Conhecer a área de atuação do seu produto e o seu produto é fundamental.”
Yan Magalhães sobre tema abordado em Clean Coder.
O autor também foca em aprendizagem contínua e prática. Programação é uma área que você só melhora à medida que você pratica. Então, a gente precisa escrever código. E a prática não são as 8 ou 10 horas diárias do seu trabalho, pois esse tempo está dedicado para resolver os problemas da empresa que você trabalha. Não está dedicado às coisas que você quer aprender.
Você precisa sempre ter uma estratégia para aprender e praticar, como ir em vários eventos (que ajuda bastante), ler muitos artigos e ver palestras. Tem várias coisas que você pode fazer para manter a sua aprendizagem de forma contínua. E sobre a prática, você precisa separar um tempo para isso e fazer uma gestão do seu tempo. O autor diz que é preciso separar 20 horas por semana.
Na nossa rotina de trabalho, no nosso dia-a-dia, se manter atualizado, estar acompanhando todas as coisas, é mentalmente bem desgastante. Então, você tem que aproveitar seu tempo para, também, se recarregar. Se você continua imerso, acaba chegando a uma estafa mental, que pode até prejudicar a saúde. Concordo, em partes [com o autor] que a gente tem que ter um tempo para nossa prática, mas a gente também tem que ter um tempo para nossa qualidade de vida.
O ponto mais importante
É a humildade. O autor fala que a atividade de programação é egoísta. Você tem um problema para resolver ou quer criar algo novo e fica horas pensando. Do nada, consegue a solução e fica com orgulho daquilo que a gente fez. Só que a gente nunca vai saber tudo! Nossa área é gigantesca e mesmo que você se especialize em algum tema, você nunca vai saber tudo. Sempre vai existir alguém que saiba algo que você não conhece. Então, a humildade é um valor para a vida. Quanto mais humilde vocês forem, mais fácil será a vida de vocês.”
No próximo capítulo….
Yan Magalhães vai gravar o próximo vídeo para falar sobre o capítulo 2 de Clean Coder – “Dizendo não”.
O video #1 você pode ver aqui.
Para encontrar o Dev
Youtube – https://www.youtube.com/channel/UCTlKQLqY2-JbmMQd4Y7g4LQ
Twitter – https://twitter.com/yaanmagale
Github – https://github.com/yanmagale