Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arquiteturas Comuns de Apps Rails @ RubyConf BR 2015

Plataformatec
September 18, 2015

Arquiteturas Comuns de Apps Rails @ RubyConf BR 2015

Plataformatec

September 18, 2015
Tweet

More Decks by Plataformatec

Other Decks in Technology

Transcript

  1. !

  2. 1. O monolito 2. Banco de Dados compartilhado 3. Micro

    serviços 4. Integração via Eventos/Msgs
  3. replica funcionalidades de banco de dados via http com a

    desvantagem da latência, falta de funcionalidades
  4. não crie um gemserver interno Adiciona passos a mais no

    seu fluxo de entrega: Commita na gem Publica a gem Update no Gemfile de cada app Roda os testes de todo mundo
  5. crie serviços, não micro CRUD (html) + API (json) ciclo

    de vida de um resource aplicações mais independentes
  6. # app/models/user.rb on the publisher app class User include Promiscuous::Publisher

    publish :name, :email end # app/models/user.rb on the subscriber app class User include Promiscuous::Subscriber subscribe :name, :email after_create { Rails.logger.info "Hi #{name}!" } end
  7. george:~/monorepo[master]$ tree -t . !"" site !"" admin !"" gems

    # !"" http_logger # $"" minitest-goodies $"" README.md
  8. Monolito Sem muitas peças móveis Facilita análise de erro /

    performance Amadureça os conceitos e abstrações do seu domínio de negócios
  9. Por incrível que pareça, a alternativa mais sem graça vai

    te ajudar a entregar features e manter a flexibilidade para mudanças