SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Na com
CEJS - Fortaleza - Ceará - Brazil
cearajs@googlegroups.com
rsvalerio@gmail.com
@rsvalerio
Lembra daquela idéia?
Editor
Eles estão aqui para ajudar!
Ferramentas e APIs para criar o projeto, criar outros
artefatos, validação de sintaxe, otimizar html, js, css e
imagens.
http://yeoman.io/whyyeoman.html
Superheroic Framework MVC em Javascript.
http://angularjs.org/
Apache CouchDB
Banco de dados NOSQL para a WEB. Persiste
documentos em JSON enviados e recebidos via http
através de uma API REST
http://couchdb.apache.org
Eles estão aqui para ajudar!
Sublime Text
Editor leve e rápido.
Gerenciamento de snippets diretamente como um gist, dá pra
selecionar um trecho de código, nomear e criar o snippet no
gist. Depois mac + K , pra pegar o código
O plugin SublimeLinter, valida o código (com jshint) e destaca os erros quando
salva.
Você pode criar multiplos cursores clicando com o mouse, segurando ctrl.
Mais um monte de coisas legais. Vale a pena conhecer.
Referência obrigatória em portugês:
Sublime Text 2 – Dicas para Desenvolvimento Front-end
do Zeno Rocha
Ahhh bom, "só" isso!
Uma nova ferramenta de build.
Um novo framework MVC em JAVASCRIPT!
E uma nova forma de persistência de dados,
nem SQL vai ter!!!
Ferramentas
● Compila seu coffee script / type script
● Gera um arquivo de manifest .htacces (arquivo de
configuração do apache) para você (CORS, compressão,
webfonts, otimização de cache, entre outras coisas)
● Analisa seu código com JS Hint e falha o build caso
encontre erros
● Concatena (junta vário arquivos em um) e "minifica"
(jquery.js - jquery.min.js?) seus HTMLs, CSSs e JSs em
um único arquivo
● Executa seus testes em vários browsers (obrigado ao
testacular por isso
● Detecta suas alterações em tempo de desenvolvimento
e atualiza o browser quando você salva um arquivo .js
ou .html
● Otimiza suas imagens jpg com jpegtran e png com
optipng
Calma Arnold, vamos olhar
novamente
Calma Arnold, vamos olhar
novamente
Superheroic JavaScript MVW Framework
HTML is great for declaring static documents, but it falters when we
try to use it for declaring dynamic views in web-applications.
AngularJS lets you extend HTML vocabulary for your application.
The resulting environment is extraordinarily expressive, readable,
and quick to develop.
Criado pelo google.
Destaque pra separação de código promovida pelas
diretivas (directive), juntamente com data binding
bi-direcional.
Calma Arnold, vamos olhar
novamente
● Routes
● Dependency Injection
● Controller
● Services
● Models
● Directives
● Filters
Calma Arnold, vamos olhar
novamente
yeoman init angular:route usuario
- Cria o arquivo .js para o controller e adiciona na página
- Cria o arquivo .js de test unitário
- Cria o arquivo .html que representa a visão dessa rota
- Adiciona a rota no arquivo app.js, apontando para o
controller e para a view criada
Mão na massa...
Criar uma app simples de exemplo!
Conta
- usuario
- email
Ambiente de desenvolvimento
NodeJS
- Têm instalador para windows e instala via gerenciadores de pacotes mais
comuns para linux e macosx (apt-get, yum, homebrew)
- http://nodejs.org
Yeoman
- sudo npm install -g yeoman
- //sudo npm install -g https://github.com/sebv/yeoman/blob/master/dist/yeoman-cli.tar.gz?raw=true
Couchapp
- npm install -g couchapp
Seu editor de código preferido
E a nuvem?
Publicar no couchdb local ou no cloudant.com ou no iriscouch.com
Adicionar o redirecionamento para poder apontar o domínio.
De dentro da pasta do projeto:
couchapp push couchapp.conf.js
https://rsvalerio:******@rsvalerio.cloudant.com/cejs
Acessar a aplicação na web:
https://cloudant.com/db/rsvalerio/cejs/_design/app/_rewrite
Access your documents with your web browser, via HTTP. Query,
combine, and transform your documents with JavaScript.
CouchDB works well with modern web and mobile apps.
You can even serve web apps directly out of CouchDB. And you can
distribute your data, or your apps, efficiently using CouchDB’s
incremental replication. CouchDB supports master-master setups
with automatic conflict detection.
Apache CouchDB
É da apache
O logotipo é uma poltrona com um folgadão sentado, isso não pode ser ruim! ;)
Pra nós, o melhor é a capacidade de hospedar a aplicação (couchaapp)
juntamente com os dados, bem como o fácil acesso via http (REST API).
Podemos utilizar alguma opção online: http://www.cloudant.com,
http://www.iriscouch.com/ ou ainda instalar um couchdb na amazon, etc.
E a nuvem?
COUCHAPPs
O Couchdb têm a capacidade de "hospedar" nossa aplicação.
Ao invés de fazer o deploy na aplicação no apache, nginx, tomcat ou iis, fazemos no
couchdb.
Gravar um documento do couchdb, é tão simples quanto fazer uma requisição
ajax.
E a nuvem?
COUCHAPPs
1 - Couchdb permite criação de funções para validação de documentos, antes de
persisti-los, ou seja, código sendo executado no servidor.
2 - Couchdb + couch-lucene, resolve qualquer problema de consulta que você possa
ter com views e map+reduces do couchdb. Têm fulltext search (estilo google).
3 - Couchdb têm um suporte único a replicação, master-master!
4 - Temos couchdb rodando em iphone e android com Touchdb
5 - Sincronizar um dispositivo móvel ou desktop com o servidor? Molezinha
proporcionada pelos itens 3 e 4.
6 - A sincronização do item 5, inclui a própria aplicação, lembra que ela reside no
couchdb, junto com os dados?
E a nuvem?
● Journey Through The JavaScript MVC Jungle
● AngularJS - Superheroic JavaScript MVC Framework
● 5 Awesome AngularJS Features
● Instador nodejs no ubuntu com gerenciador de pacotes
● Introdução AngularJS
● Sublime Text 2 - Zeno Rocha
● Antes de publicar vou colocar mais links
Links
About Yeoman
ABOUT
Yeoman is a project developed by Paul Irish, Addy
Osmani, Sindre Sorhus, Mickael Daniel, Eric Bidelman, and the Yeoman
Community.
It's built upon many projects including Ben Alman's
awesome work on Grunt and Mickael's work on the HTML5 Boilerplate Node
Build Script.
About AngularJS
Tagline AngularJS
- Superheroic JavaScript MVW Framework
Introduction AngularJS is a JavaScript framework for building web
applications with HTML, JavaScript and CSS. It offers
powerful data-binding, dependency injection, guidelines for
structuring your app and other useful goodies to make your
webapp testable and maintainable.
Contact info email: angular@googlegroups.com
irc: freenode.net #angularjs
web: http://angularjs.org
google+: google.com/+AngularJS
About Apache CouchDB
CouchDB is a database that completely embraces the web.
Store your data with JSON documents. Access your documents with your web browser, via HTTP.
Query, combine, and transform your documents with JavaScript. CouchDB works well with modern
web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute
your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports
master-master setups with automatic conflict detection.
CouchDB comes with a suite of features, such as on-the-fly
document transformation and real-time change notifications, that makes web app development a
breeze. It even comes with an easy to use web administration console. You guessed it, served up
directly out of CouchDB! We care a lot about distributed scaling. CouchDB is highly available and
partition tolerant, but is also eventually consistent. And we care a lot about your data. CouchDB has a
fault-tolerant storage engine that puts the safety of your data first.
See the introduction, technical overview, or one of the
guides for more information.
http://couchdb.apache.org/#about
About Cloudant
Cloudant was founded in Cambridge,
Massachusetts in 2008 by three MIT physicists who at the time were moving
multi-petabyte data sets around from the Large Hadron Collider. Frustrated by
the available tools for managing and analyzing Big Data in their research, the
founders built a distributed, fault-tolerant, globally scalable data layer on top of
Apache CouchDB.
The service has grown since then. The team now
manages and serves mobile and web app data on behalf of thousands of
developers and hundreds of customers to their users around the world.
And we're still growing.
https://cloudant.com/about-us/

