comparação entre frameworks web Ágeis
DESCRIPTION
Comparação entreFrameworks WebÁgeis(Saulo Arruda / Agence )TRANSCRIPT
agileframeworksComparativo entre frameworks ágeis open-source
1domingo, 21 de setembro de 2008
Agenda• Apresentação
• Entendendo Desenvolvimento Ágil
• Apresentando os Frameworks• Ruby on Rails
• Python Django
• PHP Symfony
• Groovy on Rails
• Tabela Comparativa
• Conclusões
2domingo, 21 de setembro de 2008
Apresentação
• Saulo Arruda (sauloarruda.eti.br)
• Quase especialista em MPS
• Gerente de Produção da Agence
• Desenvolvedor há 10 anos
• Instrutor do SENAC/MS
• Membro do JUG-MS (jugms.com.br)
3domingo, 21 de setembro de 2008
Desenvolvimento de Software
4domingo, 21 de setembro de 2008
Engenharia de Software5domingo, 21 de setembro de 2008
Fábrica de Software6domingo, 21 de setembro de 2008
Desenvolvendo7domingo, 21 de setembro de 2008
Convivência...8domingo, 21 de setembro de 2008
Documentação...9domingo, 21 de setembro de 2008
Negociação...10domingo, 21 de setembro de 2008
Planos...11domingo, 21 de setembro de 2008
Desenvolvimento Ágil12domingo, 21 de setembro de 2008
Desenvolvimento Ágil
13domingo, 21 de setembro de 2008
Desenvolvimento ÁgilComo desenvolver com sucesso?
13domingo, 21 de setembro de 2008
Desenvolvimento Ágil
Manifesto para o Desenvolvimento Ágil de Software
“Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar: * Indivíduos e interação entre eles mais que processos e ferramentas; * Software em funcionamento mais que documentação abrangente; * Colaboração com o cliente mais que negociação de contratos; * Responder a mudanças mais que seguir um plano. Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.”
agilemanifesto.org
Como desenvolver com sucesso?
13domingo, 21 de setembro de 2008
Sucesso == Pessoas14domingo, 21 de setembro de 2008
Agile Frameworks
• Ruby On Rails
• Python Django
• PHP Symfony
• Groovy On Rails (Java)
15domingo, 21 de setembro de 2008
Características
• Padrão M-V-C
• Produtividade
• Fácil de Aprender ;)
• DRY & CoC
• Prazer e Satisfação!
16domingo, 21 de setembro de 2008
• 2004 - David Heinemeier Hansson
• Linguagem Ruby (The Ruby Way)
• Rápida popularização
• Versão 2.1
Ruby On Rails
17domingo, 21 de setembro de 2008
• 2007 - Agence
• Websites (CMS)
• Sistemas de médio porte: Gestão Operacional e de Treinamentos, Campanhas de Incentivo, Sistema de Pedidos e Exportação.
Ruby On Rails
18domingo, 21 de setembro de 2008
Ruby On Rails
• Prós
• Excelente ferramental
• Boa documentação
• Boa adesão do mercado
• Fácil de Aprender
19domingo, 21 de setembro de 2008
Ruby On Rails
• Contras
• Performance e escalabilidade
• Compatibilidade de versões
• Código ou banco de dados legado
• Problemas com Threads
20domingo, 21 de setembro de 2008
Python Django
• 2003 - CMS de um agitado Jornal Lawrence.com
• Framework Web para perfeccionistas com prazo
• Mais qualidade e menos código
21domingo, 21 de setembro de 2008
Python Django
• 2007 - Agence
• Sistemas com prazo muito curto
• Controle de Qualidade (TIM), Vendas Diretas (Toyota), Indexação e Pesquisa (IGuinho).
22domingo, 21 de setembro de 2008
Python Django
• Prós
• Performance e Escalabilidade
• Interface de administração automática
• Menos linhas de código
23domingo, 21 de setembro de 2008
Python Django
• Contras
• Maior dificuldade de aprendizado
• Pouca documentação em PT_BR
• Baixa adesão do mercado
24domingo, 21 de setembro de 2008
PHP Symfony
• 2005 - Sensio
• PHP realmente OO
• Alta disponibilidade de profissionais PHP no mercado
25domingo, 21 de setembro de 2008
PHP Symfony
• Prós
• Excelente Portabilidade
• Aproveita conhecimento em PHP
• Uso das bibliotecas PEAR
• Boa geração de código
26domingo, 21 de setembro de 2008
PHP Symfony
• Contras
• Performance e escalabilidade
• Pouca maturidade
• Limitações da linguagem PHP
• Pouca adoção e documentação
27domingo, 21 de setembro de 2008
Groovy On Rails
• 2006 - G2One
• Performance e escalabilidade para Rails
• Groovy é uma linguagem dinâmica para Java
• Disponibilidade de Profissionais Java no mercado
28domingo, 21 de setembro de 2008
Groovy On Rails
• Prós
• Java JVM
• Ferramental Java
• Facilidade de Uso
• Aproveita conhecimento em Java
29domingo, 21 de setembro de 2008
Groovy On Rails
• Contras
• Carência de Documentação
• Dificuldade para hospedagem
• Pouca maturidade
• Baixa adoção pelo mercado
30domingo, 21 de setembro de 2008
Comparações
• Critérios:
• Com base na experiência na Agence
• Benchmarks disponíveis na Internet
• Consulta à Bola de Cristal
• ATENÇÃO: A tabela a seguir não deve ser usada como referência em trabalhos científicos
31domingo, 21 de setembro de 2008
Linguagem
Perfor-mance Verbosidade Recursos
Popularida-de
Rails
Django
Symfony
Grails
32domingo, 21 de setembro de 2008
Desenvolvimento
Aprendiza-do Testabilidade
Manutenibi-lidade
Produtivi-dade
Rails
Django
Symfony
Grails
33domingo, 21 de setembro de 2008
Performance
Escalabilida-de
Tempo de Resposta Estabilidade
Portabilida-de
Rails
Django
Symfony
Grails
34domingo, 21 de setembro de 2008
Mercado
AdoçãoDocumen-
taçãoComunida-
deHospeda-
gem
Rails
Django
Symfony
Grails
35domingo, 21 de setembro de 2008
Conclusões36domingo, 21 de setembro de 2008
Acabou!37domingo, 21 de setembro de 2008
Contatos
• Saulo Arruda
• E-mail: [email protected]
• Blog: www.sauloarruda.eti.br
• Agence (www.agence.com.br)
• JUG-MS (www.jugms.com.br)
• SENAC/MS (www.ms.senac.br)
38domingo, 21 de setembro de 2008
Licença
Você pode:
Sob as seguintes condições:
copiar, distribuir, exibir e executar a obra
criar obras derivadas
Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante.
39domingo, 21 de setembro de 2008
Referências HUNT, Andy; e SUBRAMANIAN, Venkat; Pratices of an Agile Developer – Work in the Real World, 1a. Edição, 2006: The Pragmatic Bookshelf.THOMAS, Dave; Programming Ruby – The Pragmatic Programmer’s Guide, 2a. Edição, 2006: The Pragmatic Bookshelf.SUBRAMANIAN, Venkat; Programming Groovy: Dynamic Productivity for the Java Developer, 1a. Edição; 2008: The Pragmatic Bookshelf.HOLOVATY, Adrian; KAPLAN-MOSS , Jacob; The Django Book; Versão 1.0. Disponível em http://www.djangobook.com/en/1.0/POTENCIER, Fabien; ZANINOTTO, Fraçois; The Definitive Guide to symfony; 2007: Apress; Disponível em http://www.symfony-project.org/book/1_2/.MADHAV; Framework Performance, Disponível em: http://wiki.rubyonrails.org/rails/pages/Framework+Performance.ASTER, Alex; The Performance test of 6 leading frameworks, Disponível em http://www.alrond.com/en/2007/jan/25/performance-test-of-6-leading-frameworks/.NENE, Dhananjay; Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy, Disponível em http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/Gentoo: Intel Pentium 4; Computer Language Benchmarks Game, Disponível em http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
40domingo, 21 de setembro de 2008
FotosTodas as fotos são distribuídas sob licença CreativeCommons. Atribuições por ordem de aparição:Nerd big por borgmarcLego house por Paty LeahyOld picture por coleydudeCollege fight por Carlos VillelaKill Fuck por eNixDocumentation por DoberdadJedi, Norwescon 30 por djwudiParker Brand Project Pad Full Shot por oranparkerScary Tiger por jerkylickerPlaying Computer por scottparteeMonkey Shines por Stuck in CustomsPizza - hot from oven - vegan garlic sauce por sean drellinger
41domingo, 21 de setembro de 2008