Desenvolvemos para web?

29
Desenvolvemos para WEB? Guia simples de desenvolvimento para WEB (bem simples)

description

Dicas para desenvolvedores que querem fazer uma Web rápida e divertida. Explicações sobre HTTP, HTML, CSS, JavaScripts, ferramentas e bibliotecas que fazem nossa vida mais fácil

Transcript of Desenvolvemos para web?

Page 1: Desenvolvemos para web?

Desenvolvemos para WEB?

Guia simples de desenvolvimento para WEB (bem simples)

Page 2: Desenvolvemos para web?

Quem sou

Luís Fernando Vendrame– Desenvolvedor na Digisystem– Gosta das coisas das internets– Gosta de velocidade nela– www.lvendrame.com– @lvendrame_br

Page 3: Desenvolvemos para web?

O que é necessário

• Um navegador (de preferência vários)• Um Servidor WEB(se for pra desenvolver,

necessitaremos de um servidor WEB, se for pra fazer um sitezinho, não)

• Uma linguagem que seja interpretada e processada pelo seu servidor

• Um banco de dados (a maioria das aplicações utilizaram um banco de dados)

Page 4: Desenvolvemos para web?

O que faz um Servidor WEB

• Faz escuta em alguma porta do computador (geralmente a 80 e a 8080)

• Intercepta os dados que chegam na porta– Transforma os dados em uma chamada HTTP.– Passa a informação para o interpretador

necessário.• Interpretador processa a chamada e verifica o que deve

servir.– Arquivos estáticos– Arquivos dinâmicos (é aqui que mora o desenvolvimento)

Page 5: Desenvolvemos para web?

Conhecimento Necessários

• HTTP (se quiser ser considerado um desenvolvedor WEB, conheça o caminhão que transporta toda a comunicação)

• ASP.Net, JSP, PHP, Node.JS? Talvez????• HTML, CSS• JavaScript

Page 6: Desenvolvemos para web?

HTTP

• URL– Se a informação chegou no servidor, ela veio por meio

de uma URL– Formato: protocolo://host/caminho/recurso – A URL por si só carrega muitas informações

• O protocolo, no caso, HTTP ou HTTPS• Host (endereço do servidor e porta de entrada)• Caminho: caminho do recurso no servidor WEB• Recurso (o conteúdo que necessitamos, pode ser estático

ou dinâmico)• Query String (?chave=valor)

Page 7: Desenvolvemos para web?

HTTP

• Cabeçalho– Indica o tipo de chamada– É lá também que moram informações adicionais

• Content-Type• Cookies• Se aceita compactação do conteúdo e o tipo de compactação• Qual o navegador• Qual o SO• Versão, tamanho, data, etc do recurso que está no cache do

navegador• Etc...

Page 8: Desenvolvemos para web?

HTTP

• Corpo– Opcional– Conteúdo da chamada

• Informações do Post• Informações do Response

– Deve respeitar o Content-Type

• Tipos de chamadas– GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS e

CONNECT

Page 9: Desenvolvemos para web?

HTTP

• GET– Usado para a requisição de algum recurso– Por padrão carrega as informações necessárias

direto na URL– Exemplo:

GET /index.html HTTP/1.1 Host: www.exemplo.com

Page 10: Desenvolvemos para web?

HTTP

• HEAD– Variação do GET, porém o servidor não retornará

nenhum conteúdo, apenas o cabeçalho.– Usado geralmente para obter metadados.– Nunca usei diretamente, se o navegador utilizou

por mim, obrigado

Page 11: Desenvolvemos para web?

HTTP

• POST– Utilizado para enviar informações no servidor.– As informações são colocadas no corpo.– Exemplo:

POST /index.html HTTP/1.0Accept: text/htmlIf-modified-since: Sat, 29 Oct 1999 19:43:31 GMTContent-Type: application/x-www-form-urlencodedContent-Length: 41

Nome=NomePessoa&Idade=99&Curso=Computacao

Page 12: Desenvolvemos para web?

HTTP

• PUT– Utilizado para enviar recurso para o servidor.– O recurso é colocado no corpo.

• DELETE– Utilizado para indicar ao servidor que

determinado recurso deve ser excluído– O recurso é indicado diretamente na URL

Page 13: Desenvolvemos para web?

HTTP

• TRACE– Ecoa o pedido, de maneira que o cliente possa saber o que os

servidores intermediários estão mudando em seu pedido

• OPTIONS– Recupera os métodos HTTP que o servidor aceita

• CONNECT– Serve para uso com um proxy que possa se tornar um

túnel SSL

Page 14: Desenvolvemos para web?

HTTP

• Códigos de Estado– São muito utilizados pelos interpretadores em Servidores WEB

para informarem o status da requisição

– Existem 5 faixas de uso:• 1xx: Informational - utilizada para enviar informações para o cliente de

que sua requisição foi recebida e está sendo processada• 2xx: Success: indica que a requisição do cliente foi bem sucedida• 3xx: Redirection: informa a ação adicional que deve ser tomada para

completar a requisição• 4xx: Client Error - avisa que o cliente fez uma requisição que não pode ser

atendida• 5xx: Server Error - ocorreu um erro no servidor ao cumprir uma requisição

válida

Page 15: Desenvolvemos para web?

HTTP

• Códigos de Estado– São pouco utilizados pelos programadores, muito

por falta de conhecimento– Simplifica a comunicação de problemas e reduz o

consumo de banda– Vários códigos de estado já possuem funções pré-

definidas que atendem praticamente todas as necessidades, se não existe um para a sua necessidade, crie o seu utilizando os códigos sem predefinição

