Roadmap dedicado aos devs que desejam iniciar com o Dart no backend. Esse documento irá abordar as principais técnicas e assuntos a serem estudados pata criar um backend saudável, manutenível e escalável.
Iremos usar o Dart como linguagem principal, então é necessário um conhecimento intermediário sobre as principais features da linguagem. Além disso, precisamos entender algumas outras linguagens de marcação para executar ferramentas essenciais para o trabalho.
O SDK Do Dart vem junto com o Flutter, por tanto, se já estiver com o toolkit instalado, experimente digitar em um console:
dart --version
Para base de dados como MySQL e Postgres.
A mesma linguagem de marcação utilizada no pubspec.yaml do Dart/Flutter também ajuda a configurar outros serviços como docker-compose, CI/CD como Github Actions dentre outros.
Provavelmente a linguagem de marcação mais popular nos dias atuais. Javascript Object Notation é utilizado para transporte de informações entre cliente e servidor. *Obrigatório.
É extremamente necessário trabalhar com containers nos dias atuais tanto para publicação de uma aplicação quanto para iniciar um ambiente de desenvolvimento, pois basta levantar um container de um postgres ou mysql para ter esse banco rodando na sua máquina com apenas um comando.
Dito isso, sua vida profissional no backend dependerá bastante do conhecimento sobre docker.
Como que é feita a comunicação de um computador(server) com outro(client)? A resposta está nos Sockets. A transmissão de dados via socket é muito comum na internet, ou melhor, ESSA É A INTERNET. Porém, enviar apenas dados de computador para computador apenas com sockets se mostra uma tarefa complexa no sentido de organização, o que nos leva ao protocolo HTTP, que simplesmente padroniza as requisições(Request) e respostas(Response) para que qualquer um possa criar servidores e clientes compartilhando essa tecnologia de forma fácil. Por exemplo, sem o protocolo http, todo site deveria criar seu próprio navegador, oque inviabilizaria a web.
Iremos construir uma API em Dart, então é importante entender o que é API.
Toda ferramenta contém um framework dedicado para construir uma API Web, no caso do Dart nós temos o Shelf.
Framework baseado em Middleware muito semelhante ao Express.js. Essa ferramenta é totalmente escalável por outros packages, ou seja, uma nova funcionalidade pode ser adicionada ao Shelf como um plugin.
O Shelf sozinho apenas "escuta" as conexões, precisaremos de outros packages para a construção de nossa api.
Existem 2 packages principais que trabalham com rotas.
Mesma estrutura do flutter_modular para rotas e injeção de dependências para o Shelf.
Sistema de rotas simples mais eficiência extremamente semelhante ao sistema de rotas do Express.js.
Muitas coisas ainda estão por vir!