SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Produtividade
Ao infinito e além!
Vou focar no We.js mas muitas coisas
também valem para outros frameworks
...
Produtividade: capacidade de criar
sistemas e partes de sistemas em pouco
tempo e com pouco esforço
Generators!
Agiliza a construção
gerando partes da
aplicação como models,
CRUD, templates e até o
projeto inteiro.
https://github.com/wejs/generator-wejs
Gerando um app …
# Criando um projeto
yo wejs:app tweet
# Criando um resource
yo wejs:resource tweet text:string lang:string userName:string
userDisplayName:string userImage:text imageUrl:text
# Adicionado uma configuração para deploy no
# Heroku
yo wejs:heroku
Model-view-controller (MVC)!
1. Model - Powered by sequelize
2. Controller - Com as ACTIONS básicas para criar um
CRUD
3. View - por padrão o we-core possuí os formatos de
resposta em JSON ou JSONAPI e o formato de resposta
com HTML está disponível no plugin de view (we-plugin-
view)
https://pt.wikipedia.org/wiki/MVC
[MVC] Model
Responsável pela “estrutura e manipulação” dos dados
salvos no banco de dados
Em uma aplicação com We.js os models são acessíveis no
objeto: we.db.models e em um controller: req.we.db.
models
[MVC] Controller
No We.js o controller possuí actions que são responsáveis
por carregar, processar, montar os dados de acordo com
cada requisição e emviar para a função de resposta
adequada ex: res.ok() para sucesso ou res.queryError()
para um erro de query
Context
Loader
Controller
Action
Model
Response
method
Response
Formater
ACL
(MVC) View ou resposta
Formas de selecionar o formato de resposta
● Com o Accept header: Accept application/vnd.api+json
● Com o query param: responseType
● Com extenção: .json ou .rss
https://en.wikipedia.org/wiki/Content_negotiation
(MVC) View ou resposta
HTML: http://albertosouza.net/article
RSS: http://albertosouza.net/article.rss
JSON: http://albertosouza.net/article.json
E que tal: http://albertosouza.net/article.money
Interoperabilidade
● JSONAPI incluído no core do We.js
● Os formatos de resposta são extensíveis com plugins
● Gerador de documentação com swagger
Interoperabilidade ...
# Criando uma documentação no formato Swagger
yo wejs:doc
# Get tweets list in JSONAPI:
curl -i -H "Accept: application/vnd.api+json" http://localhost:
4000/tweet
# Pegando um artigo do meu site em JSONAPI
curl -i -H "Accept: application/vnd.api+json" http:
//albertosouza.net/artigo/8
Plug and extend
Sistema avançado de plugins
- Install, update and extend!
- Public folders (optional)
- Autoload
Sistema de eventos e hooks
- do something on …
- Eventos são EventEmiters
- Hooks tem callback
E muito mais ...
Plug and play, modules
Theme modules
Code with Javascript!
Suport to Linux, Mac and
Windows
Object-relational mapping
(ORM)
Access Control List (ACL)
Simpler structure
Generate forms from JSON
or modelsExtensive response formats
Administrative interface
Layout, regions and
Widgets
Url alias
Generate Swagger
documentation
Compatible with Express.js
middlewares
Project distributions
Hooks and
events
ROADMAP
Mas isso
tudo é só o
começo!
A maioria das pequenas empresas e startups não
podem pagar ou esperar por um sistema “perfeito”
...
Tempo é dinheiro
Produto mínimo viável (MVP )
Mas como permitir que todas essas ideias virem
realidade?
Através de um serviço online onde o
usuário poderia escolher o que deseja e
depois mandar o serviço “gerar” seu app
…
e talvez já realizar o deploy ...
Várias empresas já estão avançando para criar algo
parecido ex:
https://treeline.io
Node machine spec:
Mas todas essas opções exigem
conhecimentos de desenvolvimento ...
BOOM! aí surge o projeto We Build
● SaaS + BaaS = Serviço online para construír e realizar o
deploy de sistemas
● Self service de desenvolvimento de APIs
● Os “desenvolvedores” vão montar os seus sistemas
descrevendo o que querem com suporte á templates e
ajuda virtual
● Geranciamento de equipes e tarefas
● E muito mais ...
Ei, você aí tem uma empresa se possível de
hosting e gostou do We Build
Entre em contato, precisamos de apoio $$ para
avançar ...
Email: alberto.souza.99@gmail.com
contact@wejs.org
We.js
Github: https://github.com/wejs/we
Site: https://wejs.org
Twitter: https://twitter.com/we_js
We.js CMF project: https://github.com/wejs/we/issues/158
Email: contact@wejs.org

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UIApresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UICecília Rosa
 
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
 
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
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0Wilson Mendes
 
Performance com AngularJS
Performance com AngularJSPerformance com AngularJS
Performance com AngularJSWilson Mendes
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideSergio Azevedo
 
React Native - Plataformas Mobile
React Native - Plataformas MobileReact Native - Plataformas Mobile
React Native - Plataformas MobileHugo Iuri
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCguest489a65e
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJSRodrigo Branas
 
AngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IOAngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IODouglas Lira
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Julian Cesar
 

Was ist angesagt? (20)

Apresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UIApresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UI
 
Introdução Vue JS
Introdução Vue JSIntrodução Vue JS
Introdução Vue JS
 
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
 
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...
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Angular js
Angular jsAngular js
Angular js
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0
 
Performance com AngularJS
Performance com AngularJSPerformance com AngularJS
Performance com AngularJS
 
