SlideShare a Scribd company logo
1 of 60
Download to read offline
esse cara é o

grunt
@almirfilho
@davidsonfellipe
@davidsonfellipe

@almirfilho
globo
.com
o

rei
do workflow

front-end
automatizador de tarefas
linha de comando
nodejs
o grunt não
é o único
make

shell

ant

java

rake

ruby

cake

coffeescript
downloads 2013
downloads 2013
300k

200k

100k

jan

fev

mar

abr

mai

jun

jul

ago

set

out

nov
por que

automatizamos?
minimizar trabalho

repetitivo
muitos
para

detalhes

lembrar
linting

conversão

compilação

testes

minificação

frameworks
e libs
útil para projetos

complexos
dev

prod

rodar testes
pré-processadores:dev
js/css lint
web server
scaffolding
otimizar imagens
criar sprites
live reloading
minificação e obfuscação
concatenação
pré-processadores:prod
gerar release
deploy
eficiência!
produtividade!
paz de
espírito
iniciando com

grunt
primeiro as coisas primeiras

node.js & npm
instalação global
configuração
instalação local
configuração

grunt-cli
package.json
grunt & tools
Gruntfile.js
instalação global

grunt-cli
$ npm install -g grunt-cli
configuração

package.json
{
"name": "dave-fulero",
"version": "0.1.0",
"devDependencies": {
"grunt": "~0.4.2",
"grunt-contrib-uglify": "~0.2.2"
}
}
instalação local

grunt & tools
$ npm install
--save-dev
$ npm install nome-pacote --save-dev
configuração

Gruntfile.js
module.exports = function(grunt){
grunt.initConfig({
pkg: grunt.file.readJSON(‘package.json’),
uglify: {/* configuração da tarefa */}
});
grunt.loadNpmTasks(‘grunt-contrib-uglify’);
grunt.registerTask(‘default’, [‘uglify’]);
}
grunt.initConfig({
uglify: {
options: {
banner: ‘/* dave fulêro */n’
},
build: {
src: ‘src/<%= pkg.name %>.js’,
dest: ‘build/<%= pkg.name %>.min.js’
}
}
});
quem é

pop
concatenação
de arquivos

a.js
e.js
i.js
o.js
u.js

vogais.js
o cara que concatena seus arquivos

grunt-contrib-concat
$ npm install grunt-contrib-concat --save-dev
concat

no Gruntfile.js
grunt.initConfig({
concat: {
options: {
separator: ';',
},
dist: {
src: ['src/a.js', 'src/e.js'],
dest: 'build/vogais.js',
}
}
});
concatenação

rodando manualmente

$ grunt concat
obfuscação e
minificação
de scripts

all.js

all.min.js
var toSeconds = function(hour) {
return hour * 3600;
};

obfuscação
var toSeconds = function(a) {
return a * 3600;
};

minificação
var toSeconds=function(a){return a*3600;};
o cara que comprime seus arquivos

grunt-contrib-uglify
$ npm install grunt-contrib-uglify --save-dev
uglify

no Gruntfile.js

grunt.initConfig({
uglify: {
build: {
src: 'src/all.js',
dest: 'build/all.min.js'
}
}
});
obfuscação e minificação

rodando manualmente

$ grunt uglify
pré-processadores
de código

widget.scss

widget.css
o cara que compila seu sass

grunt-contrib-compass
$ npm install grunt-contrib-compass --save-dev
compass
no Gruntfile.js

grunt.initConfig({
compass: {
dev: {
options: {
sassDir: 'src/scss',
cssDir: 'build/css',
imagesDir: 'src/img',
generatedImagesDir: 'build/img'
}
},
prod: { /* ... */ }
}});
compass
no Gruntfile.js

grunt.initConfig({
compass: {
dev: { /* ... */ },
prod: {
options: {
sassDir: 'src/scss',
cssDir: 'build/css',
imagesDir: 'src/img',
generatedImagesDir: 'build/img',
outputStyle: 'compressed',
noLineComments: true
}}}});
compilação de sass

rodando manualmente
$ grunt compass:dev

$ grunt compass:prod
pré-processadores
sass

grunt-contrib-sass

less

grunt-contrib-less

