SlideShare uma empresa Scribd logo
1 de 56
Introdução ao desenvolvimento web - 2 Maurício Linhares – mauricio.linhares@gmail.com
Quemsoueu? DesenvolvedornaOfficeDrop.com; Instrutor da LinuxFi; Consultoremmetodologiaságeis; JUG Leader do PBJUG;
Vendendo o seu colega - Dinâmica Juntem-se em pares; Aprenda sobre o seu par (10 minutos); Forme uma estratégia para apresentá-lo em uma entrevista de emprego: Apresente-o; Determine suas capacidades; Demonstre porque ele é uma boa contratação;
Os protocolos da Internet IP TCP UDP DNS POP/SMTP/IMAP HTTP
IP - Internet Protocol - Rede Protocolo baseado em datagramas; Entrega não garantida (besteffortdelivery); Pacotes podem chegar em ordem incorreta; Não é necessário haver conexão entre a origem e o destino;
TCP – TransmissionControlProtocol - Transporte Baseado em conexão; Entrega garantida de dados; Ordenação dos dados entregues; Controle de fluxo; Controle de congestionamento;
UDP – UserDatagramProtocol - Transporte Sem conexão; Pacotes podem chegar na ordem incorreta; Pacotes podem não chegar do outro lado; O controle deve ser feito pela aplicação;
DNS – DomainName System - Aplicação Transforma nomes (hosts) em endereços IPs (e vice-versa); Simplifica a lembrança de endereços em redes (como a internet); Pode ser usado como uma forma de balancear a carga entre vários servidores; Servidores DNS raízes são a fonte oficial dos hosts, sem eles a internet pára;
Qual o ip de www.josé.com? Qual o IP do DNS de josé.com? Qual o IP de www.jose.com? 201.1.10.24 1.1.1.5
POP/SMTP/IMAP Protocolos de troca de emails; Ainda o serviço mais utilizado da internet; Possível fonte de dados para aplicações web; Provavelmente o meio de comunicação mais eficiente da atualidade;
HTTP – HyperTextTransferProtocol Protocolo base para transmissão de dados na internet; Tudo é transferido em forma de texto (pouco eficiente para dados binários); Tudo é transferido em forma de documentos ou recursos; É a forma mais simples de transferir dados pela internet;
Feramentasdentro do Firefox WebDeveloper; Yslow; Firebug; PageSpeed;
Tecnologias quentes no desenvolvimento web Java? ASP.NET? PHP? Django (Python)? RubyonRails (Ruby)?
Características Importantes Minimalismo; Pouca burocracia; Resultados rápidos; Turnaround rápido; Integração com tecnologias RIA;
O que está em queda Configurações extensas; Início lento ou com vários artefatos antes do início do código; Poucas opções de componentes/plugins de terceiros; Código fechado;
Um blog utilizando RubyonRails Cuidado pra não se maravilhar demais
Dispositivosmóveis? Especializaçãoerrada?
Ambientes Android; iOS; Widows Mobile 7; Blackberry; Algumacoisa da Nokia;
Usos? Aplicaçõesquesincronizam dados entre celulares e apps web; Aplicaçõesfeitasespecialmenteparanavegadores de dispositivosmóveis; Aplicaçõesparadispositivosmóveisquesãoescritasutilizandotecnologias da web (JavaScript, HTML5, CSS);
Twitter for the iPhone
Tecnologias RIA – Rich Internet Applications Volta dos fatclients; Aplicações web que emulam aplicações desktop; É possível gravar dados do lado do cliente; Runtimes normalmente se atualizam automaticamente nos navegadores;
Grooveshark - Flex
Problemas? Versões de runtimes diferentes == problemas diferentes pra debugar; Ocupam um pouco mais de memória e processador nas máquinas clientes; Nem sempre estão instalados e atualizados nas máquinas clientes; Novas linguagens, IDEs e ferramentas pra integrar ao processo;
HTML 5 – RIA sem os plugins Suporte nativo a áudio e vídeo (royalties?) Engines melhores para JavaScript V8 – Chrome Spidermonkey – Firefox IE9 CSS 3; Suporte nativo a SVG para desenhos vetoriais no browser;
Problemas? Quando vai ficar pronto? O IE vai implementar tudo certinho? Quando todos os outros IEs vão morrer? E os royalties do H.256? Quando tudo vai funcionar igual em todos os browsers? (Youtube ainda quebra no Chrome)
Tendências e linguagens de programação Programação funcional; Programação concorrente; Linguagens híbridas; Profissionais poliglotas; Projetos heterogêneos;
Concorrência e o futuro O clock dos processadores não consegue mais evoluir na mesma velocidade; Máquinas com múltiplos cores já fazem parte do dia a dia do usuário final (chips com 6 cores para computadores comuns saem esse ano pela Intel); Aplicações não concorrentes não vão conseguir fazer uso disso e vão continuar eternamente lentas;
Problemas de concorrência? Linguagens OO não são boas para programas concorrentes porque costumam direcionar as pessoas a utilizar memórias compartilhadas; Em linguagens puramente funcionais, não existe memória compartilhada; Linguagens que juntam ambos paradigmas são as mais cotadas para o futuro próximo: Scala; Closure;
Quando tudo o que você tem é um martelo, todos os problemas vão parecer pregos Profissionais poliglotas e projetos heterogêneos
Infraestrutura Bancos de dados? Servidores web? Hosdedagem? Sistemas operacionais? Ambientes de execução?
Bancos de dados Bancos relacionais começando a dar sinais de velhice; Movimento NoSQL crescendo e aparecendo em grandes empresas; Várias opções de bancos de dados não-relacionais para resolver problemas do mundo da internet;
Problemas? Milhões de usuários produzindo bilhões de dados; Os mesmos usuários estão: Buscando; Alterando; Reajustando; E produzindo; ...ainda mais informação;
Bancos de dados relacionais não são escaláveis Repositório central de infomações; Modelos arcaicos de replicação; Modelos arcaicos de conexão e extração de dados; Pouco flexíveis quanto a alteração da estrutura das informações (criar uma nova coluna naquela tabela com milhões de linhas? FUUUUUUU!);
Bancos de dados do movimento NoSQL Nascidos na era da internet com um problema definido para resolver; Schema-less ou bem mais flexíveis quanto a alterações nos modelos; Replicação é funcionalidade padrão; Múltiplos servidores, sharding e particionamento/balanceamento são necessidades básicas;
Opções? Cassandra Facebook Twitter AmazonSimpleDB Precisa dizer?  MongoDB TheNew York Times Justin.tv CouchDB
Servidores web Apache 2 Panela velha é quem faz comida boa né... Lighttpd Leve, seguro e bem comum na web Nginx Direto do gelo da Rússia para o mundo Proxies Pound Varnish HAProxy
Cadê os outros? Tomcat? JBoss? IIS? Jetty?
Hospedagem Compartilhada (piedade senhor, piedade) VPS - Virtual PrivateServers Cloud real AmazonElastic Compute Cloud Cloud VPS Rackspace
Compartilhada O ambiente já está pronto; Você compartilha tudo com várias outras pessoas; Segurança? Acredite em Papai Noel também; Se você precisa de alguma coisa que foge do padrão...
VPS – Virtual Private Server Você escolhe o que vai ser instalado; Você configura o ambiente; Você cria contas e instala o que é necessário; Você faz tudo, mas o ambiente não é controlado externamente; Limites em consumo de memória, transferência e uso de processador;
Cloud real - 1 O mundo é efêmero, você configura uma imagem inicial do servidor e sobe ele para executar um trabalho; A instância não tem armazenamento estático, o que estiver gravado nela se perde se ela for “desligada” ou sair do ar; É necessário “plugar” serviços de armazenamento as instâncias para manter dados entre a execução delas;
Cloud real - 2 Perfeito para serviços “fireandforget”: Cálculos matemáticos longos; Processamento de algoritmos complexos; Quaisquer serviços que vão demorar um tempo razoável mas costumam ter “prazo” para terminar e que dependam de muito poder computacional para serem executados; Hospedagem em um serviço desses não é para os fracos de coração;
Cloud VPS É um serviço de cloud que funciona como VPS; Você contrata uma instância em uma VPS e pode aumentar a instância ou crias novas conforme a sua necessidade; Normalmente disponibilizam APIs para acesso e criação de “fazendas de servidores” quando é necessário; Mais fácil de trabalhar quando o interesse é hospedagem;
Sistemas operacionais Windows; Linux: RedHat OpenSUSE Madriva Ubuntu Unix-based Solaris HP-UX
Ambientes de execução CLR – Máquina Virtual do .Net Mono – Máquina Virtual do .Net multiplataforma Java Virtual Machine – Máquina Virtual Java
CLR – CommonLanguageRuntime Ambiente de execução Microsoft para o ambiente .Net; Disponível apenas no Windows; Integração forte com APIs disponíveis do Windows e forma preferida para desenvolvimento de aplicações nessa plataforma;
Projeto Mono - .Net Multiplataforma Leva o runtime do .Net para outras plataformas que não Windows; Costuma estar atrasado quando comparado com o CLR da Microsoft; Não implementa alguns pedaços do .Net Framework por questões jurídicas da Microsoft; Nem sempre apresenta o mesmo comportamento do CLR no Windows;
JVM – Java Virtual Machine Ambiente de execução comumente relacionado a linguagem de programação Java; Já tem um conjunto longo de linguagens executáveis: Ruby; PHP; Scala; Closure; Python (Jython);
Tendências em negócios Aplicações sociais; Aplicações dentro de redes sociais; Jogos em navegadores; SAAS – Software as a Service;
O mundo social ainda não morreu Aplicações sociais continuam surgindo, conseguindo público e ganhando dinheiro: http://foursquare.com/ http://justin.tv/ http://twitter.com/ http://shellfari.com/ Novas aplicações focam em nichos específicos; Redes sociais “genéricas” não vão mais chamar a atenção;
devefazerU$ 238.65 milhõesde lucroem 2010
Aplicações dentro de redes sociais Orkut BuddyPoke; Colheita Feliz; MiniFazenda; JogaCraque; Facebook: MafiaWars; FarmVille;
Jogos em navegadores Travian; La Brute; BiteFight; Continua eternamente...
Software as a Service - 1 Modelo de negócio para começar a produzir e vender software; Uso do software fica sempre atrelado ao pagamento de uma assinatura mensal ou taxa de uso; O fluxo de caixa se mantém constante enquanto os clientes estão usando/pagando; Economia de escala barateia os preços de assinatura;
Software as a service - 2 Aplicações com pouca customização, normalmente são produtos de prateleira que são vendidos de forma diferente; Normalmente na forma de aplicações web (mais difícil de piratear e mais fácil de implantar atualizações); Normalmente voltados a pequenas e médias empresas;
Exercício – 30 minutos Juntar-se em grupos; Pensar em um produto SAAS; Definir: Público; Funcionalidades principais; Preços; Como atingir os clientes; Apresentar o produto;