Contenu connexe

Tendances

Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!José Barbosa
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e HudsonRodrigo Branas
 
Performance e otimização no wordpress
Performance e otimização no wordpressPerformance e otimização no wordpress
Performance e otimização no wordpressDaniel Paz
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMaurício Linhares
 
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel  - Core web vitals e WordPressWordCamp Floripa 2021 - Daniel  - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPressWordCamp Floripa
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
Introducao desenvolvimento-web
Introducao desenvolvimento-webIntroducao desenvolvimento-web
Introducao desenvolvimento-webMarcio Mota
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Criando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APICriando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APIJessica Zanelato Soares
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)Cezar Luiz
 
Aplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre ReactAplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre ReactJean Carlo Emer
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
SEO - Otimização de Sites
SEO - Otimização de SitesSEO - Otimização de Sites
SEO - Otimização de SitesRicardo Martins
 
Cache em aplicações web
Cache em aplicações webCache em aplicações web
Cache em aplicações webJean Carlo Emer
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsEmerson Soares
 

Tendances (20)

Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e Hudson
 
Performance e otimização no wordpress
Performance e otimização no wordpressPerformance e otimização no wordpress
Performance e otimização no wordpress
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação Web
 
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel  - Core web vitals e WordPressWordCamp Floripa 2021 - Daniel  - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Introducao desenvolvimento-web
Introducao desenvolvimento-webIntroducao desenvolvimento-web
Introducao desenvolvimento-web
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Criando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APICriando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma API
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)
 
Aplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre ReactAplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre React
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
SEO - Otimização de Sites
SEO - Otimização de SitesSEO - Otimização de Sites
SEO - Otimização de Sites
 
Cache em aplicações web
Cache em aplicações webCache em aplicações web
Cache em aplicações web
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 

En vedette

When I was young (quote from Joseph Landri)
When I was young (quote from Joseph Landri)When I was young (quote from Joseph Landri)
When I was young (quote from Joseph Landri)Sandri Sen
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Rodrigo Valerio
 
Drake's corner ideas
Drake's corner ideasDrake's corner ideas
Drake's corner ideasLee Davies
 
кубок Україна
кубок Українакубок Україна
кубок Українаvetrov
 
стем
стемстем
стемvetrov
 
зустріч
зустрічзустріч
зустрічvetrov
 
деньгідностісвободи
деньгідностісвободиденьгідностісвободи
деньгідностісвободиvetrov
 
профспілкапік
профспілкапікпрофспілкапік
профспілкапікvetrov
 
черлідінг2016осінь
черлідінг2016осіньчерлідінг2016осінь
черлідінг2016осіньvetrov
 

En vedette (18)

When I was young (quote from Joseph Landri)
When I was young (quote from Joseph Landri)When I was young (quote from Joseph Landri)
When I was young (quote from Joseph Landri)
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)
 
Drake's corner ideas
Drake's corner ideasDrake's corner ideas
Drake's corner ideas
 
Dev Ops at Paguemenos
Dev Ops at PaguemenosDev Ops at Paguemenos
Dev Ops at Paguemenos
 
Parts body
Parts bodyParts body
Parts body
 
Birds
BirdsBirds
Birds
 
Kavithai
KavithaiKavithai
Kavithai
 
Revista power point
Revista power pointRevista power point
Revista power point
 
кубок Україна
кубок Українакубок Україна
кубок Україна
 
стем
стемстем
стем
 
зустріч
зустрічзустріч
зустріч
 
Book julio 11
Book julio 11Book julio 11
Book julio 11
 
Mariscos doña petra
Mariscos doña petraMariscos doña petra
Mariscos doña petra
 
деньгідностісвободи
деньгідностісвободиденьгідностісвободи
деньгідностісвободи
 
профспілкапік
профспілкапікпрофспілкапік
профспілкапік
 
черлідінг2016осінь
черлідінг2016осіньчерлідінг2016осінь
черлідінг2016осінь
 
