Vamos Automatizar!
Conheça o Gulp JS.
● Yan Magalhães Leite.
● 21 anos,
● Desenvolvedor Web na Construsite Brasil.
● Cursando Ciências da Computação.
● Participante de fóruns,grupos e eventos
promovidos pela comunidade.
Quem Sou Eu?
● Conceitos e primórdios da automatização.
● Por quê precisamos automatizar?
● Introdução ao Gulp.
● Principais vantagens.
● Exemplos e utilização.
Agenda:
“Não é o mais forte que sobrevive, nem o mais
inteligente, mas o que melhor se adapta às
mudanças.” (Charles Darwin)
A evolução é um processo natural.
A automatização é um dos resultados da
evolução.
AUTOMATIZAR???
Automação (do latim Automatus, que significa mover-se por si) é
um sistema automático de controle pelo qual os mecanismos
verificam seu próprio funcionamento, efetuando medições e
introduzindo correções, sem a necessidade da interferência do
homem. Ela diminui os custos e aumenta a velocidade da
produção. (2004 - Lacombe)
Conceito:
Pode ser definida como um conjunto de técnicas que podem ser
aplicadas sobre um processo, com o objetivo de torná-lo mais
eficiente, maximizando a produção e com menor consumo de
energia ou recursos.
https://prezi.com/monbpk60_bx0/automacao-da-producao/
Conceito:
As linguagens e ferramentas que utilizamos no
dia-a-dia, também evoluem.
● A medida em que as linguagens e ferramentas evoluem,
maiores são as possibilidades e opções.
● Quanto mais opções, maiores são as formas para se resolver
um problema.
● Nosso tempo é curto.
● Temos várias tarefas para nos preocupar.
● Não iremos lembrar de tudo.
● Evitar realizar tarefas repetidamente.
Por quê precisamos automatizar?
● Possibilidade de utilizar diversas ferramentas, simultaneamente.
● Economia de Tempo
● Manter o foco no que realmente importa: o projeto e o seu
resultado final.
Por quê precisamos automatizar?
● Ant(Java)
● Rake(Ruby)
● Grunt, Gulp e Broccoli(Javascript)
https://gist.github.com/callumacrae/9231589
Alguns automatizadores no mercado:
http://gulpjs.com/
● Ferramenta para a automatização de tarefas e aumentar o seu
fluxo de trabalho.
● Feito em Javascript.
● Para o seu uso é necessário a instalação do Node JS.
Gulp JS:
● Minificação de arquivos.
● Concatenação de arquivos.
● Pré-processar arquivos CSS.
● Criar sprites automaticamente.
O que podemos utilizar?
● Otimizar imagens.
● Checar a qualidade do nosso código.
● Live Reload.
● Executar testes de performance/unitários.
● Deploy.
O que podemos utilizar?
http://csslint.net/
http://lisperator.net/uglifyjs/
http://jshint.com/
http://lesscss.org/
http://sass-lang.com/
https://learnboost.github.io/stylus/
https://compressor.io/
https://developers.google.com/speed/pagespeed/
**Dados retirados em 12/05/2015
Gulp JS Grunt JS Broccoli JS
Criado em: 2014 Criado em: 2013 Criado em: 2014
Stars no Github: ~13.600 Stars no Github: ~9.475 Stars no Github: ~2.169
Quant. Plugins: ~1.577 Quant. Plugins: ~4.672 Quant. Plugins: ~221
Menos plugins Muitos plugins Mais instável
Mais rápido; Fácil de
utilizar.
Mais lento; Curva de
aprendizagem mais
acentuada.
Mais rápido;
Possibilidade de
acompanhar a evolução
do projeto.
● Instalação do Node JS.
● Instalação do Gulp JS.
● Criação do arquivo package.json.
● Instalar os módulos necessários.
● Criação do arquivo gulpfile.js.
Primeiros passos com o Gulp JS:
VAMOS PRATICAR.
● gulp.src
Indicamos em qual diretório e em quais arquivos queremos realizar
alguma tarefa.
● gulp.dest
Indicamos para qual diretório queremos enviar os arquivos que
foram modificados por alguma tarefa.
Comandos básicos:
● gulp.task
Realizamos a criação das tarefas.
● pipe()
Responsável por indicar qual o módulo deverá ser executado, para
a realização de uma determinada tarefa.
Comandos básicos:
Alguns módulos que podemos utilizar:
Minificar arquivos .JS utilizando o UglifyJS.
npm install --save-dev gulp-uglify
https://www.npmjs.com/package/gulp-uglify/
Gulp-Uglify
Concatenar arquivos.
npm install --save-dev gulp-concat
https://www.npmjs.com/package/gulp-concat/
Gulp-Concat
Plugin para a utlização do JS Hint.
npm install --save-dev gulp-jshint
https://www.npmjs.com/package/gulp-jshint/
Gulp-Jshint
Reduzir o tamanho das imagens PNG,JPG, GIF e SVG.
npm install --save-dev gulp-imagemin
https://www.npmjs.com/package/gulp-imagemin/
Gulp-Imagemin
Minificar arquivos .CSS.
npm install --save-dev gulp-cssmin
https://www.npmjs.com/package/gulp-cssmin
Gulp-Cssmin
Minificar arquivos .HTML.
npm install --save-dev gulp-htmlmin
https://www.npmjs.com/package/gulp-htmlmin/
Gulp-Htmlmin
Mais métodos:
Compilar arquivos .LESS.
npm install --save-dev gulp-less
https://www.npmjs.com/package/gulp-less/
Gulp-Less
Compilar arquivos .SASS.
npm install --save-dev gulp-sass
https://www.npmjs.com/package/gulp-sass/
Gulp-Sass
Compilar arquivos .STYL.
npm install --save-dev gulp-stylus
https://www.npmjs.com/package/gulp-stylus/
Gulp-Stylus
Visualizar as modificações rapidamente no browser.
**Necessita da extensão do livereload.
npm install --save-dev gulp-livereload
https://www.npmjs.com/package/gulp-livereload/
Gulp-Livereload
Realizar o deploy para o seu servidor.
**Necessita que o rsync esteja instalado em seu computador.
***Para Windows - https://www.cygwin.com/
npm install --save-dev gulp-rsync
https://www.npmjs.com/package/gulp-rsync/
Gulp-Rsync
Obter um report da nossa página segundo as métricas do
PageSpeed Insights.
npm install --save-dev psi
https://www.npmjs.com/package/psi
Psi
Obter um report da nossa página quanto ao nível de acessibilidade
que ela possui, através das recomendações do WCAG(Web
Content Accessibility Guidelines).
npm install --save-dev gulp-accessibility
https://www.npmjs.com/package/gulp-accessibility/
Gulp-Accessibility
Acompanhar as alterações realizadas em seus arquivos.
npm install --save-dev gulp-watch
https://www.npmjs.com/package/gulp-watch/
Gulp-Watch
● Qualidade.
● Organização.
● Performance(Diminuímos a quantidade dos arquivos a serem
baixados pelo browser).
● Tempo.
Os benefícios:
● http://gulpjs.com/
● http://gulpjs.com/plugins/
● https://www.npmjs.com/
● http://perf-tooling.today/
Links úteis:
● https://gist.github.com/YanMagale/f897e1101a1fc60743db
● https://github.com/YanMagale/gulp_stardart
Links úteis:
OBRIGADO!
Github:https://github.com/yanmagale
Twitter:https://twitter.com/yaanmagale

