Boas práticas de programação com Object Calisthenics
Desafios no e-commerce brasileiro
1. desafios no
e-commerce brasileiro
Gabriel Benz - @glbenz Paulo César M Jeveaux - @jeveaux
gabriel.benz@giran.com.br paulo.jeveaux@giran.com.br
segunda-feira, 13 de setembro de 2010
2. O que é um e-commerce?
http://www.flickr.com/photos/twilight/542907809
segunda-feira, 13 de setembro de 2010
3. até o 1º semestre de 2010...
... 20 mi ++ de brasileiros já compraram
... 86% dos consumidores satisfeitos
... crescimento de 40%
... faturamento no ano R$6,5 bi++
previsão para 2010 ...
... faturamento de R$14 bi ++
fonte: ebit
segunda-feira, 13 de setembro de 2010
4. • 20.000++ clientes
• E-commerce entre os mais rápidos do
Brasil, segundo o ebit
• ClubeW: 5.000++ associados
• 5.000++ pedidos processados por hora!
segunda-feira, 13 de setembro de 2010
5. • 20.000++ clientes
• E-commerce entre os mais rápidos do
Brasil, segundo o ebit
• ClubeW: 5.000++ associados
• 5.000++ pedidos processados por hora!
segunda-feira, 13 de setembro de 2010
6. • 20.000++ clientes
• E-commerce entre os mais rápidos do
Brasil, segundo o ebit
• ClubeW: 5.000++ associados
• 5.000++ pedidos processados por hora!
gerados +
cobrados +
integrados
segunda-feira, 13 de setembro de 2010
7. Gabriel Lorenzoni Benz
@glbenz
(Mercedes-Benz, como vai? tudo benz? ParaBenz!... )
Tudo Benz?
http://www.flickr.com/photos/picsbycam/4667506445
segunda-feira, 13 de setembro de 2010
8. Paulo César Machado Jeveaux
@jeveaux (jéve, jêve, jevô, jevú, jevax, já foi, já vou, já vai ...)
jevô
que
vergonha
segunda-feira, 13 de setembro de 2010
18. alugar
?
criar comprar
segunda-feira, 13 de setembro de 2010
19. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
investimento
equipe de
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
20. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
investimento
equipe de
SaaS
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
21. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
investimento
equipe de
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
22. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
investimento com
equipe de
pr ar
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
23. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
investimento
equipe de
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
24. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
investimento
criar
equipe de
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
25. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
investimento
equipe de
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
26. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
e-co
mme
investimento
platf rce
orm
equipe de
recursos
desenvolvimento
experiência com
e-commerce
-
segunda-feira, 13 de setembro de 2010
+
fonte: http://www.slideshare.net/Elasticpath/the-new-ecommerce-dilemma-buy-build-or-leverage
27. onde você
quer chegar?
do que o seu negócio precisa?
segunda-feira, 13 de setembro de 2010
28. elasticpath
platform
segunda-feira, 13 de setembro de 2010
30. storefront
(loja)
fonte: http://docs.elasticpath.com/display/EP60DEPLOY/Overview
segunda-feira, 13 de setembro de 2010
31. commerce
server
search
server
storefront
(loja)
fonte: http://docs.elasticpath.com/display/EP60DEPLOY/Overview
segunda-feira, 13 de setembro de 2010
32. commerce
server
search
server
storefront commerce
(loja) manager
(client)
fonte: http://docs.elasticpath.com/display/EP60DEPLOY/Overview
segunda-feira, 13 de setembro de 2010
33. commerce
servercore
search
core
servercore
storefront commerce
(loja) manager
(client)
core
fonte: http://docs.elasticpath.com/display/EP60DEPLOY/Overview
segunda-feira, 13 de setembro de 2010
34. construído com frameworks
‘consagrados’
Spring
OpenJPA
Solr
DWR
Quartz
EHCache
Drools
Velocity
Acegi
Eclipse RCP
segunda-feira, 13 de setembro de 2010
35. construído com frameworks
‘consagrados’
Spring
OpenJPA
Solr
DWR
Quartz
EHCache
Drools
Velocity
Acegi
Eclipse RCP suporte
pago
opcional
segunda-feira, 13 de setembro de 2010
36. construído com frameworks
‘consagrados’
Spring
OpenJPA
Solr
DWR
Quartz
EHCache comunidade
Drools de devs e
Velocity clientes
Acegi
Eclipse RCP suporte
pago
opcional
segunda-feira, 13 de setembro de 2010
37. construído com frameworks
‘consagrados’
Spring
OpenJPA
documentação
Solr atualizada e
DWR aberta
Quartz
EHCache comunidade
Drools de devs e
Velocity clientes
Acegi
Eclipse RCP suporte
pago
opcional
segunda-feira, 13 de setembro de 2010
38. construído com frameworks 2000+
‘consagrados’ unit tests
Spring
OpenJPA
documentação
Solr atualizada e
DWR aberta
Quartz
EHCache comunidade
Drools de devs e
Velocity clientes
Acegi
Eclipse RCP suporte
pago
opcional
segunda-feira, 13 de setembro de 2010
39. vendor
lock-in
segunda-feira, 13 de setembro de 2010
40. no
vendor
lock-in
segunda-feira, 13 de setembro de 2010
41. vendor
todo código fonte entregue:
lock-in
é seu!
segunda-feira, 13 de setembro de 2010
42. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
A plataforma (framework)
adquirida ajuda! Mas não e-co
mme
resolve todos os plat rce
form
problemas
segunda-feira, 13 de setembro de 2010
43. complexidade
exclusividade
requisitos
integrações
urgência
estratégia
- +
A plataforma (framework)
adquirida ajuda! Mas não e-co
mme
resolve todos os plat rce
form
problemas
segunda-feira, 13 de setembro de 2010
44. começamos a trabalhar :)
http://www.flickr.com/photos/timpatterson/2110002918
segunda-feira, 13 de setembro de 2010
46. saber o que mudar
conhecer a arquitetura
e organização
segurança para
modificar
conhecimento
técnico ajuda
segunda-feira, 13 de setembro de 2010
47. suporte
saber o que mudar e comunidade
foram diferenciais
aqui
conhecer a arquitetura
e organização
segurança para
modificar
conhecimento
técnico ajuda
segunda-feira, 13 de setembro de 2010
48. suporte
saber o que mudar e comunidade
foram diferenciais
aqui
conhecer a arquitetura
e organização ea
documentação
aqui
segurança para
modificar
conhecimento
técnico ajuda
segunda-feira, 13 de setembro de 2010
49. suporte
saber o que mudar e comunidade
foram diferenciais
aqui
conhecer a arquitetura
e organização ea
documentação
aqui
segurança para
modificar
e os testes aqui! conhecimento
técnico ajuda
segunda-feira, 13 de setembro de 2010
50. Adaptando!
cobrança e entrega
boleto
visual
revista
segunda-feira, 13 de setembro de 2010
51. em análise cancelado
aguardando
?
ação
em progresso
enviado
finalizado! ?
parcialmente
cancelado
segunda-feira, 13 de setembro de 2010
52. em análise cancelado
aguardando
?
ação
em progresso
enviado
finalizado! ?
parcialmente
cancelado
segunda-feira, 13 de setembro de 2010
53. em análise cancelado
aguardando
?
ação
boleto!
em progresso
enviado
finalizado! ?
parcialmente
cancelado
segunda-feira, 13 de setembro de 2010
54. em análise cancelado
aguardando
?
ação
boleto!
em progresso
enviado
finalizado! ?
parcialmente
cancelado
segunda-feira, 13 de setembro de 2010
55. em análise cancelado
aguardando
?
ação
cartão boleto!
em progresso
enviado
finalizado! ?
parcialmente
cancelado
segunda-feira, 13 de setembro de 2010
57. Interface com o usuário
++ Look and feel
++ Arquitetura da informação
++ Usabilidade
++ Simplicidade
segunda-feira, 13 de setembro de 2010
58. • primeira grande atualização
• view realmente desacoplada
• velocity!
segunda-feira, 13 de setembro de 2010
59. Pagamento offline
Instabilidade no checkout
Muitos SPOF no caminho
É proibido deixar de vender!
Mais ainda vender sem receber :)
http://www.flickr.com/photos/trekkyandy/2122316695
segunda-feira, 13 de setembro de 2010
60. • Aproveitando o ciclo de vida existente
• Todos os pedidos ficam “em progresso”
• Ninguém é cobrado, mas todo mundo
compra :)
• Quartz é o responsável por iniciar as
cobranças
segunda-feira, 13 de setembro de 2010
61. pagou?
pool de
cobrar ok
pedidos
não?
espera
X tempo
espera mais ou
cancela consulta
cobra de novo
segunda-feira, 13 de setembro de 2010
62. Novidades
clube de compras e vantagens
comentários em produtos
avaliação de produtos
rede de amigos http://www.flickr.com/photos/keribevan/4968632074/
recomendação
segunda-feira, 13 de setembro de 2010
63. ClubeW
Meta: Fidelizar Clientes!
Clientes X Clientes ClubeW
Processamento excessivo!
Como beneficiar?
segunda-feira, 13 de setembro de 2010
64. • Como funciona um clube?
• Como processar 5.000 pedidos de uma vez?
• Vai dar pra cobrar?
segunda-feira, 13 de setembro de 2010
65. carrinhos iniciados e
finalizados diretamente no
cache
• Como funciona um clube?
• Como processar 5.000 pedidos de uma vez?
• Vai dar pra cobrar?
segunda-feira, 13 de setembro de 2010
66. solr
#f tw
carrinhos iniciados e
finalizados diretamente no
cache
• Como funciona um clube?
• Como processar 5.000 pedidos de uma vez?
• Vai dar pra cobrar?
segunda-feira, 13 de setembro de 2010
67. • Diferenciar clientes e clientes do clube
• Como beneficiá-los?
• Implementação simplificada com JBoss
Drools
• E complicada no Eclipse RCP ;)
segunda-feira, 13 de setembro de 2010
68. • Diferenciar clientes e clientes do clube
• Como beneficiá-los?
• Implementação simplificada com JBoss
Drools
• E complicada no Eclipse RCP ;)
segunda-feira, 13 de setembro de 2010
70. Classificar também!
Gostou ou não?
Qual sua nota?
segunda-feira, 13 de setembro de 2010
71. • Novo relacionamento 1xN com produtos
• Comentários indexados no Solr
• E carregados apenas sob demanda
• Média estática
segunda-feira, 13 de setembro de 2010
74. ? *
• ERP: banco de dados
• TAM: WS SOAP
• Google: XML e JavaScript
• CRM: banco de dados
• Mail MKT: ?
• Pagamentos: WS SOAP e HTTP Post
segunda-feira, 13 de setembro de 2010
75. * ?
• WS SOAP
• REST
segunda-feira, 13 de setembro de 2010
76. Solr
maximizando muito mais do que relevância
segunda-feira, 13 de setembro de 2010
77. • 100% do catálogo indexado
• Navegação na loja direta nos índices
segunda-feira, 13 de setembro de 2010
78. out
of
box
• 100% do catálogo indexado
• Navegação na loja direta nos índices
segunda-feira, 13 de setembro de 2010
79. • Navegação no perfil do cliente também no
conteúdo indexado
• Comentários dos produtos indexados
• Possibilidade de uso até para o login
• Página do produto
segunda-feira, 13 de setembro de 2010
80. melh
oria
s
• Navegação no perfil do cliente também no
conteúdo indexado
• Comentários dos produtos indexados
• Possibilidade de uso até para o login
• Página do produto
segunda-feira, 13 de setembro de 2010
81. • Processamento do ClubeW
• Geração de carrinhos e pedidos
diretamente no Solr
• Possibilidade do Checkout no Solr também!
segunda-feira, 13 de setembro de 2010
82. solr
#ftw
• Processamento do ClubeW
• Geração de carrinhos e pedidos
diretamente no Solr
• Possibilidade do Checkout no Solr também!
segunda-feira, 13 de setembro de 2010
83. Tomcat
Afinal, salvador ou vilão?
segunda-feira, 13 de setembro de 2010
84. • Quantos conectores são iniciados?
• E qual o mínimo e máximo?
• Quantas threads por conector?
• Você ainda usa conectores bloqueantes?
segunda-feira, 13 de setembro de 2010
86. O que!? Só
aumentou XMS e XMX
da JVM?
NÃO!? NÃO SABE!?
segunda-feira, 13 de setembro de 2010
87. Apache
assets on the fly
segunda-feira, 13 de setembro de 2010
88. • Começou sendo usado com o mod_jk
• Servir imagens e outros conteúdos
estáticos
• E JavaScript com DWR!? Qual a saída?
segunda-feira, 13 de setembro de 2010
89. • Dificuldade para manter atualizados os
assets
• Build e deployment complicados
segunda-feira, 13 de setembro de 2010
90. Varnish
cache, tolerância à falhas e capacidade de
crescimento horizontal
segunda-feira, 13 de setembro de 2010
91. • reverse proxy
• Linha de frente poderosa!
• Apache sem mod_jk! Tornou-se apenas um
asset server - e de respeito
• Encapsulamento da arquitetura de
produção
segunda-feira, 13 de setembro de 2010
92. • URL rewriting - mod_jk nunca mais!
• Load balancing - mod_jk nunca mais!
• Manipulação do header HTTP
• cache!
segunda-feira, 13 de setembro de 2010
93. com isso conseguimos uma loja com:
3.500++ visitantes únicos por dia
~110.000 por mês
40.000++ pageviews por dia
~1.200.000 por mês
segunda-feira, 13 de setembro de 2010
94. 10.000++ compras mês
~300++ compras por dia
até 5.000 compras num dia
20.000++ clientes
arquitetura 100% Java que suporta o
crescimento e atualizações transparentes
segunda-feira, 13 de setembro de 2010
95. Referências
• http://www.wine.com.br
• http://www.ebit.com.br
• http://www.elasticpath.com
• http://docs.elasticpath.com
• http://www.elasticpath.com/platform/technology-stack/
• http://www.elasticpath.com/platform/performance/
• http://www.logicadigital.com.br/noticia46.asp
segunda-feira, 13 de setembro de 2010
97. desafios no
e-commerce brasileiro
Gabriel Benz - @glbenz Paulo César M Jeveaux - @jeveaux
gabriel.benz@giran.com.br paulo.jeveaux@giran.com.br
segunda-feira, 13 de setembro de 2010