Locaweb + Spree: transformando código aberto em um projeto comercial
Upcoming SlideShare
Loading in...5
×
 

Locaweb + Spree: transformando código aberto em um projeto comercial

on

  • 3,960 views

Os desafios, benefícios, dificuldades e lições aprendidas que a equipe de desenvolvimento de SaaS da Locaweb teve na utilização do Spree, uma plataforma de comércio eletrônico de código ...

Os desafios, benefícios, dificuldades e lições aprendidas que a equipe de desenvolvimento de SaaS da Locaweb teve na utilização do Spree, uma plataforma de comércio eletrônico de código aberto, como base de seu novo sistema de loja virtual multi-usuário, desenvolvido em Ruby on Rails. O poder e o dinamismo do Ruby tiveram destaque, com grande utilização de metaprogramação nas extensões do Spree.

Statistics

Views

Total Views
3,960
Views on SlideShare
3,644
Embed Views
316

Actions

Likes
5
Downloads
32
Comments
1

2 Embeds 316

http://prodis.blog.br 245
http://prodis.pro.br 71

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • O projeto está legal, pena que na prática a mudança ficou muito inferior ao produto que eles tinham antes.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Vamos testar para ver o que acontece. <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • - Todo c&#xF3;digo produzido pela Locaweb fica separado <br /> - N&#xE3;o tocamos no c&#xF3;digo do Spree <br /> - Dessa forma, podemos atualizar com novas releases do Spree <br /> <br />
  • - Todo c&#xF3;digo produzido pela Locaweb fica separado <br /> - N&#xE3;o tocamos no c&#xF3;digo do Spree <br /> - Dessa forma, podemos atualizar com novas releases do Spree <br /> <br />
  • - Todo c&#xF3;digo produzido pela Locaweb fica separado <br /> - N&#xE3;o tocamos no c&#xF3;digo do Spree <br /> - Dessa forma, podemos atualizar com novas releases do Spree <br /> <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • - PO dedicado ao produto- Lider T&#xE9;cnico atua como gerente- Inicialmente eram 4 desenvolvedores <br /> - QA dedicado ao produto- UX compartilhado com outros projetos <br />
  • Falar sobre voc&#xEA; ter o dom&#xED;nio de uma linguagem e de repente voc&#xEA; passa a pisar em ovos quando tem que trabalhar com outra linguagem, outra S.O., outras ferramentas de desenvolvimento. <br />
  • <br />
  • <br />
  • N&#xE3;o escreva c&#xF3;digo sem antes ter um teste falhando. <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • Vamos testar para ver o que acontece. <br />

