SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Giovanni Bassi
       giggio@giggio.net
    www.lambda3.com.br
    blog.lambda3.com.br




1
@GiovanniBassi

                 5
Status atual


Separando a
  consulta

         Cenário
       colaborativo

Separando um
 pouco mais


      Oportunidades


Mudanças na
modelagem


           Q&A
Interface gráfica

    View

  Controller


    Serviços


      Infra
Representantes


          ORM
Representantes
Representantes




Repositório ordena??
Representante   Total de   Número de   % sobre a   Gerente
                vendas     clientes    meta
Darth Vader     50.000     15          105%        Imperador
Han Solo        23.000     10          90%         Luke Skywalker
Consulta




Representantes




 Alteração
Consulta de
Representantes


          SQL

                 Represen
                  tantes
Consulta de
Representantes


        ORM

                 Represen
                  tantes
Sistema
Interface gráfica

Cache       View

          Controller


            Serviços


              Infra
Palestra de Cache
 Distribuído com o
Daibert em seguida!
http://en.wikipedia.org/wiki/ACID
http://en.wikipedia.org/wiki/Eventual_consistency
http://bit.ly/captheorem
Consulta de
Representantes


 SQL (em
  banco
específico)

                 Represen
                  tantes
Banco de
 Consulta de
                 Consulta
Representantes




                  Banco de
                 Transações
Representantes
Banco de
        Consulta
 Consulta de
Representantes
                   Consulta




                    Banco de
        Comando
Representantes
                   Transações
Banco de
                  Consulta
 Consulta de
Representantes




 Representantes
                    Banco de
                   Transações
Banco de
                  Consulta
 Consulta de
Representantes




 Representantes
                     Banco de
                    Transações
Banco de
                  Consulta
 Consulta de
Representantes




 Representantes
                     Banco de
                    Transações
Banco de
                  Consulta
 Consulta de
Representantes




 Representantes
                     Banco de
                    Transações
Cliente
Nome              Cliente
Email             AtualizarDados(nome, email)
EhEspecial        DarDesconto(percentual)
FaixaDeDesconto   TornarEspecial()
EhValido()
Cliente
                       AtualizarDados(nome, email)
                       DarDesconto(percentual)
                       TornarEspecial()




                            DarFaixaDeDescontoAoCliente
                            IdCliente
AtualizaDadosCliente
                            Percentual
IdCliente
Nome
                                 TornarClienteEspecial
Email
                                 IdCliente
Cliente
                    AtualizarDados(nome, email)
                    DarDesconto(percentual)
                    TornarEspecial()




                          Clientes
ClientesEspeciais         IdCliente
IdCliente                 PercentualDesconto
Nome                      PaginaAtual
Email                     NumeroDePaginas
duplicação de dados: ok            Rollback!
denormalização: ok
dados na última camada: ok
atomicidade: desnecessária
consistência: em algum momento (não agora)
exceções a regra: menos prioritárias
fronteira transacional: menor que uma entidade
entidades de domínio na UI: malignas
camadas: menos...
cache: banco NOSQL sem segurança
banco relacional: provavelmente desnecessário em
diversos pontos
repositórios: não paginam nem ordenam
Obrigado!
              Giovanni Bassi
          giggio@giggio.net
      www.lambda3.com.br
       blog.lambda3.com.br
Giovanni Bassi
    giggio@giggio.net
www.lambda3.com.br
 blog.lambda3.com.br

Mais conteúdo relacionado

Mais de DNAD

LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaDNAD
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpDNAD
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureDNAD
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadDNAD
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionáriaDNAD
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidosDNAD
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?DNAD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISSDNAD
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura EvolucionáriaDNAD
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - KeynoteDNAD
 

Mais de DNAD (13)

LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharp
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitecture
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionária
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote
 

06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD