A primeira aplicação web em Go da Resultados Digitais

Daniela Claudino
Ship It!
Published in
3 min readMar 14, 2019

No início deste ano, participei junto com o Vinicius Bandeira da primeira edição da RDGoConf na Resultados Digitais e a nossa palestra teve um impacto tão positivo que resolvi vir aqui compartilhar com vocês o que apresentamos.

Mas antes de falar mais do que fizemos em Golang, quero explicar como chegamos nesta linguagem.

Em 2016, ocorreu um Hackathon na Resultados Digitais e uma das equipes teve a brilhante ideia de criar o Heroes Toolbelt, uma ferramenta que auxilia o nosso suporte a resolver alguns problemas já no primeiro nível, no time dos Customer Heroes. Assim, os times de engenharia foram desonerados, além de possibilitar que esse tipo de atendimento fosse resolvido muito mais rápido, aumentando a satisfação dos clientes.

O projeto continuou a ser tocado paralelamente pelos times de desenvolvimento, porém com mais calma. Durante o mesmo período, o Suporte de Engenharia passou por uma série de modificações até a criação de um time especializado em investigações técnicas.

Com a formação da SHIELD (sim, este nome é inspirado nos agentes da SHIELD que investigam os casos mais estranhos) que é responsável pelo último nível de Suporte na Resultados Digitais, passamos a ter grande interesse pelo projeto. Devido a sua grande influência na nossa demanda (aproximadamente a metade dos atendimentos realizados pelo time são relativos a tarefas manuais), acabamos o adotando.

O Heroes Toolbelt era uma engine em Ruby on Rails dentro do RD Station Marketing com três features que realizavam a execução de três tarefas manuais distintas, sendo que duas foram criadas durante o Hackathon. Por causa do seu alto nível de acoplamento com a aplicação, sabíamos que criar mais features implicaria no aumento da complexidade global do código, o que nós não gostaríamos. Além disso, também tínhamos em mente de que não queríamos criar um monolito.

Então, decidimos que antes de turbinar o Heroes Toolbelt, iríamos “limpar a casa”, desacoplando-o do RD Station Marketing e criando uma aplicação baseada em microsserviços que facilitassem o seu gerenciamento no futuro. Agora, só faltava decidir qual linguagem seria adotada.

Como foi comentado no nosso último post sobre a RDGoConf, iniciou-se organicamente um movimento dentro da área de Engenharia da Resultados Digitais em que diversos times adotaram a linguagem Go para escrever os seus códigos e o nosso foi um deles.

Diferente da proposta dos outros times que inclui o desenvolvimento em Go seduzidos pela sua alta performance a fim de resolver problemas complexos, decidimos utilizá-lo por outros motivos, mas claro que não descartamos esta grande vantagem frente a outras linguagens.

Então final, por que Go?

A resposta é simples: o aprendizado!

A SHIELD é um time de engenharia focado na investigação técnica dos problemas que surgem por meio do nosso Suporte e, devido ao grande volume de atendimentos realizados, os seus agentes acabam codando pouco. Portanto, resolvemos transformar o projeto num produto do time para solucionar os seus problemas com uma nova abordagem.

Utilizamos o Heroes Toolbelt para aprofundar o nosso conhecimento em microsserviços e REST, visto que o RD Station Marketing e o RD Station CRM estão predominantemente em Ruby on Rails além de aprender uma nova linguagem ao desenvolver uma aplicação do zero. Dessa forma, geramos bastante valor para o nosso suporte e para os clientes.

Você pode estar pensando “mas porque não aprender outra linguagem?” Daí entram outros fatores que foram importantes para nós, como a simplicidade, a leveza e a performance do código que o Go proporciona.

Apesar de ser relativamente nova, há uma vasta documentação disponível, fruto de uma comunidade com forte presença em fóruns e aberta a ajudar quem estiver com dúvidas. Outra vantagem é a sua similaridade com outras linguagens, fazendo com que a curva de aprendizagem seja facilitada.

Sabíamos que o desafio era grande, mas o resultado e o aprendizado compensaram!

Quer saber quais foram as contribuições que fizemos até o momento e alguns aprendizados? Assiste a palestra que eu e o Vinicius Bandeira demos na RDGoConf.

--

--

Daniela Claudino
Ship It!

Engenheira de Petróleo e Compliance Product Manager do RD Station Marketing, procurando acumular e compartilhar o máximo de conhecimento possível.