Como aumentar a produtividade através da convenção rest em aplicativos web ou mobile

Preview:

Citation preview

COMO AUMENTAR A PRODUTIVIDADE ATRAVÉS DA CONVENÇÃO REST EM

APLICATIVOS WEB OU MOBILEFelipe Iketani

COMO AUMENTAR A PRODUTIVIDADE ATRAVÉS DA CONVENÇÃO REST EM

APLICATIVOS WEB OU MOBILEFelipe Iketani

COMO AUMENTAR A PRODUTIVIDADE

ATRAVÉS DA CONVENÇÃO REST EM APLICATIVOS WEB OU MOBILE

Felipe Iketani

7 BILHÕESde habitantes no mundo

http://pt.wikipedia.org/wiki/Popula%C3%A7%C3%A3o_mundial

18.539.500Desenvolvedores de Softwares no mundo

http://www.infoq.com/news/2014/01/IDC-software-developers

Vilfredo Pareto* 1848+ 1923

20% das pessoas contém 80% da riqueza20% das doenças causam 80% das mortes

20% dos clientes são responsáveis por 80% dos lucros

80% do tempo dos desenvolvedores é gasto na leitura20% do tempo dos desenvolvedores é gasto na escrita

“ Se você quer ser um desenvolvedor mais produtivo,melhore seu tempo de leitura”

Felipe Iketani, 2014

COMO MELHORAR MEU TEMPO DE LEITURA?

SIGAM CONVENSÕES

SIGAM CONVENSÕES

SIGAM (BOAS) CONVENSÕES

SIGAM (BOAS) CONVENSÕES

COMO AUMENTAR A PRODUTIVIDADE

ATRAVÉS DA CONVENSÃO REST EM APLICATIVOS WEB OU MOBILE

Felipe Iketani

COMO AUMENTAR A PRODUTIVIDADE ATRAVÉS DA CONVENÇÃO REST EM

APLICATIVOS WEB OU MOBILEFelipe Iketani

RE.S.T. REPRESENTATIONAL STATE

TRANSFER

RECURSO X REPRESENTAÇÃO

NomeTelefoneEndereçoProfissão

xAugusto Mafra(21) 9555-5555

Rua Antônio MaçalGerente de Reuniões

XML … JSON … HTML … JPG … PNG … MP4

https://graph.facebook.com/v2.3/541313955

1997

https://graph.facebook.com/v2.3/541313955GET

domínioverbo HTTP

versão id da representação

GET http://tasafo.com/membros

GET http://tasafo.com/membros/123PUT http://tasafo.com/membros/123

DELETE http://tasafo.com/membros/123

POST http://tasafo.com/membros/

GET /eventos

GET /eventos/123PUT /eventos/123

DELETE /eventos/123

POST /eventos

EVENTOS

GET /eventos/123/inscricoes

GET /eventos/123/inscricoes/777PUT /eventos/123/inscricoes/777

DELETE /eventos/123/inscricoes/777

POST /eventos/123/inscricoes

INSCRIÇÕES

DELETE /eventos/123/inscricoes/777/cancelarGET /eventos/123/inscricoes/777/tweets

GET /eventos/123/inscricoes/777/tweets

Representaçãoou

Ação

DELETE /eventos/123/inscricoes/777/cancelar

Caminho da representação

GET /eventos/123/inscricoes/777DELETE /eventos/123/inscricoes/777

RepresentaçãoAção

GETSeguro

Indepotente

5 x 1 x 1 x 1 x 1 = 55 x 0 x 0 x 0 x 0 = 0

Seguro e indepotente

Indepotente

SEGURO INDEPOTENTE

GET X X

POST

DELETE X

PUT X

GET … PUT … POST … DELETE…

HEAD … PATCH … OPTIONS … LINK … UNLINK…

RESPOSTAS

POST /palestras/

descricao: “Como criar maionese em casa”imagem: “/imagens/o_rei_da_maionese.png“

Status code 200 - SuccessError message: “Acao deu erro“

POST /palestras/

descricao: “Como criar maionese em casa”imagem: “/imagens/o_rei_da_maionese.png“

Status code 401 - UnauthorizedError message: “Você não está logado“

1XX - Informações2XX - Sucesso3XX - Redirecionamento4XX - Requisição ruim5XX - Erro no servidor

RESPOSTAS HTTP

200 - Sucesso, OK201 - Criado202 - Aceito304 - Sem conteúdo

2XX - Sucesso

301 - Movido permanentemente303 - Veja outro304 - Não modificado307 - Redirecionado temporariamente

3XX - Redirecionamento

400 - Bad request401 - Não autorizado404 - Não encontrado

4XX - Requisição ruim

500 - Erro interno do servidor501 - Não implementado503 - Servidor não disponível

5XX - Erro no servidor

RESTful

80% do tempo dos desenvolvedores é gasto na leitura20% do tempo dos desenvolvedores é gasto na escrita

[{id: 100,titulo: "Seja Notável",autor: “Fábio Aguiar”,image: “/image.jpg”

}, {id: 101,titulo: “Não seja sei próprio sabotador",autor: “Felipe Sousa”,

}]

GET /palestras?&search=seja+notavel

{version: “1.0”, href: “/palestras?&search=seja+notavel”,

items:“[{id: 100,titulo: "Seja Notável",autor: “Fábio Aguiar”,image: “/image.jpg” links: { href: “/palestras/123”, autor: “/autores/5” }

}, {id: 101,titulo: “Não seja sei próprio sabotador",autor: “Felipe Sousa”,links: { href: “/tasafo.com/palestras/123”, autor: “/autores/6” }

}],

template: { titulo: “Título da palestra”, autor_id: “Id do autor”, imagem: “url aqui“ }

}

RESTful

RESTful Hypermedia

RESTful Web Service

Vilfredo Pareto* 1848+ 1923

“ Se você quer ser um desenvolvedor mais produtivo,melhore seu tempo de leitura”

Felipe Iketani, 2014

“ Se você quer uma equipe mais produtiva,crie um ambiente de desenvolvimento

com boas convenções e práticas de desenvolvimento”

Felipe Iketani, 2015

•Código limpo

•Testes automatizados

•Convenções

•Integração contínua

•Versionamento de código

OBRIGADO

e participa das comunidades em Belém

Felipe Iketani trabalha na

BelémMiami (home office)