Page 16: Desenvolvemos para web?

Interpretador

• Recebe do servidor WEB o contexto da requisição (request) e esperam a resposta (response) do interpretador

• Desenvolvedores trabalham em cima deste contexto, manipulando a resposta

• Geralmente o corpo da resposta é uma string contendo o HTML manipulado

• Atualmente XML e JSON também são bastante utilizados• Arquivos estáticos geralmente são localizados e

enviados sem a interferência do desenvolvedor

Page 17: Desenvolvemos para web?

HTML

• Linguagem de marcação de hypertexto, que, geralmente em conjunto com CSS e JavaScript, os navegadores processam para exibir conteúdo

• Deve conter apenas as informações a serem mostradas

• Se for todo semântico a população agradece• HTML5 tem vários novos elementos legais de

serem utilizados e que deixam o documento cada vez mais semântico

Page 18: Desenvolvemos para web?

CSS

• Folha de estilo em cascata• Em cascata, ou seja, o que vier depois substituirá o que

veio antes nos casos em que estilos conflitarem• Em cascata, pare de usar “!important” por favor• Serve para definir o estilo de nossa aplicação, página, site

ou como você quiser chamar• Media queries nos possibilitam o encaixe do HTML em

diversos dispositivos.• CSS3 tem vários novos atributos legais de serem utilizados

que deixaram os designers mais a vontade e felizes para criação

Page 19: Desenvolvemos para web?

JavaScript

• Linguagem de script que segue as especificações do ECMAScript

• Flexível e poderosa, permite fazer diversas manipulações no HTML e interagir com o navegador

• As engines de processamento de JavaScript dos navegadores estão cada vez mais otimizadas para a execução dos mesmos

Page 20: Desenvolvemos para web?

JavaScript

• É importante ler documentações e aprender a utilizar a linguagem

• Ela é legal pra quem sabe, um misto entre orientada a objetos e funcional que no final não é nada disso.

• A especificação ECMAScript 5 possui muitas APIs novas para serem utilizadas que ajudam bastante os desenvolvedores.

Page 21: Desenvolvemos para web?

Estratégias

• Reduzir a quantidade de requests• Reduzir o tamanho dos requests e responses• CSS no começo, mas JavaScript no final (ou no

mínimo async)• Utilizar CDNs sempre que possível• Minificação da galera• Tome cuidado com a barreira que existe entre o

DOM e o JavaScript, ela tem um pedágio, e o custo é alto

Page 22: Desenvolvemos para web?

Adicionais

• REST• Canvas e WebGL• BootStrap, Fundation• Bibliotecas maneiras– JQuery– AngularJS– Backbone– Underscore– Moments

Page 23: Desenvolvemos para web?

Adicionais

• ADOBE agora faz mais ferramentas para HTML5 do que para Flash, só não sei se eles contaram– CREATEJS (EASELJS, TWEENJS, SOUNDJS,

PRELOADSJS), BRACKETS e vai saber mais o que• Emmet -> html>head>title{oi}^body>h1{eita}

+div.content• SPDY

Page 24: Desenvolvemos para web?

NodeJS• JavaScript ficou tão legal que foi parar no server• Engine de interpretação é a V8, a mesma do Chrome que foi desenvolvida

pelo Google• Processamento não bloqueante• Ta dando pau em outros interpretadores, e sem compilar• Permite utilizar códigos compilados em C++ para processamentos pesados• Não precisa de nenhum zereguede para transformar JSON, e o navegador

gosta de enviar JSON, e o NodeJS tem ele em sua alma, afinal...• Bibliotecas e APIs em um só lugar, com uma facilidade de instalação que eu

até choro• A comunidade ta louca e ativa.• É muito legal, mas legal mesmo.

Page 25: Desenvolvemos para web?

NodeJS

• Muitas empresas estão migrando seus sites (PayPal, Twitter, LinkedIn, Walmart {que não morreu na Black Friday}, entre outros {http://nodejs.org/industry/})

• Joyent agora da suporte, uau!!!• É muito legal• Mas legal mesmo

Page 26: Desenvolvemos para web?

NodeJS

•É muito legal•Mas legal mesmo

Page 27: Desenvolvemos para web?

Conclusão

Da pra fazer uma Web rápida e legal

Desenvolvedores que fazem coisas legais tendem a ficar mais motivados

Alguém ficará rico com desenvolvedores motivados, mas quem liga, desde que eles nos deixem fazer coisas legais e ainda nos pagarem pra isto

Page 28: Desenvolvemos para web?

Obrigado

• Clap, clap, clap (espero)• Mais clap, clap, clap

Page 29: Desenvolvemos para web?

Referências• http://www.webdevelopersnotes.com/basics/what_is_web_server.php• http://pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol• http://pt.wikipedia.org/wiki/Anexo:Lista_de_c%C3%B3digos_de_status_HTTP• http://www.w3.org/Protocols/• http://dev.chromium.org/spdy• https://developer.mozilla.org/en-US/docs/Web/JavaScript?redirectlocale=en-US&redirectslug=Jav

aScript• http://www.ecma-international.org/publications/standards/Ecma-262.htm• http://brackets.io/• http://emmet.io/• http://bonsaiden.github.io/JavaScript-Garden/• http://www.createjs.com/#!/CreateJS• http://getbootstrap.com/• http://foundation.zurb.com/• http://nodejs.org/• http://browserdiet.com/pt/• Zakas, Nicholas C. – JavaScript de Alto Desempenho – Novatec – 2010• Souders, Steve – Alta Performance em Sites Web – Alta Books - 2007