26
O que move a web atualmente? Fábio Leandro Janiszevski

O que move a web atualmente?

Embed Size (px)

Citation preview

Page 1: O que move a web atualmente?

O que move a web atualmente?Fábio Leandro Janiszevski

Page 2: O que move a web atualmente?

Fabio Leandro?● ~3 anos de desenvolvimento WEB na empresa “Ponto Gestor”;

● ~6 anos de experiência com servidores de alta disponibilidade;

● ~15 anos com experiência em Linux;

● Mantenedor do projeto OpenSource “SmartRouter PROJECT”;

● “fabiosammy”. Google it!

● Professor na UTFPR - Campus Guarapuava desde maio/2015;

Page 3: O que move a web atualmente?

O que veremos hoje?● Padrões de projeto;

● Plataformas de desenvolvimento;

● Serviços X Servidores;

● CRUD;

● Frameworks;

● Exemplo prático;

● Monitoramento;

Page 4: O que move a web atualmente?

Desenvolvimento WEB● Aprender conceitos “cliente-servidor”;

● Cuidar com a concorrência;

● Desenvolvimento Ágil! (The Agile Moviment);

● Muitas tecnologias, e muita evolução!

● Tecnologia específica, espere por problemas!

Page 5: O que move a web atualmente?

Padrões de Projeto

Page 6: O que move a web atualmente?

Plataforma é importante?“Tudo o que faço no windows, faço no linux!” (vice-versa)

Page 7: O que move a web atualmente?

POSIX!

Page 8: O que move a web atualmente?

Plataforma é importante?● Windows NÃO É POSIX! (Apesar de que o INTERIX é 100% compatível);

● Unix-Like SÃO POSIX;

● A maioria dos padrões da RFC, baseiam-se no POSIX (Quando se aplica);

● Escolha a plataforma para o seu caso; (Evite querer desenvolver .NET em

ambientes Linux, ou Ruby em ambientes Windows!)

Page 9: O que move a web atualmente?

CRUD● Criar, Ler, Alterar e destruir;

● Navegadores interpretam(segundo a RFC do HTTP 1.1) GET e POST;

● Criar = POST;

● Ler = GET;

● Alterar = PATCH ou PUT;

● Destruir = DELETE;

● Formulários, formulários, formulários…

Page 10: O que move a web atualmente?

Serviços e Servidores● Para o crud anterior, devemos criar um serviço que siga o padrão Rest para uma

coleção de “alunos”:

○ Criar um novo aluno? POST /alunos

○ Deletar um aluno? DELETE /alunos/1

○ Editar um aluno? PUT /alunos/1

○ Visualizar um aluno? GET /alunos/1

○ Visualizar TODOS os alunos? GET /alunos

○ Visualizar formulários de adicionar ou editar um aluno? GET /alunos/new | GET /alunos/1/edit

Page 11: O que move a web atualmente?

Serviços e Servidores● Agora falamos em como devemos interpretar essas rotas(notem que em nenhum

momento foi apresentada a extensão dos arquivos);

● Um servidor de aplicações web vai ser o responsável por interpretar cada verbo

HTTP, e encaminhar a aplicação ou arquivo responsável;

● Apache e Nginx são os mais difundidos e discutidos para a maioria das aplicações

web, cada um com suas respectivas arquiteturas e aplicações;

Page 12: O que move a web atualmente?

Conclusões ● “Alunos” NÃO! Students!

● Além do Rest, podemos citar o SOAP;

● Muitas regras para cada caso;

● Serviço é como o meu cliente vai acessar o sistema, servidor é como eu vou

entregar o sistema;

Page 13: O que move a web atualmente?

Frameworks● Facilitam o progresso de desenvolvimento, gerando produtividade;

● Deixe de pensar em como fazer, mas sim em vamos fazer;

● Pensem em um conjunto de classes que tem por objetivo trazer uma

funcionalidade genérica;

● - “Minha aplicação vai ter conexão ao banco de dados! Como vou conectar ao

banco? E se eu precisar mudar o banco de dados (mysql -> postgres)?”

Page 14: O que move a web atualmente?

Então eu devo criar esse “framework”?

NÃO!

Page 15: O que move a web atualmente?

Mas… Como vou confiar em algo que eu não desenvolvi?

Então porque esta utilizando

uma linguagem “de outros”?!

Page 16: O que move a web atualmente?

Dificilmente uma empresa local terá capital intelectual, tempo e mão-de-obra o

suficiente para competir com uma comunidade mundial.

Page 17: O que move a web atualmente?

People think that because something is "technically superior" everybody else

should blindly adopt. But this is not how the market works.

Page 18: O que move a web atualmente?

Exemplos de frameworks● Para CSS: Bootstrap(Twitter), Foundation, Semantic UI…

● Para Java(WEB): Play(Scala), Click, Wicket, JSF(Oracle), Struts…

● Para JavaScript: React(Facebook), AngulaJS(Google), EmberJS…

● Para PHP: Zend, Laravel, Synfony…

● Para Ruby: Rails, Cuba, Sinatra, Hanami, Padrino …

Page 19: O que move a web atualmente?

Vamos a uma prática rápida com o rails.

rails new myapp…

Page 20: O que move a web atualmente?

Perguntas que não querem calar

● Onde esta o banco de dados?

● Como eu não programei?

● Cadê as queries?

● Como ficou as “rotas”?

● E se eu precisar validar?

Page 21: O que move a web atualmente?

Ótimo, então vamos todos parar e utilizar rails!

Calma! Só porque um notebook novo foi lançado, não

vamos descartar os nossos atuais. O mesmo vale para

softwares;

Page 22: O que move a web atualmente?

ConclusãoEsqueçam de fazer “a minha maneira”, e sim escolher uma

linguagem, buscar e testar frameworks existentes, e optar pelo uso

de um.

Page 23: O que move a web atualmente?

Não esqueçam de monitorar a aplicação!

WEB é um caos!

Page 24: O que move a web atualmente?

Soluções de Monitoramento ● Newrelic

● Datadog

● PagerDuty

Alguns serviços disponíveis para

utilizar em sua app inicial.

Page 25: O que move a web atualmente?

O futuro… ● A evolução do hardware esta seguindo o paralelismo (GPU e CPU multi-core);

● Linguagens funcionais são “mais simples” para programar em paralelo, pois

diferente das linguagens imperativas e orientadas a objetos, não existe variável

mutável(Pensem como funções matemáticas);

● Fortran e COBOL!

● F# (.NET Funcional);

● R (Estatistíca);

● Scala (Java OO + Funcional);

● Elixir (WEB - Linguagem brasileira!);

● … e ainda nem falemos sobre http 2.0, realtime e websocket!

Page 26: O que move a web atualmente?

Perguntas?Muito obrigado!

[email protected]