Orientação por objetos e técnicas de refatoração para desenvolvedores iniciantes

A jornada para se tornar uma pessoa desenvolvedora de software de excelência, é ardua. E não me refiro ao necessário para entrar no mercado e conseguir uma vaga em uma boa empresa. Iniciativas como AfroPython, Pyladies, outreaching entre outros projetos incríveis fazem este trabalho de treinamento e preparação para a entrada no mercado de trabalho.

O ponto central que quero abordar aqui é referente á uma das atividades que eu mais gosto de fazer, dentre as tarefas envolvidas no dia a dia de desenvolvimento. Vamos falar um pouco sobre orientação por objetos (OO) e boas práticas de refatoração. Precisamos começar falando um pouco sobre OO porque uma boa parte das refatorações que fiz ao longo dos ultimos anos, foram motivadas pelo fato de que a pessoa desenvolvedora que implementou o trecho do código, não levou em consideração conceitos básicos de boas práticas do método.

Vale ressaltar que não dá pra colocar toda a culpa em quem desenvolve. O mercado de tecnologia tem a fama (justificada) de ser extremamente dinamico, e esse dinamismo exige que times de desenvolvimento entreguem features no menor tempo possível. Infelizmente, qualidade e pressa não são palavras que combinam, e muitas vezes os times simplesmente não tem tempo de fazer uma revisão do que está sendo entregue de forma mais crítica.

Então de que forma podemos minimizar esse gap entre qualidade e prazo? Tornando práticas de refatoração e OO parte do dia a dia de trabalho. Levar estas práticas para o micro, para cada funcão declarada, para cada condicional implementada. Enchergar na refatoração uma atividade que faz parte da issue na sprint, é uma visão que pessoas desenvolvedoras iniciantes não possuem. A ideia desse artigo é apresentarmos algumas técnicas e padrões, que podem ser aplicados no dia a dia de trabalho, e vai te tornar uma pessoa desenvolvedora mais consciente do código de todo dia.

Principios básicos de OO