Registro de decisão de arquitetura: linguagem de programação Go
Título: adoção da linguagem de programação Go
Estado: aceito
Contexto
Nossa organização vem usando principalmente a linguagem de programação Java para construir aplicações web. No entanto, estamos enfrentando alguns desafios devido à verbosidade do Java e à complexidade de alguns frameworks. Além disso, nossa equipe demonstrou interesse em explorar linguagens de programação modernas para um desenvolvimento mais eficiente e robusto. Após pesquisar, identificamos o Go como uma possível solução para os problemas que enfrentamos com o Java.
Decisão
Adotaremos a linguagem de programação Go para construir aplicações web daqui em diante.
Justificativa
Simplicidade e legibilidade: o Go é conhecido por sua simplicidade e sintaxe concisa. Isso facilita ler e escrever código, reduzindo a complexidade do nosso processo de desenvolvimento.
Alto desempenho e escalabilidade: o Go é compilado em código de máquina que roda nativamente no servidor. Isso resulta em tempos de execução mais rápidos e melhor desempenho em comparação com linguagens interpretadas como o Java. Além disso, o modelo de concorrência do Go trata várias requisições simultaneamente, tornando-o altamente escalável.
Forte apoio da comunidade: o Go tem uma comunidade vibrante de desenvolvedores que contribuíram para o seu crescimento ao longo dos anos. Isso significa que há muitos recursos, bibliotecas e frameworks para nos ajudar a começar e a construir aplicações robustas.
Flexibilidade: o Go pode ser usado tanto no desenvolvimento de front-end quanto de back-end. Isso significa que podemos aproveitar suas vantagens nas duas áreas em nossos projetos de desenvolvimento.
Implicações
Treinamento: nossos desenvolvedores precisarão passar por treinamento para aprender a linguagem de programação Go e suas nuances.
Experiência: podemos enfrentar alguns desafios na transição do Java para o Go. Pode levar algum tempo até que nossos desenvolvedores se tornem proficientes na nova linguagem.
Ferramentas: precisaremos adotar novas ferramentas e frameworks específicos do Go. No entanto, podemos aproveitar a infraestrutura existente para minimizar o impacto dessa mudança.
Dependência de fornecedor: o Go é uma linguagem de programação de código aberto, e não ficaremos presos a nenhum fornecedor ou provedor de serviços.
Conclusão
A adoção da linguagem de programação Go nos ajudará a melhorar nosso processo de desenvolvimento e a construir aplicações robustas. Precisaremos investir recursos em treinamento e ferramentas para apoiar essa transição, mas acreditamos que os benefícios dessa decisão superam os custos.