Hypermedia: uma excelente ideia!
Quando se fala em desenvolvimento web, eu tive um experiência muito curta. Eu comecei programando CLPs, depois baixei o nível pra microcontroladores e tive uma carreira meteórica nos primórdios de um sistema que nasceu em PHP e rapidamente foi engolido pela porcaria do ecossistema JS.
Eu sempre busquei, ativamente, "crescer" para posições de gestão - seja de projetos, seja de pessoas -. Era uma ambição e isso se concretizou nos últimos dez anos. Aprendi muito, sou o que sou hoje, pela jornada que eu percorri e sou extremamente grato. Porém fiquei longe de colocar a mão na massa esse tempo todo.
Hoje, sendo a pessoa de tecnologia da empresa, me vi numa situação que não tenho mais pra quem pedir e (por enquanto) não temos dinheiro para contratar. Me vi numa situação que eu comentei muito com os meus colegas de trabalho no passado recente: "nossa cara, que saudades de meter a mão na massa"... Pois é, agora eu não coloquei só a mão, haha - mergulhei de cabeça!
KISS - Keep It Simple, Stupid
A primeira missão com o chapeu de "desenvolvedor web" foi criar o website da empresa. Como nos temos a intenção de ter uma plataforma para os clientes ascessarem os "entregáveis", eu decidi por não utilizar um CMS (Wordpress-like).
Aí eu pensei: "Qual é a forma mais simples de criar um website?" - uai, usando HTML e CSS, certo? Certo! Simples, estupidamente, simples. Não é o caminho mais fácil, talvez em termos de um code companion qualquer, porque a primeira coisa que os ChatGPT-da-vida vão sugerir é um framework super sofisticado tipo React, Vue, Angular e por aí vai.
A stack que eu escolhi é simples! Algo que eu consigo "ler" de cima pra baixo, da esquerda pra direita!
- Go para a parte "server-side" da aplicação (o servidor web em si, as "regras de negócio" da plataforma).
- Templ (uma biblioteca Go) para criar os componentes que reenderizam os fragmentos HTML que formam as "páginas".
- E... a coisa mais sexy dessa stack: HTMX - uma lib JS que "custa" ~50 kB da code base e transforma, empodera o HTML e o torna capaz de lidar com "AJAX, CSS Transitions, WebSockets and Server Sent Events".
- Isso tudo rodando na AWS e com o Cloudflare funcionando como WAF e Cache (para o conteúdo estático).
Essa stack me permite fazer o básico, ou seja, lançar o website; e ainda posso construir a plataforma e outros apps orientados a Hypermedia "em cima e em volta" dela! Como eu disse, KISS!
Hypermedia Systems
We define a hypermedia system as a system that adheres to the RESTful network architecture in Fielding’s original sense of this term.
Esta passagem está na introdução do livro: https://hypermedia.systems/.
Eu nunca gostei e nunca me propus, de verdade, a olhar para o "Front End". Sempre achei muito complexo para o objetivo dele - ser uma fuc***ing interface com usuário -: mostrar dados e prover controles para o usuário interagir com a aplicação (ou um simples website).
Esse livro foi um "oásis no deserto" pra mim. Não só livro, mas a comunidade em volta desse "movimento" de olhar para a web da forma que ela foi "projetada" para funcionar. RESTful foi proposto para ser uma arquitetura que utilizaria Hypermedia (por exemplo, hypertexto: HTML) sobre o protocolo HTTP. Não ficar parseando, serializando dados via JSON.
Nota aos apaixonados pelos frameworks ultamodernos: eu não gosto, é a minha opinião pessoal, não acho lógico ter que baixar 50+ pacotes como dependência para usar uma funcionalidade, não gosto, não quero, não vou... hahah. Além disso, eu estou "começando" a minha plataforma, o meu "terreninho" na web... pra mim é "mais fácil". Se algo já está feito com algum framework (tipo 99% de tudo que existe hoje), é obvio que não vale a pena mudar.
Nota às pessoas que estão começando no desenvolvimento web (assim como eu) ou não são apaixonadas pela solução: considerem a sua próxima aplicação orientada a Hypermedia.
Aplicações orientados a Hypermedia são uma execelente ideia, mas pra enxergar isso, você vai precisar se "desarmar" da paixão e se colocar, com intenção, num caminho de exploração e re-aprendizado - voltar aos "primórdios" do desenvolvimento web! Tem funcionado muito bem pra mim!
E aí, você já tinha ouvido falar de Hypermedia? HTMX? Ou você é um apaixonado pelo fake-RESTful trocando JSON ao invés de HTML com 1M de pacotes?