Mais conteúdo relacionado

Mais procurados

Catálogo de Processos de TIC
Catálogo de Processos de TICCatálogo de Processos de TIC
Catálogo de Processos de TICmatheusvetor
 
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...Zabbix BR
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Diego Pacheco
 
Certificação LPI: qual sua importância no mercado de trabalho?
Certificação LPI: qual sua importância no mercado de trabalho?Certificação LPI: qual sua importância no mercado de trabalho?
Certificação LPI: qual sua importância no mercado de trabalho?Impacta Eventos
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaSEder Magalhães
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetGerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetAécio Pires
 
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...Joao Galdino Mello de Souza
 

Mais procurados (11)

Catálogo de Processos de TIC
Catálogo de Processos de TICCatálogo de Processos de TIC
Catálogo de Processos de TIC
 
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
1º Meetup Zabbix Meetup do Recife: Edilmar Junior - Para cima e avante do bás...
 
Bruno Medico CV 2018
Bruno Medico CV 2018Bruno Medico CV 2018
Bruno Medico CV 2018
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0
 
Certificação LPI: qual sua importância no mercado de trabalho?
Certificação LPI: qual sua importância no mercado de trabalho?Certificação LPI: qual sua importância no mercado de trabalho?
Certificação LPI: qual sua importância no mercado de trabalho?
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetGerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
 
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
 

