O Colab está reformulando vários de seus produtos, tornando-os ainda mais coesos, rápidos e seguros.
O Gov, nosso projeto voltado para uso interno nas prefeituras com o intuito de interagir com as demandas e reclamações feitas pelos cidadãos, não poderia ficar de fora disso e, durante esse artigo, explicarei as mudanças que serão realizadas, bem como seu impacto para o funcionamento do projeto.
Por que reconstruir ?
Originalmente, o Colab Gov foi criado em um contexto diferente, tecnologicamente (principalmente), na visão do produto e nos seus próximos passos.
Esse contexto diferente levou à tomada de decisões, que embora fizessem sentido no momento em que foram feitas, levaram o projeto por caminhos difíceis de serem revertidos, tornando a tarefa de adequar o projeto antigo às novas ambições do Colab um processo lento, complicado e delicado para o time de desenvolvimento manter.
Nós percebemos que precisávamos dar alguns passos para trás, avaliar os aprendizados que tivemos com a arquitetura atual e utilizar esse conhecimento para elaborar novas soluções que tornem a experiência geral do produto melhor como um todo.
O que vai de fato mudar ?
Algumas tecnologias serão substituídas por outras mais novas e mais poderosas, mas a maior mudança está na maneira como construiremos essa nova etapa do Gov.
Cada uma das mudanças propostas, foi extensivamente pensada para resolver uma dor específica causada pela arquitetura atual.
Uma nova abordagem para o que já funciona
Embora algumas escolhas passadas não façam mais sentido hoje em dia, outras foram tiros muito certeiros que serão repetidos, mas com alguns “temperos” diferentes. A melhor dessas escolhas foi o framework para o front end, que foi o React, criado pelo Facebook. O React é uma biblioteca incrível, com um rico ecossistema que é amplamente utilizado.
Apesar de possuir uma curva de aprendizado inicial um pouco mais complicada do que a de outros frameworks e bibliotecas como Vue e Angular, o framework do Facebook se adequa muito melhor às nossas necessidades e visões de projeto, tornando a implementação de algumas escolhas arquiteturais tremendamente mais simples.
Mas apesar de re-apostar no react, nós decidimos que o utilizaremos com typescript ao invés de javascript, já que o typescript é uma linguagem tipada, que tornará o projeto menos suscetível à erros.
Confiabilidade
Em seu estado atual, a aplicação não nos traz segurança durante seu desenvolvimento. Isso quer dizer que muitas vezes ao fazer grandes mudanças na estrutura do projeto, a equipe de desenvolvimento despendia uma grande quantidade de tempo testando e re-testando todos os componentes que foram atingidos pelas mudanças que fizemos.
Por sorte, esse é um problema universal, e por isso existem diversas soluções já desenvolvidas para isso, além de abordagens amplamente aceitas e testadas pela comunidade em outras aplicações.