Introdução ao AngularJS!
Introdução ao AngularJS!Introdução ao AngularJS!
Introdução ao AngularJS!
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-Side
 
React Native - Plataformas Mobile
React Native - Plataformas MobileReact Native - Plataformas Mobile
React Native - Plataformas Mobile
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJS
 
AngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IOAngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IO
 
Angular js
Angular jsAngular js
Angular js
 
Curso AngularJS - Parte 2
Curso AngularJS - Parte 2Curso AngularJS - Parte 2
Curso AngularJS - Parte 2
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)
 

Ähnlich wie We.js produtividade e MVC

IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Workshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring BootWorkshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring BootLucas Boeing Scarduelli
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilElias Nogueira
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressRômulo Zoch
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 

Ähnlich wie We.js produtividade e MVC (20)

Palestra
PalestraPalestra
Palestra
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Workshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring BootWorkshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring Boot
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPress
 
Cake Php
Cake PhpCake Php
Cake Php
 
Vue.js
Vue.jsVue.js
Vue.js
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 

We.js produtividade e MVC

  • 2. Vou focar no We.js mas muitas coisas também valem para outros frameworks ...
  • 3. Produtividade: capacidade de criar sistemas e partes de sistemas em pouco tempo e com pouco esforço
  • 4. Generators! Agiliza a construção gerando partes da aplicação como models, CRUD, templates e até o projeto inteiro. https://github.com/wejs/generator-wejs
  • 5. Gerando um app … # Criando um projeto yo wejs:app tweet # Criando um resource yo wejs:resource tweet text:string lang:string userName:string userDisplayName:string userImage:text imageUrl:text # Adicionado uma configuração para deploy no # Heroku yo wejs:heroku
  • 6. Model-view-controller (MVC)! 1. Model - Powered by sequelize 2. Controller - Com as ACTIONS básicas para criar um CRUD 3. View - por padrão o we-core possuí os formatos de resposta em JSON ou JSONAPI e o formato de resposta com HTML está disponível no plugin de view (we-plugin- view) https://pt.wikipedia.org/wiki/MVC
  • 7. [MVC] Model Responsável pela “estrutura e manipulação” dos dados salvos no banco de dados Em uma aplicação com We.js os models são acessíveis no objeto: we.db.models e em um controller: req.we.db. models
  • 8. [MVC] Controller No We.js o controller possuí actions que são responsáveis por carregar, processar, montar os dados de acordo com cada requisição e emviar para a função de resposta adequada ex: res.ok() para sucesso ou res.queryError() para um erro de query
  • 10. (MVC) View ou resposta
  • 11. Formas de selecionar o formato de resposta ● Com o Accept header: Accept application/vnd.api+json ● Com o query param: responseType ● Com extenção: .json ou .rss https://en.wikipedia.org/wiki/Content_negotiation
  • 12. (MVC) View ou resposta HTML: http://albertosouza.net/article RSS: http://albertosouza.net/article.rss JSON: http://albertosouza.net/article.json E que tal: http://albertosouza.net/article.money
  • 13. Interoperabilidade ● JSONAPI incluído no core do We.js ● Os formatos de resposta são extensíveis com plugins ● Gerador de documentação com swagger
  • 14. Interoperabilidade ... # Criando uma documentação no formato Swagger yo wejs:doc # Get tweets list in JSONAPI: curl -i -H "Accept: application/vnd.api+json" http://localhost: 4000/tweet # Pegando um artigo do meu site em JSONAPI curl -i -H "Accept: application/vnd.api+json" http: //albertosouza.net/artigo/8
  • 15. Plug and extend Sistema avançado de plugins - Install, update and extend! - Public folders (optional) - Autoload Sistema de eventos e hooks - do something on … - Eventos são EventEmiters - Hooks tem callback
  • 16. E muito mais ... Plug and play, modules Theme modules Code with Javascript! Suport to Linux, Mac and Windows Object-relational mapping (ORM) Access Control List (ACL) Simpler structure Generate forms from JSON or modelsExtensive response formats Administrative interface Layout, regions and Widgets Url alias Generate Swagger documentation Compatible with Express.js middlewares Project distributions Hooks and events
  • 17. ROADMAP Mas isso tudo é só o começo!
  • 18. A maioria das pequenas empresas e startups não podem pagar ou esperar por um sistema “perfeito” ... Tempo é dinheiro Produto mínimo viável (MVP )
  • 19. Mas como permitir que todas essas ideias virem realidade?
  • 20. Através de um serviço online onde o usuário poderia escolher o que deseja e depois mandar o serviço “gerar” seu app … e talvez já realizar o deploy ...
  • 21. Várias empresas já estão avançando para criar algo parecido ex: https://treeline.io Node machine spec:
  • 22. Mas todas essas opções exigem conhecimentos de desenvolvimento ...
  • 23. BOOM! aí surge o projeto We Build ● SaaS + BaaS = Serviço online para construír e realizar o deploy de sistemas ● Self service de desenvolvimento de APIs ● Os “desenvolvedores” vão montar os seus sistemas descrevendo o que querem com suporte á templates e ajuda virtual ● Geranciamento de equipes e tarefas ● E muito mais ...
  • 24. Ei, você aí tem uma empresa se possível de hosting e gostou do We Build Entre em contato, precisamos de apoio $$ para avançar ... Email: alberto.souza.99@gmail.com contact@wejs.org
  • 25. We.js Github: https://github.com/wejs/we Site: https://wejs.org Twitter: https://twitter.com/we_js We.js CMF project: https://github.com/wejs/we/issues/158 Email: contact@wejs.org