Destaque (9)

Apresentação sobre DB4O
Apresentação sobre DB4OApresentação sobre DB4O
Apresentação sobre DB4O
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 
Além do java
Além do javaAlém do java
Além do java
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Conhecendo o Decorator
Conhecendo o DecoratorConhecendo o Decorator
Conhecendo o Decorator
 
Banco de dados dbo4
Banco de dados dbo4Banco de dados dbo4
Banco de dados dbo4
 
The Fast, The Slow and the Lazy
The Fast, The Slow and the LazyThe Fast, The Slow and the Lazy
The Fast, The Slow and the Lazy
 

Semelhante a Introdução ao desenvolvimento web - 2 - iDez 2010

Desenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicosDesenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicosAndre Camilo
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoDarlan Segalin
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010Marcelo Fleury
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidNatanael Fonseca
 
Aula 01 - Programação Web - PHP
Aula 01  - Programação Web - PHPAula 01  - Programação Web - PHP
Aula 01 - Programação Web - PHPDalton Martins
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo maisakamud
 
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Eduardo Souza
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...tdc-globalcode
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018Graziella Bonizi
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
 
Software Livre em pequenas empresas
Software Livre em pequenas empresasSoftware Livre em pequenas empresas
Software Livre em pequenas empresasPaulo Henrique
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesWilliam S. Rodriguez
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...William S. Rodriguez
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1michellobo
 

