Profissionais que programam estão a cada dia tendo mais contato com novidades que podem agregar muito ao universo de desenvolvimento. Seja com uma ferramenta ou uma plataforma, sai na frente quem se mantém atualizado com essas novidades. Entre as que mais estão ganhando espaço, duas merecem destaque: o GraphQL e a Hasura. Mas, antes de mergulharmos nesses universos particulares, vamos às apresentações.

Definições

Hasura é uma plataforma open-source para desenvolvimento de APIs GraphQL a partir de um banco de dados SQL Server ou Postgres, sem a necessidade de que uma pessoa programadora crie ou mantenha este servidor.

A plataforma tem se difundido com facilidade entre Devs, pois é mais simples de manusear e oferece uma grande gama de utilidades. Não é necessário, por exemplo, que a pessoa seja uma especialista em GraphQL para poder criar e rodar suas aplicações. Utilizando-a, é possível otimizar o desempenho do aplicativo, tornando-o fácil de escalar. Ou seja, é uma preocupação a menos para quem vai desenvolver.

Outra vantagem é sua característica plugável. Basicamente, pode ser utilizado em conjunto com outros serviços. Esta interface possibilita muitas extensões e mais funcionalidades se comparado ao REST, por exemplo.

E também é possível começar a construção de suas aplicações antecipadamente com sucesso, mesmo sem ser especialista nesta área. E há algumas formas de fazer isso com a Hasura.

Primeiro, cria-se o back-end de uma aplicação inteira escrevendo pouca ou nenhuma linha de código. Isso agrega agilidade no desenvolvimento para MVPs (daqui a pouco vamos falar mais disso) e para testes de aplicações – o que é uma vantagem para quem programa e precisa realizar este processo.

Embora tenham vantagens, existem alguns pontos de atenção para você observar. Por exemplo, podemos citar que as pessoas que desenvolvem e que estão habituadas ao uso do REST podem enfrentar uma certa resistência ao aprender a usar a Hasura.

Além disso, o armazenamento em cache é mais complexo se comparado ao REST. Isso sem falar na manutenção dessas APIs, que demandam um pouco mais de trabalho quando comparadas às outras.

Aplicação da Hasura

A Hasura é amplamente recomendada para uso com SQL, quando se deseja criar MVPs utilizando GraphQL e banco de dados relacional. Então, para estes projetos, eles estão liberados.

Entretanto, este nem sempre é o caso. Por exemplo, esta não é a recomendação quando se trabalha com criação de APIs REST ou quando se usa banco de dados NoSQL. Isso porque os inúmeros recursos da API podem atrapalhar a experiência de uma pessoa desenvolvedora que não tem contato com a plataforma.

Entre os pontos que exigem atenção redobrada, a query é uma das mais perigosas e que pode ocasionar mais danos ao projeto. Afinal, é possível que, gerando várias solicitações de informação, as chances de produção de um DoS (Denial of Service) aumentem.

Além disso, a plataforma não é recomendada quando se deseja criar ou manipular o código. Ela é feita para ser manipulada no back-end por devs.

Sabendo disso e, antes de você entender se seus projetos devem ir para a Hasura com aplicações em GraphQL, é importante testar. Para isso, vale fazer um MVP.

Entendendo o MVP

No mundo do empreendedorismo e principalmente no ramo de tecnologia, o “Minimum Viable Product” (ou, em português, Produto Viável Mínimo) é a versão mais simples do produto que pode ser comercializada com uma quantidade mínima de esforços e recursos. É justamente uma idealização e planejamento de produtos e ideias de um negócio.

Embora seja o produto minimamente viável, este pode não ser o menor ou o mais barato. O MVP é feito para que se possa otimizar o tempo de construção e implementação de novos produtos ou ideias.

O conceito tem três características principais:

  • o custo do produto precisa ser viável para clientes;
  • é necessário ter qualidades suficientes que possam reter os usos iniciais;
  • os produtos ou serviços oferecidos devem apresentar um feedback para orientar as próximas criações/atualizações.

O MVP é necessário para o bom planejamento do negócio, para evidenciar quais são os limites que seu serviço/produto tem e para otimizar recursos despendidos na confecção. 

E sabemos como este olhar para o futuro é importante. Principalmente em negócios voltados para o mercado digital, ter em mente os custos da criação, barreiras e limites dos seus produtos é fundamental para um bom planejamento estratégico.

Mas e aí, quer saber mais sobre esse assunto? Na “Impulso Meetups: Prototipando um projeto com GraphQL e Hasura” você pode aprender mais sobre a importância da criação do MVP e sobre as principais vantagens e desvantagens da interface Hasura.

E não deixe de compartilhar este texto com mais Devs e de conferir os outros artigos do nosso Blog!