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.

Avatar for Lucas Neves Martins

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