Semelhante a Introdução ao desenvolvimento web - 2 - iDez 2010 (20)

Desenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicosDesenvolvimento de sistemas jurídicos
Desenvolvimento de sistemas jurídicos
 
Transformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualizaçãoTransformando a ti com cloud computing e virtualização
Transformando a ti com cloud computing e virtualização
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Cursos
CursosCursos
Cursos
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010See Project - Segurança em Cloud Computing FLISOL GO 2010
See Project - Segurança em Cloud Computing FLISOL GO 2010
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma Android
 
Aula 01 - Programação Web - PHP
Aula 01  - Programação Web - PHPAula 01  - Programação Web - PHP
Aula 01 - Programação Web - PHP
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
OpenShift
OpenShiftOpenShift
OpenShift
 
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
 
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
TDC2018SP | Trilha Arq .Net - 12-factor apps: Boas praticas na construcao de ...
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
Software Livre em pequenas empresas
Software Livre em pequenas empresasSoftware Livre em pequenas empresas
Software Livre em pequenas empresas
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 

Mais de Maurício Linhares

Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropMaurício Linhares
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMaurício Linhares
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleçõesMaurício Linhares
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismoMaurício Linhares
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratosMaurício Linhares
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecasMaurício Linhares
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemMaurício Linhares
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Maurício Linhares
 
Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Maurício Linhares
 
Projeto e desenvolvimento de sistemas de informação 4 - computação em rede
Projeto e desenvolvimento de sistemas de informação   4 - computação em redeProjeto e desenvolvimento de sistemas de informação   4 - computação em rede
Projeto e desenvolvimento de sistemas de informação 4 - computação em redeMaurício Linhares
 

Mais de Maurício Linhares (20)

Mercado de TI
Mercado de TIMercado de TI
Mercado de TI
 
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Curso java 02 - variáveis
Curso java   02 - variáveisCurso java   02 - variáveis
Curso java 02 - variáveis
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvem
 
Mercado hoje
Mercado hojeMercado hoje
Mercado hoje
 
Revisão html e java script
Revisão html e java scriptRevisão html e java script
Revisão html e java script
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010
 
