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

Arquitetura de Software para Startups SaaS

Arquitetura de Software para Startups SaaS

Keynote utilizado para o evento "Start" da UFSC
http://lucascolusso.com/start/

Neste Workshop demonstro a importância de uma API de integração na sua Startup, e o caminho para a implementação.

Lucas Neves Martins

August 09, 2013
Tweet

More Decks by Lucas Neves Martins

Other Decks in Programming

Transcript

  1. Arquitetura de Software para Startups SaaS Lucas N Martins http://railsnapraia.com

    https://github.com/lucasmartins @nevemartins #loudcoding
  2. Vantagens da Integração • Foco no SEU produto • Delegar

    tarefa para um terceiro especializado (vertical) • “Network Effect” • Abre espaço para Criatividade • Simbiose com o Ecosistema
  3. Preucupações ao se Integrar • Blackouts • Segurança • Qualidade

    do Suporte • Qualidade da Equipe de Desenvolvimento/Operação
  4. O que fornecer? • Evite a escolha de o que

    deve ser fornecido, assuma que outros queiram fazer o que você pode fazer; • Abra espaço para a criatividade da outra “ponta”; • Quanto mais rica a sua API, maior as chances de alguém se integrar; • Abra espaço para Feedback e Requests.
  5. Impacto na Arquitetura • SSL; • Enriqueça seu MVC com

    uma camada de serviços; • Implemente uma suíte de testes; • Versione a sua API; • Refatore! • Bônus: Crie bibliotecas de integração! Este post no CodeClimate mostra um exemplo legal de como extrair Service Objects: http:// blog.codeclimate.com/blog/ 2012/10/17/7-ways-to- decompose-fat-activerecord- models/
  6. Bibliotecas de Integração • PagSeguro: https://github.com/pagseguro/ruby • Highrise: https://github.com/tapajos/highrise •

    Facebook: https://github.com/arsduo/koala • GitHub: https://github.com/octokit/octokit.rb
  7. Mão-na-massa! • Forme a sua equipe/startup; • Pense nas possibilidades/nescessidades;

    • Forneça uma API de integração para as outras equipes;
  8. Seja “Lean” • Emule com uma estrutura de pastas e

    arquivos: api.meuapp.com/timeline.json ; api.meuapp.com/events/23.json ; api.meuapp.com/actions/change-password.json?old=123&new=abc curl -D {‘old’:‘123’, ‘new’:‘abc’} http://api.meuapp.com/actions/change-password.json Chrome App: Postman REST client