produtividade infinito e além com we.js
TRANSCRIPT
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 projetoyo wejs:app tweet
# Criando um resourceyo wejs:resource tweet text:string lang:string userName:string userDisplayName:string userImage:text imageUrl:text
# Adicionado uma configuração para deploy no # Herokuyo wejs:heroku
Model-view-controller (MVC)!
1. Model - Powered by sequelize2. Controller - Com as ACTIONS básicas para criar um
CRUD3. 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 Swaggeryo 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 JSONAPIcurl -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 models Extensive 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 é dinheiroProduto 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 ...
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: [email protected]