SlideShare a Scribd company logo

Automação de tarefas com grunt

O documento discute porque programadores preguiçosos e criativos são melhores, explicando que eles criam ferramentas que automatizam tarefas manuais e evitam código repetitivo. Também apresenta o GruntJS, um gerenciador de tarefas front-end em JavaScript, e explica como instalá-lo e configurá-lo em um projeto.

1 of 26
Download to read offline
WHY GOOD
PROGRAMMERS ARE LAZY
AND DUMB?
Philipp Lenssen
PORQUE PREGUIÇOSO?
Preguiçosos, porque apenas programadores preguiçosos irão
querer escrever o tipo de ferramentas que podem substituí-
los no final. Preguiçosos, porque somente um programador
preguiçoso vai evitar escrever código monótono e repetitivo –
assim evitando redundância, o inimigo da mantenabilidade e
flexibilidade de software. No mais, as ferramentas e processos
que vêm disso, disparados pela preguiça, irão aumentar a
produção.
E PORQUE IDIOTA?
Isso porque para ele encontrar as melhores soluções a um
problema, precisa manter uma mente aberta e pensar fora da
caixa. De certa forma, isso leva à mentalidade de uma criança,
incrivelmente criativa porque ele nunca ouviu “não” como
resposta.
E ISSO ME LEMBRA...
RUBBER DUCK DEBUGGING
THE PRAGMATIC PROGRAMMER BY ANDREW
HUNT AND DAVID THOMAS
Andrew Hunt é um dos 17 autores do manifesto ágil.
David Thomas é o autor da famosa frase "DRY" | Don't Repeat
Yourself.
GRUNTJS
O GRUNT É UM GERENCIADOR DE TAREFAS FRONT-END FEITO
EM JAVASCRIPT.

Recommended

Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Michael Douglas
 
PHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerPHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerLeonardo Tumadjian
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvPedro Fernandes Vieira
 
WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker Pedro Cavalheiro
 
NuGet - Gerenciando dependências em .NET
NuGet - Gerenciando dependências em .NETNuGet - Gerenciando dependências em .NET
NuGet - Gerenciando dependências em .NETVinicius Quaiato
 
Cya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsCya grunt.js, hello gulp.js
Cya grunt.js, hello gulp.jsMichael Douglas
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silexMichael Douglas
 

More Related Content

What's hot

Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguicaCristiano Cunha
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
Vagrant você deveria está usando
Vagrant   você deveria está usandoVagrant   você deveria está usando
Vagrant você deveria está usandoHudson Brendon
 
TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7tdc-globalcode
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NETTDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NETtdc-globalcode
 
A mágica por trás dos aplicativos ( Api com o Laravel )
A mágica por trás dos aplicativos ( Api com o Laravel )A mágica por trás dos aplicativos ( Api com o Laravel )
A mágica por trás dos aplicativos ( Api com o Laravel )Michael Douglas
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#Leandro Silva
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2William Felipe
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoMauricio Magnani Jr
 
Contribuindo e criando software livre
Contribuindo e criando software livreContribuindo e criando software livre
Contribuindo e criando software livreVitor Mattos
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017Vitor Mattos
 

What's hot (20)

Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguica
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Vagrant você deveria está usando
Vagrant   você deveria está usandoVagrant   você deveria está usando
Vagrant você deveria está usando
 
TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NETTDC2016POA | Trilha .NET -  Trazendo o poder dos containers ao mundo .NET
TDC2016POA | Trilha .NET - Trazendo o poder dos containers ao mundo .NET
 
A mágica por trás dos aplicativos ( Api com o Laravel )
A mágica por trás dos aplicativos ( Api com o Laravel )A mágica por trás dos aplicativos ( Api com o Laravel )
A mágica por trás dos aplicativos ( Api com o Laravel )
 
Vagrant sti
Vagrant stiVagrant sti
Vagrant sti
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo Moderno
 
Git & Delphi
Git & DelphiGit & Delphi
Git & Delphi
 
Contribuindo e criando software livre
Contribuindo e criando software livreContribuindo e criando software livre
Contribuindo e criando software livre
 
Python e Golang - Parte 1
Python e Golang - Parte 1Python e Golang - Parte 1
Python e Golang - Parte 1
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
My first app django
My first app djangoMy first app django
My first app django
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 

Similar to Automação de tarefas com grunt

Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014Flávio Moringa
 
Preparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularPreparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularNize Costa
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressTiago Hillebrandt
 
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...tdc-globalcode
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizadosThiago Rodrigues
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Instalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no DebianInstalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no DebianVinícius Hax
 
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves HaxInstalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves HaxTchelinux
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao DockerRafael Dutra
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: IntroduçãoJugVale
 