Jaga kebersihan
Jaga kebersihanJaga kebersihan
Jaga kebersihan
 
Kourikka
KourikkaKourikka
Kourikka
 

Similaire à AngularJS, CouchDB e ferramentas para desenvolvimento web

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
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 

Similaire à AngularJS, CouchDB e ferramentas para desenvolvimento web (20)

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.
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Cake Php
Cake PhpCake Php
Cake Php
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Ria
RiaRia
Ria
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
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
 
HTML5
HTML5HTML5
HTML5
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
1409243945064
14092439450641409243945064
1409243945064
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 

AngularJS, CouchDB e ferramentas para desenvolvimento web

  • 1. Na com CEJS - Fortaleza - Ceará - Brazil cearajs@googlegroups.com rsvalerio@gmail.com @rsvalerio
  • 4. Eles estão aqui para ajudar! Ferramentas e APIs para criar o projeto, criar outros artefatos, validação de sintaxe, otimizar html, js, css e imagens. http://yeoman.io/whyyeoman.html Superheroic Framework MVC em Javascript. http://angularjs.org/ Apache CouchDB Banco de dados NOSQL para a WEB. Persiste documentos em JSON enviados e recebidos via http através de uma API REST http://couchdb.apache.org
  • 5. Eles estão aqui para ajudar! Sublime Text Editor leve e rápido. Gerenciamento de snippets diretamente como um gist, dá pra selecionar um trecho de código, nomear e criar o snippet no gist. Depois mac + K , pra pegar o código O plugin SublimeLinter, valida o código (com jshint) e destaca os erros quando salva. Você pode criar multiplos cursores clicando com o mouse, segurando ctrl. Mais um monte de coisas legais. Vale a pena conhecer. Referência obrigatória em portugês: Sublime Text 2 – Dicas para Desenvolvimento Front-end do Zeno Rocha
  • 6. Ahhh bom, "só" isso! Uma nova ferramenta de build. Um novo framework MVC em JAVASCRIPT! E uma nova forma de persistência de dados, nem SQL vai ter!!!
  • 7. Ferramentas ● Compila seu coffee script / type script ● Gera um arquivo de manifest .htacces (arquivo de configuração do apache) para você (CORS, compressão, webfonts, otimização de cache, entre outras coisas) ● Analisa seu código com JS Hint e falha o build caso encontre erros
  • 8. ● Concatena (junta vário arquivos em um) e "minifica" (jquery.js - jquery.min.js?) seus HTMLs, CSSs e JSs em um único arquivo ● Executa seus testes em vários browsers (obrigado ao testacular por isso ● Detecta suas alterações em tempo de desenvolvimento e atualiza o browser quando você salva um arquivo .js ou .html ● Otimiza suas imagens jpg com jpegtran e png com optipng Calma Arnold, vamos olhar novamente
  • 9. Calma Arnold, vamos olhar novamente Superheroic JavaScript MVW Framework HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop. Criado pelo google. Destaque pra separação de código promovida pelas diretivas (directive), juntamente com data binding bi-direcional.
  • 10. Calma Arnold, vamos olhar novamente ● Routes ● Dependency Injection ● Controller ● Services ● Models ● Directives ● Filters
  • 11. Calma Arnold, vamos olhar novamente yeoman init angular:route usuario - Cria o arquivo .js para o controller e adiciona na página - Cria o arquivo .js de test unitário - Cria o arquivo .html que representa a visão dessa rota - Adiciona a rota no arquivo app.js, apontando para o controller e para a view criada
  • 12. Mão na massa... Criar uma app simples de exemplo! Conta - usuario - email
  • 13. Ambiente de desenvolvimento NodeJS - Têm instalador para windows e instala via gerenciadores de pacotes mais comuns para linux e macosx (apt-get, yum, homebrew) - http://nodejs.org Yeoman - sudo npm install -g yeoman - //sudo npm install -g https://github.com/sebv/yeoman/blob/master/dist/yeoman-cli.tar.gz?raw=true Couchapp - npm install -g couchapp Seu editor de código preferido
  • 14. E a nuvem? Publicar no couchdb local ou no cloudant.com ou no iriscouch.com Adicionar o redirecionamento para poder apontar o domínio. De dentro da pasta do projeto: couchapp push couchapp.conf.js https://rsvalerio:******@rsvalerio.cloudant.com/cejs Acessar a aplicação na web: https://cloudant.com/db/rsvalerio/cejs/_design/app/_rewrite
  • 15. Access your documents with your web browser, via HTTP. Query, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection. Apache CouchDB É da apache O logotipo é uma poltrona com um folgadão sentado, isso não pode ser ruim! ;) Pra nós, o melhor é a capacidade de hospedar a aplicação (couchaapp) juntamente com os dados, bem como o fácil acesso via http (REST API). Podemos utilizar alguma opção online: http://www.cloudant.com, http://www.iriscouch.com/ ou ainda instalar um couchdb na amazon, etc. E a nuvem?
  • 16. COUCHAPPs O Couchdb têm a capacidade de "hospedar" nossa aplicação. Ao invés de fazer o deploy na aplicação no apache, nginx, tomcat ou iis, fazemos no couchdb. Gravar um documento do couchdb, é tão simples quanto fazer uma requisição ajax. E a nuvem?
  • 17. COUCHAPPs 1 - Couchdb permite criação de funções para validação de documentos, antes de persisti-los, ou seja, código sendo executado no servidor. 2 - Couchdb + couch-lucene, resolve qualquer problema de consulta que você possa ter com views e map+reduces do couchdb. Têm fulltext search (estilo google). 3 - Couchdb têm um suporte único a replicação, master-master! 4 - Temos couchdb rodando em iphone e android com Touchdb 5 - Sincronizar um dispositivo móvel ou desktop com o servidor? Molezinha proporcionada pelos itens 3 e 4. 6 - A sincronização do item 5, inclui a própria aplicação, lembra que ela reside no couchdb, junto com os dados? E a nuvem?
  • 18. ● Journey Through The JavaScript MVC Jungle ● AngularJS - Superheroic JavaScript MVC Framework ● 5 Awesome AngularJS Features ● Instador nodejs no ubuntu com gerenciador de pacotes ● Introdução AngularJS ● Sublime Text 2 - Zeno Rocha ● Antes de publicar vou colocar mais links Links
  • 19. About Yeoman ABOUT Yeoman is a project developed by Paul Irish, Addy Osmani, Sindre Sorhus, Mickael Daniel, Eric Bidelman, and the Yeoman Community. It's built upon many projects including Ben Alman's awesome work on Grunt and Mickael's work on the HTML5 Boilerplate Node Build Script.
  • 20. About AngularJS Tagline AngularJS - Superheroic JavaScript MVW Framework Introduction AngularJS is a JavaScript framework for building web applications with HTML, JavaScript and CSS. It offers powerful data-binding, dependency injection, guidelines for structuring your app and other useful goodies to make your webapp testable and maintainable. Contact info email: angular@googlegroups.com irc: freenode.net #angularjs web: http://angularjs.org google+: google.com/+AngularJS
  • 21. About Apache CouchDB CouchDB is a database that completely embraces the web. Store your data with JSON documents. Access your documents with your web browser, via HTTP. Query, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection. CouchDB comes with a suite of features, such as on-the-fly document transformation and real-time change notifications, that makes web app development a breeze. It even comes with an easy to use web administration console. You guessed it, served up directly out of CouchDB! We care a lot about distributed scaling. CouchDB is highly available and partition tolerant, but is also eventually consistent. And we care a lot about your data. CouchDB has a fault-tolerant storage engine that puts the safety of your data first. See the introduction, technical overview, or one of the guides for more information. http://couchdb.apache.org/#about
  • 22. About Cloudant Cloudant was founded in Cambridge, Massachusetts in 2008 by three MIT physicists who at the time were moving multi-petabyte data sets around from the Large Hadron Collider. Frustrated by the available tools for managing and analyzing Big Data in their research, the founders built a distributed, fault-tolerant, globally scalable data layer on top of Apache CouchDB. The service has grown since then. The team now manages and serves mobile and web app data on behalf of thousands of developers and hundreds of customers to their users around the world. And we're still growing. https://cloudant.com/about-us/