O que vi na QCon 2012 São Paulo

  • 396 views
Uploaded on

Ismael Soares apresenta o que viu na QCon 2012, que se deu em São Paulo nos dias 4 e 5 de Agosto.

Ismael Soares apresenta o que viu na QCon 2012, que se deu em São Paulo nos dias 4 e 5 de Agosto.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
396
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. Por Ismael Soares
  • 2. 1º Dia
  • 3. Key Notes
  • 4. Design de Software no Século 21
  • 5. 3 apresentações em 1* Os Desafios do Desenvolvimento Mobile* NoSQL* Projeto de Software
  • 6. Projeto de SoftwareReal necessidade de se fazer um projeto desoftware“Precisamos abrir mão da qualidade paraentregar mais na próxima release...”Gerentes de projetos
  • 7. Projeto de Software“Empurrar o design é um pecado e que todasas variáveis que indicam isso deveriam ir parao inferno”Uncle Bob
  • 8. Fogo do Inferno Ágil
  • 9. Projeto de Software Software com ótimo design custa caro! Temos que aceitar algumas dívidas, desde que elas valham a pena. Toda Dívida tem juros... Não seja imprudente! Paga a sua dívida o mais rápido possível!
  • 10. o ! teir aloC
  • 11. Performance e Tolerância a Falhas no NetFlix Ben Christensen
  • 12. Atualmente...- O NetFlix recebe mais de 1 bilhão de requisões pordia.- Estas requisições são processadas por dezenas desistemas internos.- Como a API do NetFlix suporta diferentes tipos dedispositivos e ainda permite que os fabricantesotimizem de acordo com suas necessidades.
  • 13. Merchandising...
  • 14. Tracks
  • 15. Métodos Ágeis: o quefolclore e o que real? Mauricio Aniche
  • 16. Amar demais um método pode ser umproblema...Precisamos ver as coisas como elasrealmente são!
  • 17. Estudos e pesquisasNão podemos acreditar em tudo quedizem por ai... De 1996 trabalhos, só 36 possuem rigor científico (Dyba,T., Dingsoyr,T. Empirical studies of agile software development: A systematic review)
  • 18. • Grande parte dos estudos feitos com XP (76%);• Single-Case (39%) e Multiple-Case (33%)• 73% dos estudos com iniciantes em agile; só 12% com times maduros;• 73% dos estudos com profissionais; (Dyba,T., Dingsoyr,T. Empirical studies of agile software development: A systematic review)
  • 19. Sem TDD,seu código não terá qualidade
  • 20. “... a prática de TDD não guia odesenvolvedor para um bom projeto declasses de forma automática” Aniche, Gerosa. Como a Prática de TDD Influencia o Projeto de Classes em Sistemas Orientados a Objetos: Padrões de Feedback para o Desenvolvedor. 2012
  • 21. Quando o Aniche não usaTDD...- Já tem bem claro o projeto da classeque ele está trabalhando;-É código que lida com infraestrutura
  • 22. Quando o Aniche não usaTDD...- Já tem bem claro o projeto da classeque ele está trabalhando;-É código que lida com infraestrutura Mas ele testa sempre!
  • 23. Programação em Par é obrigatório?
  • 24. Quando usar PP- tarefas complexas;- Há conhecimento para sercompartilhado.
  • 25. Quando não usar PP- tarefa simples e não conhecimentopara ser compartilhado;- tarefas de estudo.
  • 26. Documentação não serve para nada!
  • 27. Várias formas de documentar- através de conversas;- através de UML (mesmo caipira);- desenhos que o time criou durante oplanejamento;- etc.
  • 28. Correlação e Causahttp://www.slideshare.net/mauricioaniche/mtodos-geis-o-que-folclore-e-o-que-real-qcon- sp-2012
  • 29. Kanban: aplicando melhoria contínua ao seu processo Rodrigo Yoshima
  • 30. Complexo e complicadoVocê só sabe se esta certo seexperimentar. Não dá para ter certezascom antecedência.
  • 31. Método Kanban- Comece como você está hoje- Visualize seu progresso- Melhore colaborativamente com técnicas científicas- Gerêncie o fluxo- Torne o processo explícito
  • 32. Porque mudanças são tão difíceis?- CULTURA- MEDO- RISCO- CONTROLE- RESISTÊNCIA EMOCIONAL as pessoas resistem ser mudadas
  • 33. “Mude. Mas mude devagar,porque a direção é maisimportante que a velocidade.”Clarisse Lispector
  • 34. http://www.slideshare.net/rodrigoy/kanban-aplicando-tdd-melhoria-contnua-do-seu-processo
  • 35. http://www.slideshare.net/rodrigoy/kanban-aplicando-tdd-melhoria-contnua-do-seu-processo
  • 36. http://www.slideshare.net/rodrigoy/kanban-aplicando-tdd-melhoria-contnua-do-seu-processo
  • 37. Visualização do Kanban
  • 38. http://www.slideshare.net/rodrigoy/kanban-aplicando-tdd-melhoria-contnua-do-seu-processo
  • 39. Almoço
  • 40. Construindo um avião em pleno Vôo Matheus Rossato
  • 41. Empresa que trabalha com mineração de dados,Caso de sucesso na personalização de E-commerce Chaordic com base no modelo Trabalham de ser viços SaaS
  • 42. DesafioConstruir uma plataforma elástica,escalável e disponível na Nuvem daAmazon
  • 43. Lições aprendidas- Itere rapidamente e em pequenos passos- Observe o que funciona- Debugue em produção- Mude com frequência- Aprenda a falhar e quebrar as coisas- Integração contínua ajuda evitar problemas- Cloud pode viabilizar seus negócios
  • 44. Mega Scrum: Escalando o Scrum passo a passo Marden Neubert
  • 45. Caso de estudo: UOLProjeto de missão crítica (Pague Seguro) quesofreu atrasos e precisou mudar a gestão.Veio o crescimento que trouxe um enormebacklog.
  • 46. Crescimento do time- Melhorar a comunicação;- Garantir o retorno do investimento;- Organizar os times por backlog independentes;- Priorizar por temas;- Vários times uma só equipe.
  • 47. Lições- Inclua novos Membros nos times produtivos;- Retire pessoas produtivas e forme outros times;- Não crie times só com pessoas novas;- Em time que esta ganhando e que e mexe;- Troque os membros constantemente;- Crie processos criteriosos de contratação; - Use desenvolvedores nas entrevistas de contratação; - O time da o feedback para novos integrantes.
  • 48. Mega Scrum- Sprints de 3 semanas para ajudar a sincronizar astarefas;- Ambientes de homologação;- Deploy automático;- Mega planning com líderes técnicos P.O.- Mega Stand-up (reunião diária) com a equipe- Reevew e retrospectiva por equipe- Pré planning (planning dos próximos realeses)- Mega retrospectiva a cada 6 meses (identificarproblemas comuns entre as equipes e discutir soluções)- Knowlogde Sharing
  • 49. 2º Dia
  • 50. Key Notes
  • 51. Para o infinito e além (Nasa) Tom Soderstrom
  • 52. Apresentação- Imagens de Marte- Missões deste ano- Robô que foi para Marte semanapassada
  • 53. Mitos acerca de Cloud Não é Seguro! Não é Confiável!
  • 54. Alguns cuidados- Suba as coisas por etapa começando pelo menosimportante;- Redunde os dados;- Use criptografia- Não guarde as chaves no Cloud- Load Balance (várias zonas) do for importante- Utilize backup automatizado e teste os backups- Faça contratos
  • 55. Escalando o GitHub Zach Holman
  • 56. Início...-> 4 Fases (Local, Networked, Network e GitRPC) - começou com Grit; - tiveram que refazê-lo para suportar o crescimento;
  • 57. Networked - problemas com distribuição em rede - mudaram servidores - alteraram a implementação para distribuição em rede mas com a aplicação local (Grit) - latência muito grande - em resumo fizeram uma escalação horizontal
  • 58. Network - problemas duplicação de dados no fork; - alto custo para manter os dados; - resolveram fazendo shard, mantendo os dados do projeto principal armazenado em outro lugar e os forks passaram a ser apenas ponteiros.
  • 59. GitRPC - problemas com código bagunçado; - criaram uma implementação para acessar o Git via rede; - diminuiu a latência; - Cache Logic; - ainda estão migrando aos poucos.
  • 60. Empresa Feliz - 108 funcionários a 5 anos  e ninguém nunca saiu; - diminua o motivo das saídas ; - uma pessoa que sai custa caro, porque uma pessoa novademora para começar a agregar valor; - as pessoas trabalham da maneira que eles gostam. Boaparte trabalha remotamente aonde quiserem; - escolhem seu horário de trabalho, ferias, etc. - as pessoas trabalham a vontade sem stress.
  • 61. Tracks
  • 62. Responsive Web Design Eduardo Shiota
  • 63. Conteúdo- início do HTML em 1992- uso de Design na Web- CSS Zen Garden (site)- aumento do uso de dispositivos móveis- como suportar todos os dispositivos sem ter re-trabalho?- The Boston Globe foi o primeiro site a usar RWD- Técnicas para ter um design flexível sem fixar ostamanhos
  • 64. Hibernate Efetivo: erros comuns e soluções Rafael Ponte
  • 65. Lazy Initialization- ocorre quando sessão é fechada antes de terminaro acesso aos dados;- Não faça Eager, pois trará problemas deperformance;- Pattern Open Session In View ajuda quandousamos uma mesma request.
  • 66. Cache- cache de primeiro nível;- cada request tem uma session, causando muitasconsultas. Configure o cache de segundo nível;- Caching Strategy (ehCache)- cache 2nd não guarda hierarquias complexas;- use o cache 2nd apenas para entidades que nãoalteram com frequência;- cache de consulta (Query Cache), onde a chave éa consulta + os parâmetros.
  • 67. N+1- Eager + Join Fetch- busca em lote (Batch size) é meio termo entre oEager e Lazy, porque faz uma adivinhação cega, umchute;- subselect.
  • 68. Processamento em lote - a cada entidade inserida na memória, o Hibernate cria um foto e coloca no cache de primeiro nível;- StatelessSession (session de baixo nível) não usacache; - Configurar o bach size no hibernate para ir menosvezes ao banco.
  • 69. Almoço
  • 70. Arquitetura Facebook Rodrigo Schmidt
  • 71. Arquitetura Open Graph, é uma forma facilitar a integração entre páginas da web e o próprio facebook. Nas palavras deles, usando o Open Graph, você pode fazer qualquer página se comportar - 955 milhões de usuários como um objeto do - grafo das conexões sociais facebook, com direito a analytics e tudo. - esquema de metadados Open Graph (http://www.modelomental.com.br/web-semantica/conhecendo-o-facebook-open-graph-protocol) - MySQL (tabelas particionadas) - tabelas simples com poucos índices e os dados são armazenados em um array (Blob) - usam Mencache - multi-get (trazer tudo em paralelo) - Preparable - compilador foi feito em C por deficiência do PHP
  • 72. Java EE Vs SpringNico Steppat e Guilherme Moreira
  • 73. http://www.slideshare.net/gui0rafa/spring-vs-java-ee-qconsp-2012
  • 74. Java EE - lutador experiente - mudou a tática no Java EE 5 - ganhou confiança com CDI - perdeu peso para ser ágil - patrocinado pela Oracle, Red Hat, IBM and outros
  • 75. Spring Framework - sem derrota desde 2004 - nocauteou o J2EE - luta em qualquer container - golpes fortes com POJOs - sabe explorar bem seu oponente - patrocinado pela Spring Source
  • 76. Estatísticas http://www.slideshare.net/gui0rafa/spring-vs-java-ee-qconsp-2012
  • 77. Resultado http://www.slideshare.net/gui0rafa/spring-vs-java-ee-qconsp-2012
  • 78. Referências
  • 79. Martin Fowler: http://www.martinfowler.com/articles/multiMobile/Netflix: https://speakerdeck.com/u/benjchristensen/p/performance-and-fault-tolerance-for-the-netflix-api-qcon-sao-pauloMauricio Aniche: http://www.slideshare.net/mauricioaniche/mtodos-geis-o-que-folclore-e-o-que-real-qcon-sp-2012Rodrigo Yoshima: http://www.slideshare.net/rodrigoy/kanban-aplicando-tdd-melhoria-contnua-do-seu-processoMatheus Rossato: http://www.slideshare.net/matheusrossato/qconsp-2012-construindo-um-avio-em-pleno-vo-na-nuvem
  • 80. Nasa: http://prezi.com/5pt5hgflj3ah/to-infinity-and-beyond/?auth_key=4433faf57961988041cfd419c2c27f9aaf579ad4GitHub: http://zachholman.com/talk/how-to-build-a-githubRafael Ponte: http://www.slideshare.net/rponte/hibernate-efetivo-qconsp2012Caelum: http://www.slideshare.net/gui0rafa/spring-vs-java-ee-qconsp-2012
  • 81. OBRIGADO