Projeto e desenvolvimento de sistemas de informação 4 - computação em rede
Projeto e desenvolvimento de sistemas de informação   4 - computação em redeProjeto e desenvolvimento de sistemas de informação   4 - computação em rede
Projeto e desenvolvimento de sistemas de informação 4 - computação em rede
 
Extreme programming explicada
Extreme programming explicadaExtreme programming explicada
Extreme programming explicada
 
Jdbc e hibernate
Jdbc e hibernateJdbc e hibernate
Jdbc e hibernate
 

Introdução ao desenvolvimento web - 2 - iDez 2010

  • 1. Introdução ao desenvolvimento web - 2 Maurício Linhares – mauricio.linhares@gmail.com
  • 2. Quemsoueu? DesenvolvedornaOfficeDrop.com; Instrutor da LinuxFi; Consultoremmetodologiaságeis; JUG Leader do PBJUG;
  • 3. Vendendo o seu colega - Dinâmica Juntem-se em pares; Aprenda sobre o seu par (10 minutos); Forme uma estratégia para apresentá-lo em uma entrevista de emprego: Apresente-o; Determine suas capacidades; Demonstre porque ele é uma boa contratação;
  • 4. Os protocolos da Internet IP TCP UDP DNS POP/SMTP/IMAP HTTP
  • 5. IP - Internet Protocol - Rede Protocolo baseado em datagramas; Entrega não garantida (besteffortdelivery); Pacotes podem chegar em ordem incorreta; Não é necessário haver conexão entre a origem e o destino;
  • 6. TCP – TransmissionControlProtocol - Transporte Baseado em conexão; Entrega garantida de dados; Ordenação dos dados entregues; Controle de fluxo; Controle de congestionamento;
  • 7. UDP – UserDatagramProtocol - Transporte Sem conexão; Pacotes podem chegar na ordem incorreta; Pacotes podem não chegar do outro lado; O controle deve ser feito pela aplicação;
  • 8. DNS – DomainName System - Aplicação Transforma nomes (hosts) em endereços IPs (e vice-versa); Simplifica a lembrança de endereços em redes (como a internet); Pode ser usado como uma forma de balancear a carga entre vários servidores; Servidores DNS raízes são a fonte oficial dos hosts, sem eles a internet pára;
  • 9. Qual o ip de www.josé.com? Qual o IP do DNS de josé.com? Qual o IP de www.jose.com? 201.1.10.24 1.1.1.5
  • 10. POP/SMTP/IMAP Protocolos de troca de emails; Ainda o serviço mais utilizado da internet; Possível fonte de dados para aplicações web; Provavelmente o meio de comunicação mais eficiente da atualidade;
  • 11. HTTP – HyperTextTransferProtocol Protocolo base para transmissão de dados na internet; Tudo é transferido em forma de texto (pouco eficiente para dados binários); Tudo é transferido em forma de documentos ou recursos; É a forma mais simples de transferir dados pela internet;
  • 12. Feramentasdentro do Firefox WebDeveloper; Yslow; Firebug; PageSpeed;
  • 13. Tecnologias quentes no desenvolvimento web Java? ASP.NET? PHP? Django (Python)? RubyonRails (Ruby)?
  • 14. Características Importantes Minimalismo; Pouca burocracia; Resultados rápidos; Turnaround rápido; Integração com tecnologias RIA;
  • 15. O que está em queda Configurações extensas; Início lento ou com vários artefatos antes do início do código; Poucas opções de componentes/plugins de terceiros; Código fechado;
  • 16. Um blog utilizando RubyonRails Cuidado pra não se maravilhar demais
  • 18. Ambientes Android; iOS; Widows Mobile 7; Blackberry; Algumacoisa da Nokia;
  • 19. Usos? Aplicaçõesquesincronizam dados entre celulares e apps web; Aplicaçõesfeitasespecialmenteparanavegadores de dispositivosmóveis; Aplicaçõesparadispositivosmóveisquesãoescritasutilizandotecnologias da web (JavaScript, HTML5, CSS);
  • 20. Twitter for the iPhone
  • 21. Tecnologias RIA – Rich Internet Applications Volta dos fatclients; Aplicações web que emulam aplicações desktop; É possível gravar dados do lado do cliente; Runtimes normalmente se atualizam automaticamente nos navegadores;
  • 23. Problemas? Versões de runtimes diferentes == problemas diferentes pra debugar; Ocupam um pouco mais de memória e processador nas máquinas clientes; Nem sempre estão instalados e atualizados nas máquinas clientes; Novas linguagens, IDEs e ferramentas pra integrar ao processo;
  • 24. HTML 5 – RIA sem os plugins Suporte nativo a áudio e vídeo (royalties?) Engines melhores para JavaScript V8 – Chrome Spidermonkey – Firefox IE9 CSS 3; Suporte nativo a SVG para desenhos vetoriais no browser;
  • 25. Problemas? Quando vai ficar pronto? O IE vai implementar tudo certinho? Quando todos os outros IEs vão morrer? E os royalties do H.256? Quando tudo vai funcionar igual em todos os browsers? (Youtube ainda quebra no Chrome)
  • 26. Tendências e linguagens de programação Programação funcional; Programação concorrente; Linguagens híbridas; Profissionais poliglotas; Projetos heterogêneos;
  • 27. Concorrência e o futuro O clock dos processadores não consegue mais evoluir na mesma velocidade; Máquinas com múltiplos cores já fazem parte do dia a dia do usuário final (chips com 6 cores para computadores comuns saem esse ano pela Intel); Aplicações não concorrentes não vão conseguir fazer uso disso e vão continuar eternamente lentas;
  • 28. Problemas de concorrência? Linguagens OO não são boas para programas concorrentes porque costumam direcionar as pessoas a utilizar memórias compartilhadas; Em linguagens puramente funcionais, não existe memória compartilhada; Linguagens que juntam ambos paradigmas são as mais cotadas para o futuro próximo: Scala; Closure;
  • 29. Quando tudo o que você tem é um martelo, todos os problemas vão parecer pregos Profissionais poliglotas e projetos heterogêneos
  • 30. Infraestrutura Bancos de dados? Servidores web? Hosdedagem? Sistemas operacionais? Ambientes de execução?
  • 31. Bancos de dados Bancos relacionais começando a dar sinais de velhice; Movimento NoSQL crescendo e aparecendo em grandes empresas; Várias opções de bancos de dados não-relacionais para resolver problemas do mundo da internet;
  • 32. Problemas? Milhões de usuários produzindo bilhões de dados; Os mesmos usuários estão: Buscando; Alterando; Reajustando; E produzindo; ...ainda mais informação;
  • 33. Bancos de dados relacionais não são escaláveis Repositório central de infomações; Modelos arcaicos de replicação; Modelos arcaicos de conexão e extração de dados; Pouco flexíveis quanto a alteração da estrutura das informações (criar uma nova coluna naquela tabela com milhões de linhas? FUUUUUUU!);
  • 34. Bancos de dados do movimento NoSQL Nascidos na era da internet com um problema definido para resolver; Schema-less ou bem mais flexíveis quanto a alterações nos modelos; Replicação é funcionalidade padrão; Múltiplos servidores, sharding e particionamento/balanceamento são necessidades básicas;
  • 35. Opções? Cassandra Facebook Twitter AmazonSimpleDB Precisa dizer?  MongoDB TheNew York Times Justin.tv CouchDB
  • 36. Servidores web Apache 2 Panela velha é quem faz comida boa né... Lighttpd Leve, seguro e bem comum na web Nginx Direto do gelo da Rússia para o mundo Proxies Pound Varnish HAProxy
  • 37. Cadê os outros? Tomcat? JBoss? IIS? Jetty?
  • 38. Hospedagem Compartilhada (piedade senhor, piedade) VPS - Virtual PrivateServers Cloud real AmazonElastic Compute Cloud Cloud VPS Rackspace
  • 39. Compartilhada O ambiente já está pronto; Você compartilha tudo com várias outras pessoas; Segurança? Acredite em Papai Noel também; Se você precisa de alguma coisa que foge do padrão...
  • 40. VPS – Virtual Private Server Você escolhe o que vai ser instalado; Você configura o ambiente; Você cria contas e instala o que é necessário; Você faz tudo, mas o ambiente não é controlado externamente; Limites em consumo de memória, transferência e uso de processador;
  • 41. Cloud real - 1 O mundo é efêmero, você configura uma imagem inicial do servidor e sobe ele para executar um trabalho; A instância não tem armazenamento estático, o que estiver gravado nela se perde se ela for “desligada” ou sair do ar; É necessário “plugar” serviços de armazenamento as instâncias para manter dados entre a execução delas;
  • 42. Cloud real - 2 Perfeito para serviços “fireandforget”: Cálculos matemáticos longos; Processamento de algoritmos complexos; Quaisquer serviços que vão demorar um tempo razoável mas costumam ter “prazo” para terminar e que dependam de muito poder computacional para serem executados; Hospedagem em um serviço desses não é para os fracos de coração;
  • 43. Cloud VPS É um serviço de cloud que funciona como VPS; Você contrata uma instância em uma VPS e pode aumentar a instância ou crias novas conforme a sua necessidade; Normalmente disponibilizam APIs para acesso e criação de “fazendas de servidores” quando é necessário; Mais fácil de trabalhar quando o interesse é hospedagem;
  • 44. Sistemas operacionais Windows; Linux: RedHat OpenSUSE Madriva Ubuntu Unix-based Solaris HP-UX
  • 45. Ambientes de execução CLR – Máquina Virtual do .Net Mono – Máquina Virtual do .Net multiplataforma Java Virtual Machine – Máquina Virtual Java
  • 46. CLR – CommonLanguageRuntime Ambiente de execução Microsoft para o ambiente .Net; Disponível apenas no Windows; Integração forte com APIs disponíveis do Windows e forma preferida para desenvolvimento de aplicações nessa plataforma;
  • 47. Projeto Mono - .Net Multiplataforma Leva o runtime do .Net para outras plataformas que não Windows; Costuma estar atrasado quando comparado com o CLR da Microsoft; Não implementa alguns pedaços do .Net Framework por questões jurídicas da Microsoft; Nem sempre apresenta o mesmo comportamento do CLR no Windows;
  • 48. JVM – Java Virtual Machine Ambiente de execução comumente relacionado a linguagem de programação Java; Já tem um conjunto longo de linguagens executáveis: Ruby; PHP; Scala; Closure; Python (Jython);
  • 49. Tendências em negócios Aplicações sociais; Aplicações dentro de redes sociais; Jogos em navegadores; SAAS – Software as a Service;
  • 50. O mundo social ainda não morreu Aplicações sociais continuam surgindo, conseguindo público e ganhando dinheiro: http://foursquare.com/ http://justin.tv/ http://twitter.com/ http://shellfari.com/ Novas aplicações focam em nichos específicos; Redes sociais “genéricas” não vão mais chamar a atenção;
  • 52. Aplicações dentro de redes sociais Orkut BuddyPoke; Colheita Feliz; MiniFazenda; JogaCraque; Facebook: MafiaWars; FarmVille;
  • 53. Jogos em navegadores Travian; La Brute; BiteFight; Continua eternamente...
  • 54. Software as a Service - 1 Modelo de negócio para começar a produzir e vender software; Uso do software fica sempre atrelado ao pagamento de uma assinatura mensal ou taxa de uso; O fluxo de caixa se mantém constante enquanto os clientes estão usando/pagando; Economia de escala barateia os preços de assinatura;
  • 55. Software as a service - 2 Aplicações com pouca customização, normalmente são produtos de prateleira que são vendidos de forma diferente; Normalmente na forma de aplicações web (mais difícil de piratear e mais fácil de implantar atualizações); Normalmente voltados a pequenas e médias empresas;
  • 56. Exercício – 30 minutos Juntar-se em grupos; Pensar em um produto SAAS; Definir: Público; Funcionalidades principais; Preços; Como atingir os clientes; Apresentar o produto;