Django: Uso de frameworks ágeis para desenvolvimento web

422 visualizações

Publicada em

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
422
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Falar da minha experiencia com Python
  • Falar da minha experiencia com Django
  • Google usa Python como uma das suas linguagens internas de programação
    Esri: ArgGIS usa como linguagem de script
    NASA WAS (Workflow Automation System) Gestao de fluxo de informacoes para desenvolvimento de missoes do Onibus espacial
    Frequentis Tower and Airport Tools = Controle de luzes de pista e condicoes meteorologicas
    ILM usa Python para controlar o workflow de processamento gráfico e como linguagem de script
  • Django: Uso de frameworks ágeis para desenvolvimento web

    1. 1. Aumentando a produtividade Uso de frameworks ágeis para desenvolvimento web Miguel Galves
    2. 2. 48 horas entre início e instalação no cliente Projeto Haiti Haiti - Minustah
    3. 3. Python  Linguagem script, criada no final dos anos 80  Multiplataforma  Multiparadigma (OO, Funcional, Procedural)  Sintaxe limpa e concisa  Binding para diversas linguagens  Extensível em C
    4. 4. Django  Criado em 2003 como projeto interno do Lawrence Journal  Objetivo: permitir a criação de novas funcionalidades em curtos espaços de tempo  Open Source desde 2005  Comunidade Ativa  http://www.djangoproject.com
    5. 5. “THE WEB FRAMEWORK FOR PERFECTIONISTS WITH DEADLINES” O que realmente interessa no Django...
    6. 6. Porque Django em vez de J2EE para desenvolvimento Web? SIMPLICIDADE
    7. 7. J2EE  Enterprise JavaBeans Specification (EJB),  Java Persistence API (JPA),  JavaServer Pages Specification (JSP),  Java Servlet Specification,  JavaServer Faces (JSF),  JavaServer Pages Standard Tag Library (JSTL),  JDBC API,  Java Naming and Directory Interface Specification (JNDI),  Java Message Service (JMS),  Java Transaction API (JTA),  Java Transaction Service (JTS),  JavaMail API Specification,  JavaBeans Activation Framework Specification (JAF),  J2EE Connector Architecture,  Java API for XML Processing (JAXP),  Java Authentication and Authorization Service (JAAS), Version 1.0  Java Authorization Service Provider Contract for Containers(JACC)  Web Services for Java EE  Java API for XML-based RPC (JAX-RPC)  Java API for XML Registries (JAXR)  Java Management Extensions  Java Platform, Enterprise Edition Management Specification  Java Platform, Enterprise Edition Deployment Specification  Java API for XML-based Web Services (JAX-WS)  Java Architecture for XML Binding (JAXB)  SOAP with Attachments API for Java (SAAJ)  Web Services Metadata for the Java Platform  Streaming API for XML (StAX)
    8. 8. J2EE foca em blocos estruturais grandes e complexos, tentando resolver problemas que talvez não existam!
    9. 9. Django: DRY (Don't Repeat Yourself)  Foco na automação de tarefas  Arquivos de configuração em … Python  Criação automática de interfaces de Administração  ORM  Templates  Mecanismo de autenticação / perfil de usuários  Hot deploy (que realmente funciona)  Ambiente de testes integrado  Plugins: paginação, sitemaps, email, visualização de dados, RSS, i18n, l10n, redirecionamento, serialização, cache
    10. 10. Django foca em fornecer ferramentas que impactam diretamente na produtividade de desenvolvimento.
    11. 11. Confiabilidade? Robustez? Escalabilidade?
    12. 12. Python é uma linguagem séria e confiável?  Yahoo!  Google  CERN  NASA  Atech  ILM  Autodesk  Frequentis  ESRI
    13. 13. Django é confiável e robusto? Servidor de aplicações por trás do Google Apps Engine  Versão gratuita permite até 5M de pageviews por mês.... Washington Post  8.5M pageviews por mês
    14. 14. Escalabilidade  O framework sozinho não resolve  Projeto hardware e arquitetura de SW  Django oferece ferramentas que ajudam a escrever aplicações escaláveis  Cache, suporte a múltiplas bases de dados  Django permite integração de diversas ferramentas externas comprovadas, que podem ser adicionadas conforme a necessidade.  Não impacta o dia a dia de desenvolvimento
    15. 15. Exemplo de Setup de Produção  Cache em memória: Memcache  Facebook, Flickr, Twitter, Youtube, LiveJournal, Wikipedia  HTTP: Apache  Market Share: 54% (NetCraft)  Balanceamento de carga  Arquivos estático: Nginx  Utilizado por 4% dos sites mais acessados em 2010.
    16. 16. Linguagens Dinâmicas vs Java Python (Django) Ruby (Ruby On Rails) Scala (Lift) Groovy (Grails)
    17. 17. Contras Performance de execução Python/Ruby: sem tipagem estática  Ferramentas de refactoring menos eficientes  Leitura de código as vezes mais complicada Mão de obra menos abundante Envolvem paradigmas e conceitos avançados
    18. 18. Prós  Mais concisas, mais expressivas  Mesmas funcionalidades, menos código  Menos código => maior facilidade de manutenção  Menos código => maior produtividade (5x)  Mais poderosas  Introspecção  Metaprogramação
    19. 19. Prós – Produtividade Ciclo padrão de desenvolvimento Java Ciclo padrão de desenvolvimento linguagens dinâmicas
    20. 20. Integrando o melhor dos mundos  Plataforma Java  Máquina virtual extremamente eficiente  JIT  API Extensa  Oracle/Sun abriu as portas para linguagens de script para JVM
    21. 21. Integrando o melhor dos mundos Jython, JRuby  Interpretadores que rodam na JVM, permitindo acesso direto à APIs Java Scala, Groovy  Linguagens desenvolvidas para serem executadas na JVM
    22. 22. Conclusão? Cada tarefa requer ferramentas apropriadas. Estamos refletindo sobre isso quando desenvolvemos nossos projetos?
    23. 23. Dúvidas? Sugestões? Críticas? Obrigado

    ×