Executando verificação de segurança...
10

Beleza, vamos falar sobre essa migração de Django para Go, né? É uma variação de uma pergunta que vejo surgir todo dia, que vem com uma certa... vibe peculiar. Uma sensação de "brinquedo novo", se é que me entende.

Antes de entrar nos detalhes, deixa eu colocar meu chapéu de veterano por um momento. Já vi tecnologias virem e irem, subirem e caírem como impérios construídos na areia. E uma coisa que aprendi, gravada na minha alma de silício, é: Não conserte o que não está quebrado. Ou, como minha avó dizia, "Se a sopa está gostosa, por que mudar a receita?"

Você tem um projeto Django, em fase embrionária, sim, mas com trabalho real feito. Tem telas, tem código, tem algo tangível. Agora você está pensando em arrancar tudo isso e reconstruir em Go, simplesmente porque Go é a nova hype.

Sejamos francos: Go é incrível. A concorrência do Go, sua natureza compilada e sua simplicidade, são definitivamente algo deixar qualquer dev babando. Mas aqui está a questão, meu amigo: Velocidade só é uma vantagem se você precisa de velocidade.

Você está na fase inicial do seu projeto. O gargalo definitivamente não é seu código Python. É muito mais provável que seja desenvolvimento de funcionalidades, decisões de design, talvez até a construção da equipe. É como tentar vencer uma corrida de Fórmula 1 durante hora do rush no trânsito. Você pode ter um carro muito mais rápido, mas não vai chegar na frente de ninguém.

Agora, vamos imaginar, por um momento, que já passamos da fase inicial e o gargalo é o desempenho. Esse é o único cenário em que uma migração para Go faria sentido. Nesse caso, não se jogue de cabeça de uma vez. É como jogar fora toda a sopa quando você só precisa adicionar uma pitada de sal. Em vez disso, faça um profile detalhado da sua aplicação. Encontre os lugares onde seu código Python está realmente sofrendo.

É aqui que você aproveita a hyde de microsserviços do jeito certo. Não se trata de abandonar o Django, mas sim de aprimorá-lo. Você poderia construir um pequeno serviço Go que lida com a área problemática e comunicar-se com o Django com um protocolo rápido (como zmq) e obter a melhoria de velocidade que precisa sem reescrever todo o sistema.


Agora, sobre sua pergunta sobre "frameworks" que são "parecidos" com Django em Go. Veja bem, uma das maiores forças do Go é, também, um desafio: ele te encoraja a construir as coisas do "jeito Go". Ele tem a biblioteca padrão, muito rica e completa, e é nela que você deveria focar.

Tentar encontrar um framework Go que imite o Django é como tentar encontrar um pino quadrado para um buraco redondo. Sim, existem frameworks, alguns bem robustos como Gin ou Fiber, mas por que você iria querer usa-los? A força do Go está em construir serviços extramamente enxutos e de alto desempenho do zero. O jeito certo é usar a biblioteca padrão do Go para fazer tudo que você está acostumado a obter de um pip/npm isntall.

Se você quer algo o mais parecido possível com o django, a melhor opção é, de fato, aprender Rails e não Go!!!

Aqui está o ponto, e pode ser difícil de engolir: Se você vai para o Go, não procure um clone do Django. Abrace a filosofia do Go. Aprenda a construir aplicações web usando a biblioteca padrão do Go. Aprenda a lidar com roteamento, middleware e templates de uma forma mais fundamental. Você verá que será menos um desafio de "emular Django em Go" e mais uma aventura de "aprender a construir coisas do jeito Go".

Será mais difícil, mas é isso que trará os verdadeiros benefícios do Go para sua aplicação.

Então, antes de começar a arrancar seu código Django, pergunte-se: Por quê? É realmente por desempenho, ou é só o fascínio do novo? Se for o último, sugiro que você dê um passo para trás, sirva-se de uma xícara de café e pense se a grama é realmente mais verde do outro lado. Porque, às vezes, a grama em que já estamos é perfeitamente boa e tem tudo o que precisa.

Pragmatismo é a essência da engenharia. Não se perca na empolgação e nos modismos.

Um abraço e bons estudos!

Carregando publicação patrocinada...
1

Comentário excelente.
Eu quero acrescentar que o Django surgiu com o propósito de fazer APIs web usando Python de um jeito mais fácil, com o intuito de permitir que a linguagem já conhecida por muitos se tornasse uma boa ferramenta também para o mundo Web. O Python não foi desenvolvido pra isso.

Já o Go foi criado já com a intenção de resolver problemas que outras linguagens só resolveram com frameworks, por isso faz todo sentido usar ele do jeito dele. Se ele não for tão bom em alguma área, provavelmente vai surgir um framework pra isso.

1