stylus

grunt-contrib-stylus

coffeescript

grunt-contrib-coffee
testes
automatizados

sucesso

specs
erro
o cara que testa seu código e te avisa

grunt-contrib-jasmine
$ npm install grunt-contrib-jasmine --save-dev
jasmine
no Gruntfile.js

grunt.initConfig({
jasmine: {
src: 'src/**/*.js',
options: {
specs: 'spec/*Spec.js',
helpers: 'spec/*Helper.js'
}
}
});
testes automatizados

rodando manualmente

$ grunt jasmine
suites de testes
jasmine
qunit
mocha

grunt-contrib-jasmine
grunt-contrib-qunit
grunt-simple-mocha
watch

fique de olho
all.js

all.min.js

save file
widget.css
widget.scss
o cara que vigia tudo para você

grunt-contrib-watch
$ npm install grunt-contrib-watch --save-dev
watch

no Gruntfile.js
grunt.initConfig({
watch: {
build: {
files: ['src/**/*.{scss, js}'],
tasks: [
'compass:dev', 'concat', 'uglify'
]
}
}
});
tarefas comuns para
watch
testes
pré-processadores
js/css lint
criar sprites
live reloading
concatenação
na prática
globo esporte
setup
6 semanas!
faça suas escolhas
sabiamente
globo
.com
/talentos
github.com/globocom/

IWantToWorkAtGloboCom
obrigado!
obrigado!

/almirfilho

/davidsonfellipe

/almirfilho

/davidsonfellipe
obrigado!

More Related Content

What's hot

Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPArthur Fücher
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIRudá Almeida
 
From Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiFrom Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiiMasters
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UICleiton Francisco
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensRodrigo Matheus
 
Desenvolvendo com Angular CLI
Desenvolvendo com Angular CLIDesenvolvendo com Angular CLI
Desenvolvendo com Angular CLIVanessa Me Tonini
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsRafael Soares
 
Diego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLIVanessa Me Tonini
 

What's hot (20)

Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SP
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 
From Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiFrom Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika Heidi
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UI
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
PHP no Windows Azure
PHP no Windows AzurePHP no Windows Azure
PHP no Windows Azure
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagens
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Desenvolvendo com Angular CLI
Desenvolvendo com Angular CLIDesenvolvendo com Angular CLI
Desenvolvendo com Angular CLI
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
Diego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci - React + Angular
Diego Narducci - React + Angular
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
 
[Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js [Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js
 
Debug de cabo a rabo
Debug de cabo a raboDebug de cabo a rabo
Debug de cabo a rabo
 

Viewers also liked

Frontend Engineers: passado, presente e futuro
Frontend Engineers: passado, presente e futuroFrontend Engineers: passado, presente e futuro
Frontend Engineers: passado, presente e futuroDavidson Fellipe
 
Turbinando seu workflow para o desenvolvimento de webapps
Turbinando seu workflow para o desenvolvimento de webappsTurbinando seu workflow para o desenvolvimento de webapps
Turbinando seu workflow para o desenvolvimento de webappsDavidson Fellipe
 
RioJS - Apresentação sobre o grupo
RioJS - Apresentação sobre o grupoRioJS - Apresentação sobre o grupo
RioJS - Apresentação sobre o grupoDavidson Fellipe
 
performance em jQuery apps
performance em jQuery appsperformance em jQuery apps
performance em jQuery appsDavidson Fellipe
 
Guia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devsGuia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devsDavidson Fellipe
 
frontend {retirante: nordestino;}
frontend {retirante: nordestino;}frontend {retirante: nordestino;}
frontend {retirante: nordestino;}Davidson Fellipe
 
Practical guide for front-end development for django devs
Practical guide for front-end development for django devsPractical guide for front-end development for django devs
Practical guide for front-end development for django devsDavidson Fellipe
 
Como é trabalhar na globocom?
Como é trabalhar na globocom?Como é trabalhar na globocom?
Como é trabalhar na globocom?Davidson Fellipe
 
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
 
CANVAS vs SVG @ FrontInRio 2011
CANVAS vs SVG @ FrontInRio 2011CANVAS vs SVG @ FrontInRio 2011
CANVAS vs SVG @ FrontInRio 2011Davidson Fellipe
 
Os segredos dos front end engineers
Os segredos dos front end engineersOs segredos dos front end engineers
Os segredos dos front end engineersDavidson Fellipe
 
Workflow Open Source para Frontend Developers
Workflow Open Source para Frontend DevelopersWorkflow Open Source para Frontend Developers
Workflow Open Source para Frontend DevelopersDavidson Fellipe
 
Guia do Front-end das Galáxias
Guia do Front-end das GaláxiasGuia do Front-end das Galáxias
Guia do Front-end das GaláxiasDavidson Fellipe
 

Viewers also liked (15)

Frontend Engineers: passado, presente e futuro
Frontend Engineers: passado, presente e futuroFrontend Engineers: passado, presente e futuro
Frontend Engineers: passado, presente e futuro
 
Turbinando seu workflow para o desenvolvimento de webapps
Turbinando seu workflow para o desenvolvimento de webappsTurbinando seu workflow para o desenvolvimento de webapps
Turbinando seu workflow para o desenvolvimento de webapps
 
Javascript Cross-browser
Javascript Cross-browserJavascript Cross-browser
Javascript Cross-browser
 
RioJS - Apresentação sobre o grupo
RioJS - Apresentação sobre o grupoRioJS - Apresentação sobre o grupo
RioJS - Apresentação sobre o grupo
 
performance em jQuery apps
performance em jQuery appsperformance em jQuery apps
performance em jQuery apps
 
Guia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devsGuia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devs
 
frontend {retirante: nordestino;}
frontend {retirante: nordestino;}frontend {retirante: nordestino;}
frontend {retirante: nordestino;}
 
It's Javascript Time
It's Javascript TimeIt's Javascript Time
It's Javascript Time
 
Practical guide for front-end development for django devs
Practical guide for front-end development for django devsPractical guide for front-end development for django devs
Practical guide for front-end development for django devs
 
Como é trabalhar na globocom?
Como é trabalhar na globocom?Como é trabalhar na globocom?
Como é trabalhar na globocom?
 
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
 
CANVAS vs SVG @ FrontInRio 2011
CANVAS vs SVG @ FrontInRio 2011CANVAS vs SVG @ FrontInRio 2011
CANVAS vs SVG @ FrontInRio 2011
 
Os segredos dos front end engineers
Os segredos dos front end engineersOs segredos dos front end engineers
Os segredos dos front end engineers
 
Workflow Open Source para Frontend Developers
Workflow Open Source para Frontend DevelopersWorkflow Open Source para Frontend Developers
Workflow Open Source para Frontend Developers
 
Guia do Front-end das Galáxias
Guia do Front-end das GaláxiasGuia do Front-end das Galáxias
Guia do Front-end das Galáxias
 

Similar to Esse cara é o grunt

Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechRafael Gomes
 
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
 
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
 
The Flash no front-end
The Flash no front-endThe Flash no front-end
The Flash no front-endCezar Luiz
 
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPRTecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPRAlessandro Dias
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTIAndré Paulovich
 
Automação de build para frontend
Automação de build para frontendAutomação de build para frontend
Automação de build para frontendVanessa Me Tonini
 
Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Fernanda Bernardo
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeAndré Paulovich
 
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)Marcio Sfalsin
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsLeonardo Comelli
 
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
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 

Similar to Esse cara é o grunt (20)

Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma Fintech
 
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
 
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
 
The Flash no front-end
The Flash no front-endThe Flash no front-end
The Flash no front-end
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPRTecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 
Docker compose
Docker composeDocker compose
Docker compose
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
 
Automação de build para frontend
Automação de build para frontendAutomação de build para frontend
Automação de build para frontend
 
Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud Native
 
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)
Jruby, o melhor de 2 mundos (MacGyver + ChuckNorris)
 
Precisamos falar sobre Gradle
Precisamos falar sobre GradlePrecisamos falar sobre Gradle
Precisamos falar sobre Gradle
 
Zabbix
ZabbixZabbix
Zabbix
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
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
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Aula Ruby
Aula RubyAula Ruby
Aula Ruby
 

Recently uploaded

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Recently uploaded (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Esse cara é o grunt