@WellsSA
@WellsSA
@WellsSA
@WellsSA
@WellsSA
Frontend
Backend
Infraestrutura
@WellsSA
Tecnologias
Conceitos
@WellsSA
@WellsSA
@WellsSA
@WellsSA
@WellsSA
@WellsSA
@WellsSA
meu programa;
int variável;
String variável2;
begin
# um monte de código
# mais código
# sério, muito código
# mais um pouquinho de código
# já disse que tem código?
# pode acreditar, código mesmo
...
end
@WellsSA
class Ornitorrinco {
String nome;
int idade;
}
function alimentar(Ornitorrinco o, Alimento b) {
// M A G I A
// mentira, mais código mesmo
}
class Batata extends Alimento {
// Exemplo meramente ilustrativo
// Tipo foto de alimento
}
@WellsSA
// Antes
[1, 2, 3, 4, 5]
// Depois
[Ornitorrinco, Ornitorrinco, Ornitorrinco, Ornitorrinco]
[
{
nome: 'Zé',
idade: 15,
},
{
nome: 'Zezim',
idade: 3,
},
]
@WellsSA
var x = 2;
var y = 3;
var resultado;
function somar() {
resultado = x + y;
}
function causarDiscordia() {
x = x + 10;
}
causarDiscordia();
somar();
const x = 2;
const y = 3;
function somar(a, b) {
return a + b;
}
const resultado = somar(x, y);
Antes
Depois
Stateless / Immutable
@WellsSA
const meuEmail = 'zezim123@gmail.com';
function recuperarSenha(email) {
// 1. Validar o e-mail
const deuBom = validaEmail(email);
// 2. Se o e-mail estiver certo, pegar os dados do usuário
if(deuBom === true) {
const meuUsuario = procuraUsuarioPorEmail(email);
// 3. Gerar chave de acesso única
const token = gerarToken(meuUsuario.id);
// 4. Preparar mensagem
const mensagem =
'Para alterar sua senha clique em http://meusite.com?auth=' + token;
// 5. Enviar e-mail com a mensagem
const email = enviarEmail(email, mensagem);
}
}
@WellsSA
Programação Estruturada
Programação Orientada a Objetos
Programação Funcional
@WellsSA
@WellsSA
@WellsSA
@WellsSA
Frontend
Backend
Infraestrutura
@WellsSA
Frontend
@WellsSA
@WellsSA
(Nada de senha em input hidden!)
@WellsSA
Backend
@WellsSA
http://localhost:3306
Text
(Processos)
@WellsSA
@WellsSA
http://localhost:3306
Host
Porta
(Máquina)
@WellsSA
Infraestrutura
@WellsSA
@WellsSA
www.wellsadev.com
231.69.123.15
(http://)
DNS
Você
Resposta
Requisição
Frontend
Infraestrutura
Infraestrutura
Infraestrutura
Backend
(HTML, CSS, JS)
@WellsSA
166.72.122.12
Infraestrutura
Infraestrutura
Backend
231.69.123.15
172.16.124.13
Backend
Infraestrutura
Banco de dados
Requisições (http | ws | ...)
Resposta (JSON)
@WellsSA
[
{
nome: "Wellington",
idade: 20,
amigos: ["Kaleo", "Lucas"],
},
{
nome: "Kaleo",
idade: 21,
amigos: ["Lucas", "Wellington"],
},
]
"[{"nome":"Wellington","idade":20,"amigos":["Kaleo","Lucas"]},{"nome":"Kaleo","idade":21,"amigos":["Lucas","Wellington"]}]"
Objeto
X
Texto
(JavaScript Object Notation)
@WellsSA
Componentes
Módulos
Containers
Frontend
Backend
Infraestrutura
@WellsSA
Frontend
O Frontend é vivo!
ReactJS, Angular JS, VueJS
@WellsSA
@WellsSA
@WellsSA
Servidor
Infraestrutura
Backend
Frontend Web
Resposta (HTML, CSS, JS)
(Browser)
Frontend Mobile
X
@WellsSA
Servidor
Infraestrutura
Backend
Frontend Web
Resposta (JSON)
(Browser)
Frontend Mobile
Resposta (JSON)
@WellsSA
O Frontend Só é carregado uma vez!
(Single Page Application + REpresentational State Transfer)
O que ele precisar, ele pede pro servidor (Que devolve só os dados)
@WellsSA
www.wellsadev.com
231.69.123.15
(http://)
DNS
Você
Resposta
Requisição
Frontend
Infraestrutura
Infraestrutura
Infraestrutura
Backend
(HTML, CSS, JS)
@WellsSA
www.app.envia.io
(http://)
DNS
Você
Resposta
Requisição
Frontend
Infraestrutura
(HTML, CSS, JS)
231.69.123.15
Infraestrutura
Backend
231.69.123.15
Infraestrutura
Backend
(JSON)
Resposta
Requisição
Infraestrutura
Backend
231.69.123.16
@WellsSA
@WellsSA
Implementações independentes que funcionam separadamente
NodeJS, Python, Spring
Backend
@WellsSA
(Sim, SEM SERVIDOR!)
Funções everywhere
"Pay as you go"
@WellsSA
Docker, Kubernetes, Docker-Compose
Infraestrutura
@WellsSA
@WellsSA
@WellsSA
@WellsSA
@WellsSA
@WellsSA