Vamos automatizar! Conheça o Gulp Js

  • 1.
  • 2.
    ● Yan MagalhãesLeite. ● 21 anos, ● Desenvolvedor Web na Construsite Brasil. ● Cursando Ciências da Computação. ● Participante de fóruns,grupos e eventos promovidos pela comunidade. Quem Sou Eu?
  • 3.
    ● Conceitos eprimórdios da automatização. ● Por quê precisamos automatizar? ● Introdução ao Gulp. ● Principais vantagens. ● Exemplos e utilização. Agenda:
  • 4.
    “Não é omais forte que sobrevive, nem o mais inteligente, mas o que melhor se adapta às mudanças.” (Charles Darwin)
  • 6.
    A evolução éum processo natural.
  • 7.
    A automatização éum dos resultados da evolução.
  • 8.
  • 9.
    Automação (do latimAutomatus, que significa mover-se por si) é um sistema automático de controle pelo qual os mecanismos verificam seu próprio funcionamento, efetuando medições e introduzindo correções, sem a necessidade da interferência do homem. Ela diminui os custos e aumenta a velocidade da produção. (2004 - Lacombe) Conceito:
  • 10.
    Pode ser definidacomo um conjunto de técnicas que podem ser aplicadas sobre um processo, com o objetivo de torná-lo mais eficiente, maximizando a produção e com menor consumo de energia ou recursos. https://prezi.com/monbpk60_bx0/automacao-da-producao/ Conceito:
  • 12.
    As linguagens eferramentas que utilizamos no dia-a-dia, também evoluem.
  • 13.
    ● A medidaem que as linguagens e ferramentas evoluem, maiores são as possibilidades e opções. ● Quanto mais opções, maiores são as formas para se resolver um problema.
  • 14.
    ● Nosso tempoé curto. ● Temos várias tarefas para nos preocupar. ● Não iremos lembrar de tudo. ● Evitar realizar tarefas repetidamente. Por quê precisamos automatizar?
  • 15.
    ● Possibilidade deutilizar diversas ferramentas, simultaneamente. ● Economia de Tempo ● Manter o foco no que realmente importa: o projeto e o seu resultado final. Por quê precisamos automatizar?
  • 16.
    ● Ant(Java) ● Rake(Ruby) ●Grunt, Gulp e Broccoli(Javascript) https://gist.github.com/callumacrae/9231589 Alguns automatizadores no mercado:
  • 17.
  • 18.
    ● Ferramenta paraa automatização de tarefas e aumentar o seu fluxo de trabalho. ● Feito em Javascript. ● Para o seu uso é necessário a instalação do Node JS. Gulp JS:
  • 19.
    ● Minificação dearquivos. ● Concatenação de arquivos. ● Pré-processar arquivos CSS. ● Criar sprites automaticamente. O que podemos utilizar?
  • 20.
    ● Otimizar imagens. ●Checar a qualidade do nosso código. ● Live Reload. ● Executar testes de performance/unitários. ● Deploy. O que podemos utilizar?
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 30.
    **Dados retirados em12/05/2015 Gulp JS Grunt JS Broccoli JS Criado em: 2014 Criado em: 2013 Criado em: 2014 Stars no Github: ~13.600 Stars no Github: ~9.475 Stars no Github: ~2.169 Quant. Plugins: ~1.577 Quant. Plugins: ~4.672 Quant. Plugins: ~221 Menos plugins Muitos plugins Mais instável Mais rápido; Fácil de utilizar. Mais lento; Curva de aprendizagem mais acentuada. Mais rápido; Possibilidade de acompanhar a evolução do projeto.
  • 31.
    ● Instalação doNode JS. ● Instalação do Gulp JS. ● Criação do arquivo package.json. ● Instalar os módulos necessários. ● Criação do arquivo gulpfile.js. Primeiros passos com o Gulp JS:
  • 32.
  • 33.
    ● gulp.src Indicamos emqual diretório e em quais arquivos queremos realizar alguma tarefa. ● gulp.dest Indicamos para qual diretório queremos enviar os arquivos que foram modificados por alguma tarefa. Comandos básicos:
  • 34.
    ● gulp.task Realizamos acriação das tarefas. ● pipe() Responsável por indicar qual o módulo deverá ser executado, para a realização de uma determinada tarefa. Comandos básicos:
  • 35.
    Alguns módulos quepodemos utilizar:
  • 36.
    Minificar arquivos .JSutilizando o UglifyJS. npm install --save-dev gulp-uglify https://www.npmjs.com/package/gulp-uglify/ Gulp-Uglify
  • 37.
    Concatenar arquivos. npm install--save-dev gulp-concat https://www.npmjs.com/package/gulp-concat/ Gulp-Concat
  • 38.
    Plugin para autlização do JS Hint. npm install --save-dev gulp-jshint https://www.npmjs.com/package/gulp-jshint/ Gulp-Jshint
  • 39.
    Reduzir o tamanhodas imagens PNG,JPG, GIF e SVG. npm install --save-dev gulp-imagemin https://www.npmjs.com/package/gulp-imagemin/ Gulp-Imagemin
  • 40.
    Minificar arquivos .CSS. npminstall --save-dev gulp-cssmin https://www.npmjs.com/package/gulp-cssmin Gulp-Cssmin
  • 41.
    Minificar arquivos .HTML. npminstall --save-dev gulp-htmlmin https://www.npmjs.com/package/gulp-htmlmin/ Gulp-Htmlmin
  • 42.
  • 43.
    Compilar arquivos .LESS. npminstall --save-dev gulp-less https://www.npmjs.com/package/gulp-less/ Gulp-Less
  • 44.
    Compilar arquivos .SASS. npminstall --save-dev gulp-sass https://www.npmjs.com/package/gulp-sass/ Gulp-Sass
  • 45.
    Compilar arquivos .STYL. npminstall --save-dev gulp-stylus https://www.npmjs.com/package/gulp-stylus/ Gulp-Stylus
  • 46.
    Visualizar as modificaçõesrapidamente no browser. **Necessita da extensão do livereload. npm install --save-dev gulp-livereload https://www.npmjs.com/package/gulp-livereload/ Gulp-Livereload
  • 47.
    Realizar o deploypara o seu servidor. **Necessita que o rsync esteja instalado em seu computador. ***Para Windows - https://www.cygwin.com/ npm install --save-dev gulp-rsync https://www.npmjs.com/package/gulp-rsync/ Gulp-Rsync
  • 48.
    Obter um reportda nossa página segundo as métricas do PageSpeed Insights. npm install --save-dev psi https://www.npmjs.com/package/psi Psi
  • 49.
    Obter um reportda nossa página quanto ao nível de acessibilidade que ela possui, através das recomendações do WCAG(Web Content Accessibility Guidelines). npm install --save-dev gulp-accessibility https://www.npmjs.com/package/gulp-accessibility/ Gulp-Accessibility
  • 50.
    Acompanhar as alteraçõesrealizadas em seus arquivos. npm install --save-dev gulp-watch https://www.npmjs.com/package/gulp-watch/ Gulp-Watch
  • 51.
    ● Qualidade. ● Organização. ●Performance(Diminuímos a quantidade dos arquivos a serem baixados pelo browser). ● Tempo. Os benefícios:
  • 53.
    ● http://gulpjs.com/ ● http://gulpjs.com/plugins/ ●https://www.npmjs.com/ ● http://perf-tooling.today/ Links úteis:
  • 54.
  • 55.