Locaweb + Spree: transformando código aberto em um projeto comercial Locaweb + Spree: transformando código aberto em um projeto comercial Presentation Transcript

  • + Transformando código aberto em um projeto comercial http://www.locaweb.com.br http://spreecommerce.com Fernando Hamasaki de Amorim a.k.a. Prodis http://prodis.pro.br http://twitter.com/prodis
  • Agenda • Cenário atual • O que é o Spree • Transformação do Spree em WebStore • Equipe e ambiente de trabalho • Introdução ao “Mundo do Software Livre” • O que vem pela frente
  • Cenário Atual
  • Loja Pronta
  • Loja Pronta • Grátis • Multi-usuário • Mais de 10.000 instalações • Desenvolvida em ASP (código de 2006) • Roda em Windows Server 2003 • Banco de dados SQL Server (8 servidores)
  • Loja Pronta • Não possui testes automatizados • Difícil de dar manutenção • Cada nova instalação cria uma nova base de dados • Alto custo de infraestrutura de servidores • Problemas de escalabilidade (processo ASP)
  • Necessidade • Substituir a Loja Pronta por outra solução • Mais escalável, fácil de dar manutenção, testável • Menos custos de infraestrutura • Recursos adicionais • Oferecer essa solução como um serviço pago (SaaS)
  • Outros fatores • Equipe com conhecimento do negócio • Desenvolvedores experientes com plataforma Windows e .NET • Desejo de criar uma aplicação na plataforma Unix, preferencialmente utilizando Ruby on Rails
  • Opções • Refazer a Loja Pronta em .NET • Criar uma nova loja do zero em Ruby on Rails • Utilizar uma plataforma de Comércio Eletrônico já existente (Spree, Magento, OS Commerce)
  • Spree
  • Spree • Plataforma completa de Comércio Eletrônico em Ruby on Rails • Suporte a SEO e internacionalização • Projeto de código aberto (BSD License) • Um dos projetos mais forkados no Github • Extensível através das Spree Extensions
  • Transformação do Spree em WebStore
  • Spree Extensions
  • Locaweb Extension
  • Locaweb Extension
  • Locaweb Extension
  • Locaweb Extension • Uso de meios de pagamentos nacionais • Integração com Correios (cálculo de frete) • Alteração dos passos de checkout • Escolha de temas pré-definidos • Integração com sistemas da Locaweb • Outras melhorias
  • Locaweb Extension • Toda essa flexibilidade tem um preço • Maior esforço de análise e desenvolvimento • Necessário escrever uma quantidade maior de código • Uso massivo de metaprogramação em Ruby
  • Spree Extensions $ script/generate extension MinhaExtension
  • Spree Way
  • Spree Way
  • Locaweb Way
  • Locaweb Way
  • Locaweb Way
  • Locaweb Way
  • Locaweb Way
  • Gems e Plugins • Active Merchant • State Machine • Resource Controller • Authlogic • Paperclip • Outros
  • Prós do Spree • Grande parte do trabalho já está pronto • Comunidade desenvolvendo para Spree • Aprendizado com código de outras pessoas • Extensível sem ser intrusivo
  • Contras do Spree • Curva de aprendizado para entender o código • Tem poucos testes • Code smells (métodos longos, classes com mais de uma responsabilidade, etc) • Complexidade desnecessária em alguns pontos
  • Contras do Spree
  • Equipe e Ambiente de Trabalho
  • Equipe • Product Owner (PO) • Lider Técnico • Seis Desenvolvedores • Quality Assurance (QA) • User Experience (UX)
  • Equipe • Equipe inicial experiente em .NET • Consultoria da Caelum em Ruby on Rails • Inclusão de dois desenvolvedores com conhecimento em Ruby on Rails • Aprendizado em grupo (dojos, eventos, etc) • Muito investimento pessoal em estudo de cada integrante da equipe
  • Metodologias Ágeis • Inicialmente utilizamos Scrum • Atualmente uma variação de Kanban • Programação Extrema (XP) • Programação em pares a maior parte do tempo • Estações de pareamento
  • Programação Pareada
  • A importância de testes • Test-Driven Development (TDD) • Behavior-Driven Development (BDD) • RSpec + Cucumber • Atualmente PO e QA estão definindo testes de aceitação e casos de testes • QA aprova as histórias junto com PO
  • Ciclo BDD
  • Integração Contínua • Hudson (http://hudson-ci.org) • Git (http://git-scm.com) • RSpec (http://rspec.info) • Cucumber (http://cukes.info) • Metric_fu (http://metric-fu.rubyforge.org) • RPM (http://www.rpm.org)
  • Integração Contínua
  • Introdução ao “Mundo do Software Livre”
  • Introdução ao “Mundo do Software Livre” • Maior parte da equipe nunca havia se envolvido com um projeto de código aberto • A equipe tinha uma expectativa que os mantenedores oferecessem soluções para nossos problemas • Mas então a equipe entendeu que o processo é o inverso
  • Introdução ao “Mundo do Software Livre”
  • O que vem pela frente
  • Contribuições em extensions • Correios (cálculo de frete) • Meios de pagamentos nacionais • Proposta para melhorar a maneira de organizar código de extensions
  • Contribuições diretas no Spree • Traduções para português • Correções de bugs • Customização de layout com temas • Cálculo de frete no carrinho de compras, antes de informar dados de usuário
  • Checkout no Spree
  • Checkout no Spree
  • Checkout no Spree
  • Checkout no Spree
  • Checkout no Spree
  • Checkout no Spree
  • Checkout no Spree
  • Checkout no Spree
  • Checkout na WebStore
  • Checkout na WebStore
  • Checkout na WebStore
  • Checkout na WebStore
  • Checkout na WebStore
  • Perguntas
  • + Transformando código aberto em um projeto comercial http://www.locaweb.com.br http://spreecommerce.com Fernando Hamasaki de Amorim a.k.a. Prodis http://prodis.pro.br http://twitter.com/prodis