graojs - a full stack mvc nodejs framework

28
graoJS – Full stack MVC NodeJS http://graojs.org Marcelo Machado Fleury @marcelomf marcelo[arroba]synack[ponto]com[ponto]br #latinoware2013 … #graojs #pev #h2hc-community #nodejsgo #gojs #fgsl #asl-go #psl-go, #eri-go … "Nenhum de nós é melhor ou mais inteligente que todos nós." Marilyn Ferguson

Upload: marcelo-machado-fleury

Post on 18-Dec-2014

493 views

Category:

Technology


0 download

DESCRIPTION

- Micro-kernel architecture (graojs core) - IoC - Inversion of Control (graojs core) - DI - Dependency Injection (graojs core) - MVC - Model View Controller(graojs) - Scaffolding (graojs generator) - RAD - Rapid Application Developer(graojs builder, it's a frontend for mongoose schemas and graojs generator, maybe we'll utilize fabric.js) - Authentication (nodejs passport) - RBAC - Role Based Access Control (mongoose rbac, we'll work to support activity based access control) - RestFUL and engine of static and controllers routes (nodejs express) - RIA - Rich Interface Application(angularjs, angular-ui, twitter bootstrap 3) - ODM - Object Document Mapping(nodejs mongoose, we'll work to support ORM) - Template Engine (swig, jade, but if you prefer others engines, it's very simple support it) - Internationalization (nodejs i18n)

TRANSCRIPT

Page 1: graoJS - A full stack MVC NodeJS framework

graoJS – Full stack MVC NodeJS

http://graojs.orgMarcelo Machado Fleury

@marcelomfmarcelo[arroba]synack[ponto]com[ponto]br

#latinoware2013

… #graojs #pev #h2hc-community #nodejsgo #gojs #fgsl #asl-go #psl-go, #eri-go …

"Nenhum de nós é melhor ou mais inteligente que todos nós." Marilyn Ferguson

Page 2: graoJS - A full stack MVC NodeJS framework

whoami

● Goiano de 1986, filho da Alexandra e do Arlindo● Amante da velocidade● Curte programação desde 1998● Curte GNU/Linux desde 2000● Curte hacking desde 2002● Anarquista ao seu próprio limite, tendendo ao infinito● Pai da Valentina e marido da Laís● “O caminho para sabedoria é simples, erra, erra e erra

novamente, mas menos, menos e menos” Piet Hein

Page 3: graoJS - A full stack MVC NodeJS framework

FOSS e HACKERS

● Free and Open Source Software● A produção de FOSS● O valor de FOSS● O sentimento FOSS● O sentimento Hacker

Page 4: graoJS - A full stack MVC NodeJS framework

A SYNACK

● Rede multiplex de profissionais e amigos● Distribuída, portanto:

– Não hierárquica

– Colaborativa

● Anárquica, portanto:– Não burocrática

– Libertadora

● Não emprega, portanto livre– Se você se sente livre no seu emprego, sorte sua! :)

Page 5: graoJS - A full stack MVC NodeJS framework

O graoJS – Vamos semear

● Germinando códigos/opcodes/bits– Modelo artesão

– Utópico estado da arte

● Licença MIT● DIY, DRY, KISS● GOF, XP, SCRUM

Page 6: graoJS - A full stack MVC NodeJS framework

Germinando

● Arquitetura micro-kernel● MVC, IoC e DI● Scaffolding e RAD● Autenticação e RBAC● RestFUL/JSON e RIA● ODM, ORM e Validações● Rotas e Controladores● Templates e i18n

Page 7: graoJS - A full stack MVC NodeJS framework

Projetos

● Openfund.me● Indiobrita.org (facebook.com/indiobrita)● github.com/sheldonled/myconf● marcelomf.blogspot.com/search/label/see● Certificados de um cartório● Leads e finanças de uma empresa ● Scanner de vulnerabilidades c/ OpenSCAP

Page 8: graoJS - A full stack MVC NodeJS framework

Stack de aplicações

● MongoDB● Redis● zeroMQ● NodeJS

– Express

– Mongoose

● Twitter Bootstrap, AngularJS, swig, jade...

Page 9: graoJS - A full stack MVC NodeJS framework

JSON

Page 10: graoJS - A full stack MVC NodeJS framework

JavaScript OO - Literais

Page 11: graoJS - A full stack MVC NodeJS framework

JavaScript OO - Function

Page 12: graoJS - A full stack MVC NodeJS framework

JavaScript OO - Prototype

Page 13: graoJS - A full stack MVC NodeJS framework

RestFUL

Page 14: graoJS - A full stack MVC NodeJS framework

MongoDB

● NoSQL● Orientado a documentos● JSON● BSON● Collections● MapReduce● Master/Master – Master/Slave

Page 15: graoJS - A full stack MVC NodeJS framework

NodeJS

● Google V8 Engine ● Escrito em C++● Event Driven● Escopos: Global, Glocal e Local● Native Code● Mono Thread

– Balanceamento++

● NPMJS.ORG

Page 16: graoJS - A full stack MVC NodeJS framework

Kernel Monolítico

Page 17: graoJS - A full stack MVC NodeJS framework

Micro-Kernel

DCC.UFMG

Page 18: graoJS - A full stack MVC NodeJS framework

graoJS

Page 19: graoJS - A full stack MVC NodeJS framework

DI: GraoKernel

Page 20: graoJS - A full stack MVC NodeJS framework

DI: GraoKernel

Page 21: graoJS - A full stack MVC NodeJS framework

DI: GraoKernel

Page 22: graoJS - A full stack MVC NodeJS framework

DI: GraoKernel

Page 23: graoJS - A full stack MVC NodeJS framework

DEMO: CLI

● grao app nome_app● grao bundle nome_bundle● grao gen nome_schema

Page 24: graoJS - A full stack MVC NodeJS framework

Demo: Diretórios do projeto

Page 25: graoJS - A full stack MVC NodeJS framework

Demo: Arquivos bundle e core

Page 26: graoJS - A full stack MVC NodeJS framework

TODO

● Finalizar engine de eventos(80%)– Monitoramento de eventos

– Controle de estados

– Orquestração de eventos

● Finalizar o GraoGenerator(90%) e GraoBuilder(20%)● Finalizar o GraoLoader(70%) e GraoStress(70%)● Começar o GraoServer(20%)● Começar o ?GraoMarketPlace?(20%)

Page 27: graoJS - A full stack MVC NodeJS framework

RoadMap● 20/10/2013 – 1ª Alpha Release

– Finalizar generator e o loader

● 25/10/2013 – 1ª Beta Release– Estabilizar o builder, stress

● 30/10/2013 – 2ª Beta Release– Projeto entra em freeze

● 05/11/2013 – 1ª Stable Release– Funcionalidades implementadas exceto GraoServer

e GraoMarketPlace

● 05/01/2013 – 2ª Stable Release

Page 28: graoJS - A full stack MVC NodeJS framework

Obrigado!

http://graojs.orgMarcelo Machado Fleury

@marcelomfmarcelo[arroba]synack[ponto]com[ponto]br

#latinoware2013

… #graojs #pev #h2hc-community #nodejsgo #gojs #fgsl #asl-go #psl-go #eri-go ...

"E Deus salvará ao humilde." Jó 22.29