Notas do Editor

  • #2 Agradecimento a Una pelo convite e ao GDG Tempo de palestra: 40 minutos
  • #3 Rápida apresentação.
  • #5 Premissa que todas as coisas evoluem. As coisas ao nosso redor evoluem. Os seres humanos evoluem.O nosso mundo evolui.
  • #6 A evolução é um processo natural do ser humano; E ela pode acontecer por vários motivos
  • #8 A automatização é um dos resultados e exemplos da evolução do homem.
  • #9 Mas o que é exatamente automatizar ??? Por que o homem descobriu a necessidade de automatizar as suas coisas ??
  • #10 Conceito da automatização
  • #11 Conceito da automatização
  • #12 O ser humano esta sempre procurando formas de automatizar as coisas em sua volta Encontrar uma forma mais rápida para realizar tarefas repetitivas
  • #13 Assim como o ser humano evolui, as linguagens de programação e ferramentas que utilizamos, também evoluem.
  • #15 Motivos em geral que nos levam a automatizar
  • #16 Motivos em geral que nos levam a automatizar
  • #17 A necessidade de automatização já foi percebida por nós, desenvolvedores Exemplos de outros automatizadores, mais conhecidos, em outras linguagens
  • #18 Começando a falar do Gulp em Si Tempo estimado ate aqui: 7 minutos
  • #19 Definindo o gulp Dar uma rápida passada no conceito do Node e realçar a sua importância.
  • #20 O que podemos utilizar:
  • #21 O que podemos utilizar:
  • #30 Ou seja, a partir de agora, ao invés de utilizar todos estes serviços, de forma separada em cada um destes sites Passamos a utilizar todos eles em juntos, em uma única ferramenta.
  • #31 Comparativo entre Gulp, Grunt e Broccoli
  • #32 Primeiros passos Tempo estimado até aqui: 15 minutos
  • #34 Comandos básicos:
  • #43 Tempo estimado: 30 minutos
  • #49 Podemos utilizar ainda outros modulos do npm, que nao sejam puglins do gulp
  • #52 Focar bastante nesta parte. Todos estes benefícios, com apenas 1 ferramenta Chegar aqui em: 36 minutos
  • #54 Breve citação das referencias
  • #55 Breve citação das referencias
  • #56 Agradecimento e Espaço para perguntas.