Como descobri na prática, a importância de uma boa organização e um bom código.
Published: 2023-10-05 21:04:58

Sou novato na área de tecnologia (inclusive, este é o meu primeiro artigo) e estudo de forma autodidata há cerca de sete meses. Comecei com alguns cursos na Udemy para ter um ponto de partida, mas cheguei a um ponto em que não estava satisfeito em apenas seguir tutoriais. Eu queria realmente entender os problemas, cometer erros e pesquisar na internet para encontrar soluções. À medida que comecei a estudar dessa maneira, percebi um progresso constante em meu aprendizado, muito maior do que quando estava apenas seguindo as instruções passo a passo dos tutoriais.

Então, um dia, minha namorada me sugeriu um projeto: criar um BOT na plataforma Discord. Acredito que a maioria de vocês está familiarizada com essa plataforma. O BOT teria várias funcionalidades, mas a mais importante e desafiadora era criar um reprodutor de músicas. Comecei a codificar em Python para implementar essas funcionalidades até chegar ao reprodutor. Continuei pesquisando, e, é claro, usando o GPT para me ajudar, até conseguir criar a primeira versão do BOT. Incrivelmente, funcionava, mas apenas com links de músicas do YouTube.

O verdadeiro desafio surgiu quando decidimos adicionar suporte para links do Spotify. Segui o mesmo processo de pesquisa intensiva até encontrar uma solução. No entanto, quando tentei adicionar o código necessário à classe onde todo o código do reprodutor estava, deparei-me com um problema: essa classe havia se tornado a temida "**GOD CLASS**". Para quem não sabe, uma GOD CLASS é uma classe que concentra uma quantidade excessiva de código e responsabilidades, muitas vezes até funções que não deveriam estar ali. No meu caso, essa classe não apenas tocava, pausava e pulava músicas, mas também gerenciava pastas, fazia downloads de músicas, validava links e até mesmo enviava mensagens. Agora você pode entender por que foi impossível fazer qualquer alteração nela.

No entanto, naquela época, eu não estava familiarizado com conceitos como "**SOLID, CLEAN CODE e CLEAN ARCHITECTURE**". Comecei a pesquisar sobre "problemas de refatoração de código" e foi aí que descobri essas boas práticas. Comecei lendo o livro "**CLEAN ARCHITECTURE**", que me deu uma ideia de como organizar toda a arquitetura do meu projeto. No início do livro, ele também aborda brevemente o **SOLID**, e foi aí que me apaixonei completamente por esses conceitos e comecei a pesquisar mais sobre eles.

Graças a esse conhecimento, finalmente entendi por que meu código estava tão bagunçado. Não pretendo entrar em detalhes sobre esses princípios e como aplicá-los neste artigo; quem sabe em um próximo? O que eu gostaria de enfatizar é que não basta encher a cabeça de teoria lendo livros e assistindo vídeos sobre boas práticas. Como o próprio nome sugere, são "práticas". Você precisa aplicar esses princípios, na prática, mesmo que seu código esteja sujo e desorganizado. É assim que você realmente compreende a importância e o momento certo de usar todas essas boas práticas. Dessa forma, você evolui consideravelmente como programador. Muito obrigado a todos que leram até aqui. Até a próxima!