SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Yo! Geradores
modernos com
Yeoman
● Arq. Sistemas na CI&T ~8 anos
● JAVA, C#, JS, PHP, Perl, Python (...)
● Músico, Yogui e Geek
github: sidharta
instagram: sidharta
linkedin: sidhartanoleto
fb: sidhartanoleto
twitter: @sidhartanoleto
@bio
Sidharta Noleto
#dicaDoSid
fique atento às #dicasDoSid!
Como ser
produtivo?
vs
Hulk:
● Força bruta!
● Mais código
● Muito rápido
● Difícil de achar
● ou se tornar
○ (ninguém quer ser verde)
Iron Man:
● Ferramentas!
● Menos código
● Atalhos, IDEs
● Fácil de disseminar
○ (todo mundo quer ser milionário)
Qual é melhor?
Esse é o GP!
Esse é o Sid!
57
armaduras diferentes do Iron Man
https://en.wikipedia.org/wiki/Iron_Man%27s_armor
Hulkbuster
Armor
As its name suggests, it was
specifically designed for hand-to-
hand combat with the rampaging
Hulk. [...] During its maiden run, the
armor enabled Stark to hold his own
in sustained physical combat with
the Hulk.
#dicaDoSid
utilize ferramentas para
transformar sua produtividade!
Ferramentas de Produtividade
● Frameworks, Bibliotecas …
● Snippets, shortcuts, scripts …
● IDEs, live reload, hot deploy …
● Geradores de Código
investimento
Scaffolding
é um termo [...] de engenharia civil,
que denota a colocação de
andaimes e outras estruturas para
suportar temporariamente
trabalhadores e/ou maquinário
enquanto a construção definitiva
não está pronta [...].
Scaffolding
● Grails (Groovy)
● Rails (Ruby)
● Spring Roo (Java)
● Cake (PHP)
Novo paradigma...
… vem com muitas outras ferramentas!
YO!
● Lançado no Google I/O'12
● Google Chrome Dev. Team
● Comunidade ativa
● yeoman.io
● github.com/yeoman
● CLI em Node.js
● Interface interativa
● Baseado em templates
● Modular
● Ecossistema:
○ Scaffolding Tool (yo)
○ Build Tool (grunt/gulp)
○ Package Manager (Bower)
● Inicia um projeto em seg.
● Inicia partes do projeto
● Define práticas e padrões
● Foca no desenvolvimento
● Extremamente fácil:
○ usar
○ extender
3288
geradores registrados, sendo que 21 são oficiais
● generator-angular
● generator-polymer
● generator-webapp
● generator-bootstrap
● generator-mobile
Geradores - Oficiais...
Geradores - Comunidade...
● Javascript: Express, Mean, React, Meteor
● Mobile: Android, IOS, Ionic, Cordova, Titanium,
● Java: Jhipster, Spring, JAX-RS
● PHP: Symphony, Cake, Laravel, Composer
● Wearables: Pebble
● (...)
● http://yeoman.io/learning
● Dependências:
○ Node.js v0.10.x+
○ npm v2.1.0+
○ git
Como instala?
$ npm install -g yo bower grunt-cli gulp
Como procura geradores?
● http://yeoman.io/generators/
● Ou pela linha de comando yo
$ yo
#dicaDoSid
utilize o --help quando tiver
dúvida, ele realmente ajuda!
Talk is cheap.
Show me the code.
- Linus Torvalds
Exemplo 1: webapp
● Instale o gerador:
○ https://github.com/yeoman/generator-webapp
$ npm install --global generator-webapp
Exemplo 1: webapp (cont.)
● Execute o gerador:
● ou apenas pelo yo:
$ yo webapp
$ yo
Exemplo 1: webapp (cont.)
● O que foi gerado?
○ Tela index, links
○ Tasks grunt:
■ wiredep, concat, uglify, revision, minification (css, js, html)
Exemplo 2: angular
● Instale o gerador:
○ https://github.com/yeoman/generator-angular
$ npm install --global generator-angular
Exemplo 2: angular (cont.)
● Execute o gerador:
● Execute um sub-gerador:
$ yo angular
$ yo angular:route <nome_da_rota>
#dicaDoSid
use subgeradores para
incrementar os projetos
(mesmo em andamento)!
Criando um gerador
● Para aparecer na lista do site basta:
○ Ser público no github
○ Ter um keyword: yeoman-generator
○ Ter um arquivo: package.json
● http://yeoman.io/authoring
Criando um gerador (cont.)
● Instale o gerador de gerador:
○ https://github.com/yeoman/generator-generator
● Estende yeoman-generator
● Totalmente customizável: menus, textos, readme, help (...)
Exemplo 3: angular-custom
● Forma mais fácil é clonar um existente :)
● Ex.: Adicionar funcionalidade ao gerador angular:
○ Novo: generator-angular-custom
○ Ao acionar o angular:route, adicionar ao menu automaticamente
● Passos:
○ clone, ajustes, npm link, yo (...)
Exemplo 4: jhipster
● Instale o gerador:
○ https://github.com/jhipster/generator-jhipster
$ npm install --global generator-jhipster
#dicaDoSid
personalize a ferramenta para
adequar ao seu cenário!
Cases geradores
● Geradores baseados em APT + Freemarker
○ Projeto java, jsf, spring
○ ~20 funcionalidades geradas (de 200)
○ entre 27 - 80% de ganho de produtividade
● Geradores com yeoman
○ angular, java, .NET
○ gerou um novo projeto na comunidade! jediproject
○ http://jediproject.github.io/
#dicaDoSid
contribua com a comunidade!
https://goo.gl/MnmmFd
Perguntas?
Obrigado! http://ciandt.com
snoleto@ciandt.com

