App Masters

App Masters

  • English
  • Português

›Backend

App Masters - Core

  • Início
  • Conteúdo

Backend

  • Adonis
  • Laravel
  • Livewire
  • Sequelize

Fundamentos de Javascript

  • Javascript Assíncrono
  • Typescript

Padrões de Projeto

  • Presentational Container Design Pattern

Frontend

  • Ant Design
  • Flexbox
  • Media Queries
  • React Hook Form
  • Redux
  • Redux-Saga
  • Redux-Thunk
  • Styled Components
  • Tailwind
  • TWA
  • Yup

Testes

  • Cypress
  • Detox
  • Jest

Ferramentas

  • Docker
  • nvm
  • Storybook
  • Visual Studio Code

CMS

  • Strapi

Adonis

O que é

O Adonis é um framework MVC para node.js, baseado no Laravel do PHP, que traz uma forma objetiva de organizar o projeto e as ferramentas necessárias para desenvolver uma aplicação completa.

Como usar

Você precisará baixar o pacote do Adonis e criar um novo projeto usando a ferramenta de CLI, que criará a estrutura completa do projeto. Siga os itens abaixo, que isso será abordado.

Como aprender + validando o conhecimento

A melhor fonte de informação é realmente a Documentação do Adonis 4.1. Mas a documentação é bem completa, e levaria cerca de três horas para ler tudo, então vou listar aqui o que é essencial ler.

Durante os estudos, você desenvolverá um projeto de uma API simples, com dois CRUDS, para entender onde cada coisa fica e como elas se comunicam.

O foco será:

  • Rotas
  • Controller
  • Model
  • Acesso e manipulação de dados
  • Teste

O foco atual não será:

  • Autenticação e segurança
  • Renderização de View

Leitura básica

  1. Começar a ler direto dos conteúdos de "Concept", mas sem se prender muito porque é só uma teoria, apenas dê uma lida rápida
  2. Criar um projeto novo seguindo a leitura dos três capítulos de "Getting started"
  3. Remover pasta "public", já que não teremos view no projeto
  4. Desativar csrf para reduzir a segurança, já que não teremos views

Database

Os dados no Adonis podem ser acessados usando o Database, que seria uma forma mais direta de acesso aos dados, mas nos projetos usaremos sempre o Lucid.

O Lucid implementa um padrão de Active Record, onde é importante saber que existe uma coleção de registros e uma instância de um registro.

  1. Ler sobre Database para configurar a conexão e acesso aos dados
  2. Ler sobre Lucid ORM enquanto faz as tarefas seguintes
  3. Criar uma tabela simples (pelo ao menos 3 campos) - Migrattions
  4. Criar o model desta tabela model
  5. Criar seeds e factories que crie 30 registros aleatórios na sua tabela

Rotas e controllers

  1. Criar controller - testar usar --resource na criação e ver a difrença
  2. Criar rotas de CRUD, tentar usar rota resourceful para ver como funciona
  3. Ler sobre request e response para enteder como obter os parâmetros e retornar resultados
  4. Realizar insert/select/update/delete nos registros usando query builder
  5. Criar um Validator para só salvar dados válidos

Tratamento de erros

No conceito do Laravel e do Adonis, os modelos e rotas emitem exceptions, que são capturadas por um handler global, que decide o que irá fazer, e como irá retornar para o usuário.

  1. Estudar Error Handling para retornar mensagens de erros amigáveis quando necessário

Segunda tabela

  1. Criar uma segunda tabela (migration, seed, factory) que tenha um dado relacionado a primeira
  2. Criar um relacionamento em cada um dos modelos (não precisa estudar "traits")
  3. Criar controller para a segunda tabela, que retorne os registros relacionados também nos endpoints de get

Testes

  1. Criar um método de instância em um dos models, e implementar um teste unitário que valide se o que o método retorna está de acordo com o esperado
  2. Criar um teste de funcional para confirmar que ao incluir um registro via post, o retorno é o próprio objeto enviado, porém retornando o id também

Links úteis

  • Chance - biblioteca usada no "faker" do Adonis
  • Chai - biblioteca de assertions dos testes do Adonis
  • Indicative - biblioteca usada no valitador
  • Japa - biblioteca usada nos testes

Validando o conhecimento

Se você chegou até aqui, e fez todo o projeto, certamante já entendeu como as coisas funcionam. Mas dedique um tempo com algum dev que já tenha prática no Adonis para discutir:

  • Lucid, métodos estáticos da coleção, métodos da instância, relações
  • Error handling, quando tratar erros no controller, e quando deixar para o error handler "global"
  • Implementação de testes funcionais e unitários
← ConteúdoLaravel →
  • O que é
  • Como usar
  • Como aprender + validando o conhecimento
    • Leitura básica
    • Database
    • Rotas e controllers
    • Tratamento de erros
    • Segunda tabela
    • Testes
  • Links úteis
  • Validando o conhecimento
App Masters
App masters
Content
More
BlogGitHub
Copyright © 2022 App Masters