Dev Book Studies Estudos Deb

03 - Code, Don’t Do Stunts

Intro

Os princípios avançados de código limpo na verdade ajudarão você a se tornar um desenvolvedor facilmente compreendido, capaz de codificar de forma mais limpa. Eles ensinam a ser consistente em suas escolhas, a pensar nos outros desenvolvedores e em sua equipe, e a tornar a comunicação a principal ferramenta de nosso trabalho. Mesmo antes do código-fonte.

É um fato: embora o código-fonte tenha um lugar preponderante no trabalho do desenvolvedor, não devemos torná-lo nossa principal razão de ser. É uma realidade: o trabalho do desenvolvedor não é escrever código. Trata-se de encontrar uma solução para um determinado problema, adaptando-se às restrições que possam surgir no caminho. Esta é a base de nosso trabalho que devemos ter absolutamente em mente. E embora os princípios que acabamos de ver no capítulo anterior, como SOLID, pareçam estar fortemente ligados ao código, devemos tentar ter uma perspectiva mais “meta” sobre tudo isso, pensando fora da caixa e dando um passo atrás. Os princípios mencionados são, objetivamente, ferramentas que nos permitirão resolver os problemas apresentados de maneira eficiente e direta.

Podemos então nos perguntar as seguintes questões: Qual é o verdadeiro propósito do código-fonte? Qual é o seu objetivo, e podemos nos permitir fazer qualquer coisa com as coisas mais básicas da linguagem? Estes são os tópicos que abordaremos neste capítulo:

  • Compreensão do código
  • Ser compreendido, não ser inteligente
  • Uma observação sobre a manutenibilidade

Understanding code

CHATO

Be understood, not clever

ChatGPT - Resuma o trecho:

O texto fala sobre a importância de compartilhar conhecimentos na área de programação, porém, é necessário ter cautela ao aplicar novas técnicas de codificação em projetos existentes, pois isso pode gerar resistência por parte dos membros da equipe e aumentar o tempo de aprendizagem e treinamento, o que pode reduzir a produtividade. Além disso, algumas técnicas de programação, apesar de eficazes, podem ser difíceis de aprender e aplicar, o que também pode aumentar o tempo de aprendizagem e treinamento da equipe. O texto destaca que é importante equilibrar a adoção de novas técnicas com a estabilidade e eficiência do projeto existente e as mudanças devem ser justificadas e comunicadas adequadamente a toda a equipe, incluindo membros não técnicos.

ChatGPT - Que ações práticas reais se pode tirar do texto?

O texto oferece várias ações práticas que podem ser úteis para desenvolvedores de software e equipes de desenvolvimento, incluindo:

  1. Não tente mostrar todo o seu conhecimento e habilidades de codificação de uma vez. É importante segurar-se e considerar os outros membros da equipe e as necessidades do projeto.
  2. Compartilhe seus conhecimentos e experiências com seus colegas, mas seja consciente das desvantagens que novas técnicas ou práticas podem ter, como resistência à mudança e treinamento adicional.
  3. Considere cuidadosamente as técnicas e práticas que você está introduzindo em um projeto, e avalie se elas valem o tempo e o esforço necessários para treinar os membros da equipe existente.
  4. Considere as limitações e desvantagens de certas técnicas de programação, como “if-less programming” ou Test Driven Development, antes de implementá-las em um projeto.
  5. Entenda que a resistência à mudança é natural e esperada, e que é importante ser capaz de justificar as decisões tomadas para todos os membros da equipe, incluindo aqueles que não são tecnicamente inclinados.

A note on maintainability

ChatGPT - Reuma o trecho

O texto trata da complexidade da manutenção de projetos de programação a longo prazo, mesmo quando se utiliza novas metodologias de trabalho. Apesar de incentivar a iniciativa e a experimentação de novas metodologias, o autor alerta para os riscos envolvidos e a necessidade de estar preparado para lidar com problemas futuros e com a manutenção da aplicação. O texto também menciona a importância de ser cuidadoso com as tendências recentes que podem desaparecer rapidamente e com as práticas de programação que parecem elegantes, mas que são difíceis de manter.

ChatGPT - Que ações práticas dá para tirar dele?

O texto nos alerta sobre a importância de considerar a manutenibilidade do código em nossas decisões de programação. Mesmo que tenhamos adotado novas metodologias de trabalho que funcionaram bem até o momento, precisamos estar cientes de que bugs irão surgir e que talvez precisemos de novas pessoas para consertá-los, o que pode ser difícil se elas não conhecerem nossas metodologias. Devemos, portanto, considerar se estamos realmente preparados para manter a aplicação ao longo dos anos antes de adotar novas técnicas de programação ou sintaxes elegantes que possam ser difíceis de manter. A ação prática a ser tomada é, portanto, pensar cuidadosamente sobre as decisões de programação e considerar as implicações a longo prazo da manutenibilidade do código.

Summary

Você entende o que significa “construir sobre o que sabemos”? Percebemos com um pouco de retrospectiva que isso é novamente ótimo senso e altruísmo, pensando nos próximos desenvolvedores que passarão por cima do nosso código. Aqui, não havia dúvida de olheiros, SOLID, Keep It Simple, Stupid (KISS) ou outros princípios. Trata-se de repensar nossos próprios métodos de escrever código.

Devemos lembrar que o básico pode (e deve) ser questionado e não considerado imutável. A autoconfiança é uma coisa maravilhosa, e se conseguires aliar isso ao questionamento contínuo dos teus hábitos numa perspetiva de melhoria contínua, estás no caminho certo para te tornares um excelente programador, capaz de escrever código limpo com naturalidade, e trazendo seus colaboradores com você nesta prática.

Tomar a iniciativa é uma coisa notável; conhecer os riscos e avaliá-los em seu contexto é a chave para buscar a perfeição. Assim, você consegue saber se realmente vale a pena, mas também pode justificar suas escolhas para as pessoas que executam o projeto. Mais uma vez, voltamos à capacidade de justificar todas as nossas escolhas e ações quando se trata de código limpo. Código limpo não é apenas evitar o uso de operadores binários ou o uso de notações hexadecimais. Significa pensar no meio ambiente, nas restrições e os arredores do nosso projeto. Código limpo não é apenas sobre código. Felizmente, isso é exatamente o que veremos no próximo capítulo.

Meu Resumo

Chato