Mais conteúdo relacionado

Semelhante a Yo! Geradores modernos com Yeoman!

Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
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
 
Python storm grupy_sp_23_04
Python storm grupy_sp_23_04Python storm grupy_sp_23_04
Python storm grupy_sp_23_04Eric Hideki
 
Dando vida ao Arduino com JavaScript
Dando vida ao Arduino com JavaScriptDando vida ao Arduino com JavaScript
Dando vida ao Arduino com JavaScriptLhaís Rodrigues
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018Jonh Wendell
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
P01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorP01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorLeandro Ferreira
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the gameBruno Cicanci
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
FLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidFLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidMaurílio Silva
 
Fundamentos da Internet - Curso de Como ganhar visibilidade na Internet - Au...
Fundamentos da Internet -  Curso de Como ganhar visibilidade na Internet - Au...Fundamentos da Internet -  Curso de Como ganhar visibilidade na Internet - Au...
Fundamentos da Internet - Curso de Como ganhar visibilidade na Internet - Au...Pedro Manoel Rosa Domingues Santos
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!magnunleno
 
Jornada de Tecnologia da Informação
Jornada de Tecnologia da InformaçãoJornada de Tecnologia da Informação
Jornada de Tecnologia da Informaçãotoshikurauchi
 
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman | Seminário
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman  | Seminário ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman  | Seminário
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman | Seminário Osmar Petry
 

Semelhante a Yo! Geradores modernos com Yeoman! (20)

Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
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
 
Python storm grupy_sp_23_04
Python storm grupy_sp_23_04Python storm grupy_sp_23_04
Python storm grupy_sp_23_04
 
Usabilidade de Ferramentas
Usabilidade de FerramentasUsabilidade de Ferramentas
Usabilidade de Ferramentas
 
Dando vida ao Arduino com JavaScript
Dando vida ao Arduino com JavaScriptDando vida ao Arduino com JavaScript
Dando vida ao Arduino com JavaScript
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
P01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorP01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhor
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the game
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
FLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para AndroidFLISoL'11: Desenvolvendo Games para Android
FLISoL'11: Desenvolvendo Games para Android
 
Fundamentos da Internet - Curso de Como ganhar visibilidade na Internet - Au...
Fundamentos da Internet -  Curso de Como ganhar visibilidade na Internet - Au...Fundamentos da Internet -  Curso de Como ganhar visibilidade na Internet - Au...
Fundamentos da Internet - Curso de Como ganhar visibilidade na Internet - Au...
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
 
Hack Thursday - NodeJS
Hack Thursday - NodeJSHack Thursday - NodeJS
Hack Thursday - NodeJS
 
Jornada de Tecnologia da Informação
Jornada de Tecnologia da InformaçãoJornada de Tecnologia da Informação
Jornada de Tecnologia da Informação
 
Vim Rocks!
Vim Rocks!Vim Rocks!
Vim Rocks!
 
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman | Seminário
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman  | Seminário ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman  | Seminário
ASP .NET CORE, Angular 2, e Typescript com Scaffolding Yeoman | Seminário
 
nodeLHC #secomp2016
nodeLHC #secomp2016nodeLHC #secomp2016
nodeLHC #secomp2016
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 

Yo! Geradores modernos com Yeoman!