Post on 31-Oct-2015
description
QUEBRANDOPARADIGMAS
Como eu usei
no meu projeto de graduao
QUEBRANPARADIGMAS
DO
PARADIGMA
padro ou modelo,suposies, conceitos,
valores e prticas;
como um paradigma formado
sobre...esta palestra
paradigmas sobre...esta palestra
faculdadeparadigmas
sobre...esta palestra
macacosfaculdade
paradigmas
sobre...esta palestra
dragon ball zmacacos
faculdadeparadigmas
sobre...esta palestra
dragon ball zmacacos
faculdadeparadigmas
sobre...esta palestra
mongoDBdragon ball z
macacosfaculdade
paradigmas
sobre...esta palestra
um softwaremongoDB
dragon ball zmacacos
faculdadeparadigmas
sobre...esta palestra
desafios
mongoDBdragon ball z
macacosfaculdade
paradigmas
um software
sobre...esta palestra
mim
mongoDBdragon ball z
macacosfaculdade
paradigmas
um softwaredesafios
sobre...esta palestra
UMA PALESTRA EGOSTAvoc est certo...
@shamanime
JeffersonQueiroz
Venerando
@shamanime
JeffersonQueiroz
Venerando
FACULDADEtudo comea com a
H UMA VERDADESOBRE FACULDADES
como eu penso que
como eu penso que como minha me pensa...
how I think it will be...como minha me pensa...como realmente ...
enquanto voctenta se formar
Voc encontravrios paradigmas.
VOC APRENDE BASICAMENTE...uma forma de programar.uma forma de modelar seu banco.uma forma de documentar.
No h tempo suficientepara ensinar tudo.
E o mais importante seu projeto de graduao.Se estiver fazendo TI.
Ento voc voltapara o que aprendeu.
Ento voc vol
ta
para o que ap
rendeu.}
Consegue identificaralguns paradigmas
criados at chegar aqui?
VAMOS POR A MO NA MASSA.
EU TAMBM TIVE QUE GRADUAR.VAMOS POR A MO NA MASSA.
Eu trabalhava em uma agncia de publicidade
no havia um bom software
Eu trabalhava em uma agncia de publicidade
muito trabalho para compensar isso
no havia um bom software
Eu trabalhava em uma agncia de publicidade
por que no resolver o problema?
muito trabalho para compensar isso
no havia um bom software
Eu trabalhava em uma agncia de publicidade
um software para controlaragncias de publicidade
+Ruby on Rails e umbanco relacional
+VAMOS L!um software para controlaragncias de publicidade
Ruby on Rails e umbanco relacional
Eu no programava em Rails.Um timo desafio. E paradigma.
Eu aprendi.E no foi to ruim assim.
PROBLEMAo grande
MODELAGEMDE DADOS
PORQUE FOI DIFCIL #1
requisitos NO so totalmentedefinidos no incio...
eles mudam com o desenvolvimento.
PORQUE FOI DIFCIL #2
mudanas precisamde migraes...
difcil manter o controle,voltar e refazer ruim.
PORQUE FOI DIFCIL #3
requisitos ainda soinstveis...
desenvolvimentoprecisa ser rpido.
PORQUE FOI DIFCIL #4
regras de negcioso complicadas...
muitas tabelase joins.
ESQUEMADEFINIDO
objetos podem sernicos.
PORQUE FOI DIFCIL #5
REVISO
Requisitos instveis
Difcil modelar as regras de negcio
Desenvolvimento lento
PORQUE FOI DIFCIL
VAMOSOLHAR O OUTRO
LADO DAMOEDA
MySQLFirebird
PostgreSQLSQLite
OracleDB2
CouchDBBigData
Vertica
CassandraMemcacheDB
PORQUE O
ARREPIA
PORQUE ELE ARREPIA
Modelo de dados de Documentos
sem esquemas
PORQUE ELE ARREPIA
Modelo de dados de Documentos
n-dimensional
PORQUE ELE ARREPIA
Modelo de dados de Documentos
Sem joins
PORQUE ELE ARREPIA
Modelo de dados de Documentos
Possui uma estrutura...
PORQUE ELE ARREPIA
Modelo de dados de Documentos
JSON
SEXTA 13
JSON
Consultas Ad hoc
PORQUE ELE ARREPIA
Consultas dinmicasConsultas Ad hoc
PORQUE ELE ARREPIA
ndices secundrios
PORQUE ELE ARREPIA
At 64 ndices por coleondices secundrios
PORQUE ELE ARREPIA
Replicao
PORQUE ELE ARREPIA
Usado para redundnciaReplicao
PORQUE ELE ARREPIA
Failover automticoReplicao
PORQUE ELE ARREPIA
Velocidade e durabilidade
PORQUE ELE ARREPIA
Journaling ou replicaoVelocidade e durabilidade
PORQUE ELE ARREPIA
Escalabilidade
PORQUE ELE ARREPIA
Escalar horizontalmente muito fcil
Escalabilidade
PORQUE ELE ARREPIA
DocumentosConsultas Ad hocndices secundriosReplicaoVelocidade e durabilidadeEscalabilidade
PORQUE ELE ARREPIAREVISO
como issoME AJUDOU
SEM ESQUEMAS
represente os dados como realmente so;
sem migraes = mais tempo desenvolvendo;
uma consulta retorna tudo;
"Com grande poder vm grandes responsabilidades"
- Tio Ben
NO DEIXE SEUS DOCUMENTOSVIRAREM UMA BAGUNA
MODELO RELACIONAL
DOCUMENTOS
sem redundncia,formas normais
sem joins,redundncia ok
DOCUMENTOS
So auto-contidosContm todas informaes
Performance++Uma consulta retorna tudo
DOCUMENTOS
DOCUMENTOS
Pode ser linkado ou incorporado
DOCUMENTOS LINKADOS
Mais usado para relaesmany-to-many;
Funciona bem quando a duplicao de dados um problema;
DOCUMENTOS INCORPORADOS
Ei, Dawg, ouvi que voc gosta de documentos ento coloquei um documento no seu documento pra que voc tenha vrios documentos dentro do documento.
DOCUMENTOS INCORPORADOS
Ei, Dawg, ouvi que voc gosta de documentos ento coloquei um documento no seu documento pra que voc tenha vrios documentos dentro do documento.
PUTZ!MEMES TRADUZIDOSSO HORRVEIS
MO NA MASSA #1// representao de um job{ "_id" : ObjectId( "4fa969cef8955b304e000056" ), "campanha" : "Promoo de frias sup. Thiago", "cliente_id" : ObjectId( "4f271132f8955b177a000019" ), "data_entrada" : Date( 1337040000000 ), "data_entrega" : Date( 1337040000000 ), "func_nome" : "Jefferson Queiroz", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000004" ), "numero" : 4, "status" : "produo", "titulo" : "Frias legais", "updated_at" : Date( 1336502734000 ), "verba" : "4500.0" }
MO NA MASSA #1// representao de um job{ "_id" : ObjectId( "4fa969cef8955b304e000056" ), "campanha" : "Promoo de frias sup. Thiago", "cliente_id" : ObjectId( "4f271132f8955b177a000019" ), "data_entrada" : Date( 1337040000000 ), "data_entrega" : Date( 1337040000000 ), "func_nome" : "Jefferson Queiroz", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000004" ), "numero" : 4, "status" : "produo", "titulo" : "Frias legais", "updated_at" : Date( 1336502734000 ), "verba" : "4500.0" }
MO NA MASSA #2
// inserir cliente e telefones> db.clientes.insert({ nome: 'Jefferson Queiroz Venerando', cidade: 'Iturama', telefones: [ numero: '34 5687-1432', op: 'TIM'}, numero: '34 3442-4321', op: 'Vivo'} ]})
{ "_id" : ObjectId( "4f2c0bec740e950417000038" ), "created_at" : Date( 1328286700000 ), "desconto_cliente" : 0, "formato" : "40x50", "func_nome" : "Jefferson", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000001" ), "job_id" : ObjectId( "4f2acb2d740e950417000017" ), "servico_id" : ObjectId( "4f271133f8955b177a00002e" ), "status" : "criao", "titulo" : "Outdoor", "updated_at" : Date( 1334175800000 ), "valor_fornecedores" : [ { "_id" : ObjectId( "4f457739f8955b5420000001" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001a" ), "valor" : "321.0" }, { "_id" : ObjectId( "4f457739f8955b5420000002" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001b" ), "valor" : "123.0" } ], "vlr_com_desconto" : "50.0", "vlr_fornecedores" : "444.0", "vlr_servico" : "50.0", "vlr_total" : "494.0" }
{ "_id" : ObjectId( "4f2c0bec740e950417000038" ), "created_at" : Date( 1328286700000 ), "desconto_cliente" : 0, "formato" : "40x50", "func_nome" : "Jefferson", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000001" ), "job_id" : ObjectId( "4f2acb2d740e950417000017" ), "servico_id" : ObjectId( "4f271133f8955b177a00002e" ), "status" : "criao", "titulo" : "Outdoor", "updated_at" : Date( 1334175800000 ), "valor_fornecedores" : [ { "_id" : ObjectId( "4f457739f8955b5420000001" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001a" ), "valor" : "321.0" }, { "_id" : ObjectId( "4f457739f8955b5420000002" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001b" ), "valor" : "123.0" } ], "vlr_com_desconto" : "50.0", "vlr_fornecedores" : "444.0", "vlr_servico" : "50.0", "vlr_total" : "494.0" }
DOCUMENTOSTrabalhe com os dados da forma que eles so
REVISO
Desenvolvimento rpidoConsistncia sua responsabilidade
MAP REDUCEDAHORA A VIDA!
AINDA
nem tudo so
FLORES
TENHA EM MENTE
Arquivos mapeados na memria
Melhor rodar em 64-bit
TENHA EM MENTE
Arquivos mapeados na memria
Memria para os dados alocada automaticamente
TENHA EM MENTE
Arquivos mapeados na memria
Replicao importante
TENHA EM MENTE
Arquivos mapeados na memria
Limite de tamanho do documento16 MB no MongoDB v2.0
TENHA EM MENTE
#1 desencorajar documentos com profundos nveis de aninhamento
TENHA EM MENTE
Limite de tamanho do documento
#2 performance
TENHA EM MENTE
Limite de tamanho do documento
Sem transaes
TENHA EM MENTE
Trabalhe com 1 documento por vez
TENHA EM MENTE
Sem transaes
Sem BEGIN, COMMIT ou ROLLBACK
TENHA EM MENTE
Sem transaes
Compreenda as limitaes tambm...
Ainda h mais...
TENHA EM MENTE
Sem ACIDTenha memria suficienteSem transaes, srio
TENHA EM MENTEREVISO
no fim
O QUE FOI FEITO
nossa ideia...
FOI CONSTRUDA DO ZEROUSANDO MONGODB
FUNCIONA MUITO BEM
MongoDB foi uma tima escolha
At para pequenos projetosMongoDB foi uma tima escolha
FUNCIONA MUITO BEM
Sem dores de cabea at agora
FUNCIONA MUITO BEM
MongoDB foi uma tima escolha
EU ME FOR
MEI
E QUEBRE
I
O PARADI
GMA
DA FACULD
ADE
nossa
VIROU UM PRODUTO
QUE J FUNCIONA
EM PRODUO
A vida comeaonde terminasua zona de conforto!
REVISO
PERGUNTAS?
Obrigado!JEFFERSON Q. VENERANDO
@shamanime
E obrigado Stephanie Pellegrino pelas ilustraes
http://shamani.me