Logo da framework Hapi

Hapi > Express?

Desde que iniciei os estudos com Node.Js, estou sempre olhando o mercado, novidades e formas interessantes de desenvolver soluções.

O meu primeiro contato com Node foi com o Express, achei incrível a velocidade de desenvolvimento, a proximidade da comunidade e a quantidade de bibliotecas já disponíveis online, facilitando muito o desenvolvimento e me tornei um desenvolvedor FullStack com Javascript (Node, Express, MongoDB e React).

Conforme fui evoluindo no desenvolvimento de software e também no tamanho dos sistemas e clientes, percebi que o Express não facilita o desenvolvimento em equipes e de código limpo, deixando toda essa organização para o desenvolvedor fazer da forma que preferir.

Então, decidi aprender Hapi.

A framework Hapi foi desenvolvida dentro do Walmart, focada no desenvolvimento com qualidade corporativa e entre vários times, de fácil manutenção e escalabilidade, e prefere configuração do que código.

Pelo tempo que tenho estudando Hapi, vejo que ela mantém o código mais limpo e fácil de ler do que no Express em geral, melhorando muito a velocidade e tempo para manutenção também.

Após a base e estrutura do projeto estarem prontas, a adição de novos endpoints e funcionalidades fica muito simples, podendo ser feito entre equipes sem problemas no desenvolvimento.

A framework também conta com vários pacotes interessantes, que não estão inclusos de inicio mas são desenvolvidos pela equipe do @WalmartLabs :

  • Joi: Esse pacote é usado para validar e retornar erros de validação de forma automatizada. Ele facilita muito o desenvolvimento e garante um sistema fechado contra usuários mal intencionados, seu uso é muito comum no desenvolvimento com Hapi, assim ele tem um grande suporte pela comunidade. Link: https://github.com/hapijs/joi
  • Boom: Esse pacote é usado para enviar erros HTTP corretamente para o cliente, usando o código correto no envio com um objeto estruturado e mensagem personalizada. Uma grande vantagem é a facilidade de leitura do código durante o desenvolvimento, usando palavras para descrever o erro corretamente e não o código diretamente (Boom.badRequest ao invés de Status 400). Link: https://github.com/hapijs/boom

Estou fazendo um projeto de uma API base com autenticação de usuário funcional com JSON Web Token (JWT) de código aberto, o objetivo principal é de aprender mais sobre a framework, preparar uma base para quem está iniciando e tem interesse e também facilitar o desenvolvimento de futuros projetos (vai poupar 10 horas facilmente ).

Assim que esse repositório estiver pronto, vou enviar um update para esse post com o link.

Vejo que a melhor maneira de aprender um novo metodo/linguagem/framework para desenvolvimento de software é fazendo projetos e experimentando, e é o que estou fazendo hoje.

Vou enviar um novo post para cada projeto que desenvolver, mostrando como usei a tecnologia, o que de novo precisei utilizar e o que consegui reutilizar de projetos anteriores :D

Se gostou, sabe algo interessante sobre o Hapi, tem projetos desenvolvidos com a Framework, comenta aí, vai ser muito ótimo desenvolver esse papo :)