Automatize suas tarefas: conheça o GulpJS.
Automatize suas tarefas: conheça o GulpJS.Automatize suas tarefas: conheça o GulpJS.
Automatize suas tarefas: conheça o GulpJS.Yan Magalhães
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdfGustavomacieldesouza2
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 

Similar to Automação de tarefas com grunt (20)

Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Preparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularPreparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angular
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Instalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no DebianInstalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no Debian
 
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves HaxInstalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
Automatize suas tarefas: conheça o GulpJS.
Automatize suas tarefas: conheça o GulpJS.Automatize suas tarefas: conheça o GulpJS.
Automatize suas tarefas: conheça o GulpJS.
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 

Recently uploaded

ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docxATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx2m Assessoria
 
Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024
Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024
Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024Ismael Ash
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx2m Assessoria
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx2m Assessoria
 
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docxATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx2m Assessoria
 
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxjosecarlos413721
 
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx2m Assessoria
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx2m Assessoria
 
Apresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareApresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareAleatório .
 
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxMAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx2m Assessoria
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxjosecarlos413721
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx2m Assessoria
 
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docxATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx2m Assessoria
 
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docxMAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docxjosecarlos413721
 
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docxATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docxjosecarlos413721
 
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docxATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx2m Assessoria
 

Recently uploaded (16)

ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docxATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
ATIVIDADE 1 - PESQUISA OPERACIONAL - 512024.docx
 
Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024
Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024
Serviços para fazer deploy do seu Frontend - react ceara 8 meetup 2024
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
 
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docxATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
ATIVIDADE 1 - TEORIA DAS ESTRUTURAS I - 512024.docx
 
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docxATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
ATIVIDADE 1 - TI - BOAS PRÁTICAS DE GOVERNANÇA EM TI - 512024.docx
 
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
ATIVIDADE 1 - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
 
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docxMAPA -INTRODUÇÃO À ENGENHARIA  - 512024.docx
MAPA -INTRODUÇÃO À ENGENHARIA - 512024.docx
 
Apresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareApresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de software
 
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docxMAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES  - 512024.docx
MAPA - ADSIS - FUNDAMENTOS E ARQUITETURA DE COMPUTADORES - 512024.docx
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
 
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docxATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
ATIVIDADE 1 - ESTATÍSTICA E PROBABILIDADE - 512024.docx
 
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docxATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
ATIVIDADE 1- LÓGICA PARA COMPUTAÇÃO - 512024.docx
 
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docxMAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
MAPA - INTRODUÇÃO À ENGENHARIA - 51-2024.docx
 
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docxATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
ATIVIDADE 1 - MODELAGEM DE SOFTWARE – 512024.docx
 
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docxATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
ATIVIDADE 1 - CONTABILIDADE EMPRESARIAL - 512024.docx
 

