SlideShare uma empresa Scribd logo
1 de 28
Ganhando tempo com
Task Runners
Fabio Carvalho
Fabio Carvalho
/fccoelho7
PERFORMANCE
Google
PageSpeed
Insights
http://csscompressor.com/
http://jscompress.com/
https://tinypng.com/
Que tal
automatizar
tudo isso ?
Task Runners
Grunt, Gulp, Cake, Broccoli, ..
O que podemos fazer?
Concatenação e Minificação
assets/
stylesheets/
style.scss
javascripts/
libs/
jquery.js
angular.js
/vendor
jquery.swiper.js
jquery.colorbox.js
app.js
build/
style.min.css
main.min.js
Compressão de Imagens
imagemin: {
dist: {
options: {
optimizationLevel:
7,
progressive: true
},
files: [{
expand: true,
filter: 'isFile',
cwd: '<%=
dirs.images %>/',
src:
'**/*.{png,jpg,gif}',
dest: '<%=
dirs.images %>/'
}]
JSHint
Live Preview
DEPLOY
rsync: {
staging: {
options: {
src:
'../',
dest:
'~/PATH',
host:
'user@host.com'
}
},
production: {
options: {
src:
'../',
dest:
'~/PATH',
host:
Deploy - SSH & FTP
$ grunt ftp //
ftp
$ grunt r:prod // ssh
Pré Processadores
<body>
<h1>2º Meetup Developers & TI
GV</h1>
<h2>Seja bem-vindo!</h2>
<main>
<div class="container">
<p>Você é
foda!</p>
</div>
</main>
</body>
HTML - JADE
body
h1 2º Meetup Developers & TI GV
h2 Seja bem-vindo!
main
.container
if youAreUsingJade
p Você é
foda!
else
p Não
creio!
CSS - SASS
.card {
background-color: #EEE;
.title {
color: #999;
font-size: 18px;
font-weight: bold;
}
.description {
font-size: 14px;
}
}
.card { background-color: #EEE }
.card .title {
color: #999;
font-size: 18px;
font-weight: bold;
}
.card .description {
font-size: 14px;
}
JavaScript - CoffeeScript
outer = 1
changeNumbers = ->
inner = -1
outer = 10
inner = changeNumbers()
var changeNumbers, inner, outer;
outer = 1;
changeNumbers = function() {
var inner;
inner = -1;
return outer = 10;
};
inner = changeNumbers();
TASK WATCH
https://github.com/fccoelho7/grunt-boilerplate
Comece hoje mesmo!
Dúvidas?

Mais conteúdo relacionado

Mais procurados

Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseLuiz Duarte
 
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugarUtilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugarmeetupwordpressfln
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaMarianna Cruz Teixeira
 
Autenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandAutenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandDouglas Lira
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosHenrique Gogó
 
Otimizacao Front-End para WordPress - OlhoSEO 2013
Otimizacao Front-End para WordPress - OlhoSEO 2013Otimizacao Front-End para WordPress - OlhoSEO 2013
Otimizacao Front-End para WordPress - OlhoSEO 2013Guga Alves
 

Mais procurados (10)

Hello vue
Hello vueHello vue
Hello vue
 
Tracking.js
Tracking.jsTracking.js
Tracking.js
 
jQuery
jQueryjQuery
jQuery
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugarUtilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
Utilizando cache com WordPress: tenha o seu website decolando sem sair do lugar
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na prática
 
Autenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandAutenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemand
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
 
Otimizacao Front-End para WordPress - OlhoSEO 2013
Otimizacao Front-End para WordPress - OlhoSEO 2013Otimizacao Front-End para WordPress - OlhoSEO 2013
Otimizacao Front-End para WordPress - OlhoSEO 2013
 
Extreme Web Performance
Extreme Web PerformanceExtreme Web Performance
Extreme Web Performance
 

Destaque

Boletín XLII diciembre 2015
Boletín XLII diciembre 2015Boletín XLII diciembre 2015
Boletín XLII diciembre 2015Nueva Canarias-BC
 
คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555
คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555
คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555Kim Chai
 
Boletín XLIII diciembre 2015
Boletín XLIII diciembre 2015Boletín XLIII diciembre 2015
Boletín XLIII diciembre 2015Nueva Canarias-BC
 
Business Intelligence Datasheet
Business Intelligence DatasheetBusiness Intelligence Datasheet
Business Intelligence DatasheetXpand IT
 
Update แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขง
Update แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขงUpdate แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขง
Update แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขงKim Chai
 
Boletín XLIV diciembre 2015
Boletín XLIV diciembre 2015Boletín XLIV diciembre 2015
Boletín XLIV diciembre 2015Nueva Canarias-BC
 
Provjerica mala - Je li ije ili je?
Provjerica mala - Je li ije ili je?Provjerica mala - Je li ije ili je?
Provjerica mala - Je li ije ili je?Šk Ivan Dvoržak
 
Boletín XXXIX noviembre 2015
Boletín XXXIX noviembre 2015Boletín XXXIX noviembre 2015
Boletín XXXIX noviembre 2015Nueva Canarias-BC
 
150514 jts london_calling
150514 jts london_calling150514 jts london_calling
150514 jts london_callingJared Simpson
 
Fakeer of Jungheera Story overveiw
Fakeer of Jungheera Story overveiwFakeer of Jungheera Story overveiw
Fakeer of Jungheera Story overveiwHitesh Galthariya
 
Η Οδύσσεια του Ομήρου στο έπος και την τέχνη
Η Οδύσσεια του Ομήρου στο έπος και την τέχνηΗ Οδύσσεια του Ομήρου στο έπος και την τέχνη
Η Οδύσσεια του Ομήρου στο έπος και την τέχνηMaria Kyriakidou
 
How Crowdsourcing Disrupts the Interior Design
How Crowdsourcing Disrupts the Interior DesignHow Crowdsourcing Disrupts the Interior Design
How Crowdsourcing Disrupts the Interior DesignCrowdsourcing Week
 
สารจากอังคณา
สารจากอังคณาสารจากอังคณา
สารจากอังคณาKim Chai
 
Some tales about TLS
Some tales about TLSSome tales about TLS
Some tales about TLShannob
 
Enmiendas parciales al proyecto de Ley PG de la CAC 2016
Enmiendas parciales al proyecto de Ley PG de la CAC 2016Enmiendas parciales al proyecto de Ley PG de la CAC 2016
Enmiendas parciales al proyecto de Ley PG de la CAC 2016Nueva Canarias-BC
 
Attilio dal Maso - Bici e salute
Attilio dal Maso - Bici e saluteAttilio dal Maso - Bici e salute
Attilio dal Maso - Bici e saluteBeppe Dimunno
 

Destaque (20)

Chessboard Magic
Chessboard Magic   Chessboard Magic
Chessboard Magic
 
Boletín XLII diciembre 2015
Boletín XLII diciembre 2015Boletín XLII diciembre 2015
Boletín XLII diciembre 2015
 
คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555
คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555
คำพิพากษาปกครองคดีเขื่อนไซยะบุรี ดำ ส.493/2555
 
Boletín I enero 2016
Boletín I enero 2016Boletín I enero 2016
Boletín I enero 2016
 
Boletín XLIII diciembre 2015
Boletín XLIII diciembre 2015Boletín XLIII diciembre 2015
Boletín XLIII diciembre 2015
 
Business Intelligence Datasheet
Business Intelligence DatasheetBusiness Intelligence Datasheet
Business Intelligence Datasheet
 
Update แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขง
Update แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขงUpdate แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขง
Update แถลงการณ์ประชาชน ว่าด้วยโครงการเขื่อนในภูมิภาคแม่น้ำโขง
 
Boletín XLIV diciembre 2015
Boletín XLIV diciembre 2015Boletín XLIV diciembre 2015
Boletín XLIV diciembre 2015
 
Provjerica mala - Je li ije ili je?
Provjerica mala - Je li ije ili je?Provjerica mala - Je li ije ili je?
Provjerica mala - Je li ije ili je?
 
Boletín XL diciembre 2015
Boletín XL diciembre 2015Boletín XL diciembre 2015
Boletín XL diciembre 2015
 
Boletín XXXIX noviembre 2015
Boletín XXXIX noviembre 2015Boletín XXXIX noviembre 2015
Boletín XXXIX noviembre 2015
 
150514 jts london_calling
150514 jts london_calling150514 jts london_calling
150514 jts london_calling
 
Boletín VIII febrero 2016
Boletín VIII febrero 2016Boletín VIII febrero 2016
Boletín VIII febrero 2016
 
Fakeer of Jungheera Story overveiw
Fakeer of Jungheera Story overveiwFakeer of Jungheera Story overveiw
Fakeer of Jungheera Story overveiw
 
Η Οδύσσεια του Ομήρου στο έπος και την τέχνη
Η Οδύσσεια του Ομήρου στο έπος και την τέχνηΗ Οδύσσεια του Ομήρου στο έπος και την τέχνη
Η Οδύσσεια του Ομήρου στο έπος και την τέχνη
 
How Crowdsourcing Disrupts the Interior Design
How Crowdsourcing Disrupts the Interior DesignHow Crowdsourcing Disrupts the Interior Design
How Crowdsourcing Disrupts the Interior Design
 
สารจากอังคณา
สารจากอังคณาสารจากอังคณา
สารจากอังคณา
 
Some tales about TLS
Some tales about TLSSome tales about TLS
Some tales about TLS
 
Enmiendas parciales al proyecto de Ley PG de la CAC 2016
Enmiendas parciales al proyecto de Ley PG de la CAC 2016Enmiendas parciales al proyecto de Ley PG de la CAC 2016
Enmiendas parciales al proyecto de Ley PG de la CAC 2016
 
Attilio dal Maso - Bici e salute
Attilio dal Maso - Bici e saluteAttilio dal Maso - Bici e salute
Attilio dal Maso - Bici e salute
 

Semelhante a Ganhando tempo com Task Runners

Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações WebAnderson Aguiar
 
O melhor da monitoração de web performance
O melhor da monitoração de web performanceO melhor da monitoração de web performance
O melhor da monitoração de web performanceDavidson Fellipe
 
The Flash no front-end
The Flash no front-endThe Flash no front-end
The Flash no front-endCezar Luiz
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
isk-daemon: busca visual de imagens para todos
isk-daemon: busca visual de imagens para todosisk-daemon: busca visual de imagens para todos
isk-daemon: busca visual de imagens para todosRicardo Cabral
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontMichel Ribeiro
 
Busca Visual
Busca VisualBusca Visual
Busca Visualgsroma
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.jsGiovanni Bassi
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Performance na web, além do framework
Performance na web, além do frameworkPerformance na web, além do framework
Performance na web, além do frameworkAlexandre Cardoso
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Iniciando com Jquery
Iniciando com JqueryIniciando com Jquery
Iniciando com JqueryDanilo Sousa
 
Performance Front-end
Performance Front-endPerformance Front-end
Performance Front-endDescomplica
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteJohann Vivot
 

Semelhante a Ganhando tempo com Task Runners (20)

Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações Web
 
O melhor da monitoração de web performance
O melhor da monitoração de web performanceO melhor da monitoração de web performance
O melhor da monitoração de web performance
 
The Flash no front-end
The Flash no front-endThe Flash no front-end
The Flash no front-end
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
Google apps script - Parte 2
Google apps script - Parte 2Google apps script - Parte 2
Google apps script - Parte 2
 
isk-daemon: busca visual de imagens para todos
isk-daemon: busca visual de imagens para todosisk-daemon: busca visual de imagens para todos
isk-daemon: busca visual de imagens para todos
 
Esse cara é o grunt
Esse cara é o gruntEsse cara é o grunt
Esse cara é o grunt
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de Front
 
temp EWP
temp EWPtemp EWP
temp EWP
 
Busca Visual
Busca VisualBusca Visual
Busca Visual
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
Web Performance Client Side
Web Performance Client SideWeb Performance Client Side
Web Performance Client Side
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Performance na web, além do framework
Performance na web, além do frameworkPerformance na web, além do framework
Performance na web, além do framework
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Iniciando com Jquery
Iniciando com JqueryIniciando com Jquery
Iniciando com Jquery
 
Performance Front-end
Performance Front-endPerformance Front-end
Performance Front-end
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonte
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 

Ganhando tempo com Task Runners

Notas do Editor

  1. Alguém aqui é front-end? Já ouviram falar de Grunt ou Gulp?
  2. Meu nome é Fabio Carvalho, sou desenvolvedor front-end há 7 anos e atualmente Full Stack Developer na Apiki. Aqui estão algumas redes sociais, para encontrar basta pesquisar por: fccoelho7
  3. Performance hoje em dia é crucial! Pesquisas revelam que sites performáticos são super bem vistos pelo o Google e proporcionam uma expriência melhor para o usuário.
  4. Esse é um grande amigo nosso! Bom, dentre alguns dos requisitos para se atingir níveis elevados no Google PageSpeed podemos citar: minificação de html, css e js; compressão de imagens; concatenação de css e js; entre outros.
  5. E é buscando performance que utilizamos alguns serviços/sites para fazer esse trabalho para nós. Bom, alguns ainda fazem isso.
  6. Putz! Mas em todo projeto vamos precisar utilizar essas ferramentas, site por site, até deixar o nosso projeto performático?
  7. Por quê não utilizar tarefas para automatizar tudo isso?
  8. Aposto que alguns aqui já ouviram falar de Grunt ou Gulp, bom, estas ferramentas se tornam essenciais quando se almeja agilidade no desenvolvimento web. Há uma disputa bem grande no uso dos dois, mas não é minha intenção promover uma disputa e sim, ilustrar o que podemos fazer. Nesta palestra vou exemplificar algumas tasks usando a estrutura padrão do Grunt.
  9. Ambos são executados na plataforma Node.js e escritos em JavaScript, o que torna tudo mais simples e rápido.
  10. t
  11. Noite e mais noites mal dormidas, preocupação, ansiedade até a hora em que seu código está funcionando, hora do deploy!
  12. É, talvez, a rotina mais importante! Ela será responsável por assistir quaisquer alterações em nosso código.
  13. Que tal começar hoje? Preparei uma material de suporte, um boilerplate, e uma documentação sobre como configurar tudo em seu computador. Nele está presente todas as rotinas mencionadas neste talk.