Automação de tarefas com grunt

  • 1. WHY GOOD PROGRAMMERS ARE LAZY AND DUMB? Philipp Lenssen
  • 2. PORQUE PREGUIÇOSO? Preguiçosos, porque apenas programadores preguiçosos irão querer escrever o tipo de ferramentas que podem substituí- los no final. Preguiçosos, porque somente um programador preguiçoso vai evitar escrever código monótono e repetitivo – assim evitando redundância, o inimigo da mantenabilidade e flexibilidade de software. No mais, as ferramentas e processos que vêm disso, disparados pela preguiça, irão aumentar a produção.
  • 3. E PORQUE IDIOTA? Isso porque para ele encontrar as melhores soluções a um problema, precisa manter uma mente aberta e pensar fora da caixa. De certa forma, isso leva à mentalidade de uma criança, incrivelmente criativa porque ele nunca ouviu “não” como resposta.
  • 4. E ISSO ME LEMBRA... RUBBER DUCK DEBUGGING
  • 5. THE PRAGMATIC PROGRAMMER BY ANDREW HUNT AND DAVID THOMAS Andrew Hunt é um dos 17 autores do manifesto ágil. David Thomas é o autor da famosa frase "DRY" | Don't Repeat Yourself.
  • 6. GRUNTJS O GRUNT É UM GERENCIADOR DE TAREFAS FRONT-END FEITO EM JAVASCRIPT.
  • 7. MAS QUE TIPO DE TAREFAS O GRUNT VAI GERENCIAR PRA MIM? Testar Minificar Concatenar Compilar
  • 8. E PORQUE USAR O GRUNT? A comunidade do grunt é enorme e cresce a cada dia, já são centenas de plugins do grunt que fazem praticamente tudo que você precisa.
  • 9. E QUEM USA O GRUNT? A Adobe usa o grunt no brackets. O jQuery usa o grunt no jQuery no jQuery UI e no QUnit O twitter usa o Grunt no TweetDeck e no Typeahead O Apontador.com usa o grunt nos seus projetos. ... E BUSCANDO O TERMO GRUNTJS NO GITHUB EU ENCONTREI: 476 repositorios públicos 898 issues (a maioria pedindo para instalar o gruntjs nos projetos)
  • 10. E POR ONDE COMEÇAR?
  • 11. O grunt e os plugins do grunt são instalados e controlados pelo NPM, o gerenciador de pacotes do Node.js Para começar você tem que ter o node e o npm instalados na sua máquina.
  • 12. MAS AFINAL, O QUE É NODEJS? O NodeJS é uma plataforma que foi desenvolvida em cima do V8 que é o motor de javascript do Chrome, aonde você pode escrever aplicações escaláveis em javascript.
  • 13. E COMO EU INSTALO O NODEJS? Instalar o NodeJS é muito fácil: http://nodejs.org/ (Current Version: v0.10.18)
  • 14. O NPM é o gerenciador de pacotes do Node.js, é por ele que você pode facilmente instalar programas em nodejs na sua máquina. https://npmjs.org/ O NPM não precisa ser instalado, ele vem com o nodejs.
  • 15. npm install -g grunt-cli sudo npm install -g grunt-cli VAMOS AO GRUNT: Para começar a usar o grunt, você tem que instalar o grunt-cli que é a interface de linha de comando do grunt: OU
  • 16. Ele vai adicionar o comando grunt no ao seu terminal e permitir que você use esse comando em qualquer lugar. Porém o grunt-cli não instala o grunt em sí, o que o grunt-cli faz é rodar a versão do grunt que está instalada no seu projeto, o que permite que você tenha varias versões do grunt instaladas na mesma maquina simultaneamente.
  • 17. COMO ELE FUNCIONA? Cada vez que você executa o grunt-cli ele usa o sistema de require do node pra encontrar um grunt instalado, o que permite que você tenha o grunt instalado nas pastas do seu projeto. Se ele encontrar um grunt instalado na pasta que você rodou o comando, ele carrega as bibliotecas do seu grunt aplicas as configurações dele e roda as tarefas que você pediu para ele rodar.
  • 18. npm init Para usar o grunt nós precisamos de 2 arquivos básicos: O package.json e o Gruntfile.js (ou .coffee) e ambos devem ficar na pasta raiz do projeto.
  • 19. npm install grunt --save-dev. AGORA SÓ PRECISAMOS INSTALAR O GRUNT NO NOSSO PROJETO:
  • 20. Temos então a ultima versão do grunt instalado, só precisamos criar o nosso Gruntfile.js. O Gruntfile.js é composto pelas seguintes partes: A função "wrapper". As configurações do projeto e das tarefas. O carregamento dos plugins e das tarefas. As suas tarefas customizadas.
  • 21. module.exports = function(grunt) { 'use strict'; }; A FUNÇÃO WRAPPER USA O OBJETO MODULE.EXPORTS DO NODEJS.
  • 22. module.exports = function(grunt) { 'use strict'; grunt.initConfig({ pkg: grunt.file.readJSON('package.json') }); }; Ela vai receber um objeto grunt com um metodo initConfig onde você vai colocar as configurações do seu projeto e das tasks. As configurações do nosso projeto podemos passar para o grunt pelo arquivo package.json:
  • 23. npm install grunt-contrib-connect --save-dev. VAMOS ENTÃO INSTALAR UM PLUGIN DO GRUNT VIA NPM
  • 24. module.exports = function(grunt) { 'use strict'; grunt.initConfig({ pkg: grunt.file.readJSON('package.json') }); //carregando plugins grunt.loadNpmTasks('grunt-contrib-connect'); }; Agora vamos carregar o plugin:
  • 25. module.exports = function(grunt) { 'use strict'; grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), connect: { server: { options: { port: 9001 } } } }); //carregando plugins grunt.loadNpmTasks('grunt-contrib-connect'); //registrando tarefas grunt.registerTask('createserver', ['connect:server']); }; E finalmente vamos registrar uma tarefa para o nosso plugin:
  • 26. RAFAEL LYRA front end developer at apontador.com github: twitter: linkedin: rafaellyra @rafaellyra br.linkedin.com/in/rafaellyra/