O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Frameworks de Produtividade

1.435 visualizações

Publicada em

Palestra sobre frameworks integradores e mecanismos de produtividade.

Publicada em: Software

Frameworks de Produtividade

  1. 1. Frameworks Integradores Simplicidade e Produtividade no Desenvolvimento de Aplicações Marco Aurélio S. Mendes marco@arkhi.com.br Arkhi Consultoria e Treinamento Palestra Apresentada em Agosto de 2014 no Simpósio Mineiro de Engenharia de Software da PUC Minas
  2. 2. Frameworks Integradores •Conceituação de Frameworks •Requisitos de Frameworks •Frameworks Integradores
  3. 3. Não existe estratégia única, técnica ou truque que irá aumentar exponencialmente a produtividade de desenvolvedores. (Frederik Brooks, 1975)
  4. 4. FOWLER, M. Design Stamina Hypothesis. A armadilha da ausência no desenho em sistemas de software.
  5. 5. Componente Biblioteca Frameworks Aplicação Existente Aplicação “Empacotada” Catálogo Método de Desenvolvimento Modelo de Referência Idioms Padrão de Desenho Padrão Arquitetural Estilo Arquitetural Mecanismo Arquitetural Decisão Arquitetural Arquitetura de Referência EELES, P.; CRIPPS, P. The Process of Software Architecting. Ativos de Produtividade da Indústria de Software
  6. 6. Frameworks – O nosso escopo neste seminário O Que são? Aceleradores do desenho, desenvolvimento ou testes Fornecem partes de uma arquitetura Possuem pontos de extensão
  7. 7. Frameworks Serviços prontos. Padronização do trabalho. Redução da flexibilidade. Curva de aprendizado pode ser complexa. Devem evoluir com a tecnologia.
  8. 8. Ativo •Artefato retido ao final de um projeto. Ativo Robusto •Bem documentado; •Generalizado além das necessidades de um projeto •Rigorosamente testado •Muitos exemplos de uso Ativo Reusável •É um ativo robusto •Usado em pelo menos 3 projetos distintos •Utilizado por pelo menos 3 equipes distintas AMBLER, S.; NALBONE, J.; VIZDOS, M. J. The Enterprise Unified Process: Extending the Rational Unified Process. Maturidade de um ativo estratégico de reuso
  9. 9. Frameworks maduros requerem Equipe Marketing e Comunicação Comunidade Suporte e Documentação Treinamento e Apoio Estrutura Financeira
  10. 10. Requisitos técnicos de frameworks MVC ORM Roteamento simplificado Scafflolding Templates nas páginas Padronização W3C Padronização i18n, L10n Segurança Suporte OO Suporte linguagens funcionais Testes de unidade REST Práticas ágeis: KISS, CoC, DRY
  11. 11. Exemplo no Brasil: Demoiselle demoiselle.sourceforge.net
  12. 12. Característica Demoiselle* Financiamento próprio com patrocínio independentes ✔ Número de desenvolvedores envolvidos Mais de 30 pessoas Participação de comunidade ✔ Documentação e manuais ✔ Treinamento e suporte ✔ Uso do modelo de programação Java EE 6 ✔
  13. 13. Exemplo: Evolução Java EE
  14. 14. Exemplo: Evolução Java EE
  15. 15. Exemplo Java EE Aplicações Java EE 6 usam frameworks REST, MVC e ORM para eliminar tarefas estruturais e reduzir código
  16. 16. Classificação de Frameworks Frameworks Integradores Modular Monolítico Não Integradores Macro Modular Monolítico Micro (<5K) Ref.: Classificação de Steven Sanderson
  17. 17. Frameworklocal MVC Frameworklocal ORM Frameworklocal TDD Frameworklocal AJAX
  18. 18. FrameworksIntegradores MVC ORM AJAX ...
  19. 19. Padrão Arquitetural MVC Model View Controller
  20. 20. MVC - Vantagens Isolamento da lógica de negócio da visualização Múltiplas interfaces Posssibilita TDD Variações: • MVP (Model View Presenter) • MVVM (Model View View-Model) • HMVC (Hierarichal MVC)
  21. 21. ORM Mapeamento Objeto Relacional Aplicação OO Código de mapeamento ORM Framework ORM Banco de Dados
  22. 22. ORM – Vantagens e Desvantagens Portabilidade de banco de dados. Cache de objetos. Redução de código escrito. Curva de aprendizado. Ocultação do SQL pode dificultar ajustes de desempenho.
  23. 23. Padrões Web: AJAX, HTML e CSS
  24. 24. Frameworks Integradores fazem uso de scaffolding Técnica de geração estática ou dinâmica de código a partir de modelos Geração de código de persistência, controladores e visões. Automatizam partes simples de uma aplicação. (cadastros)
  25. 25. Exemplos de Frameworks Integradores Spring MVC Ruby on Rails Grails Play Framework Cake PHP Django
  26. 26. Tendências de Frameworks Integradores Google Trends (Agosto/2014)
  27. 27. Spring MVC http://projects.spring.io/spring-framework/
  28. 28. Grails/Groovy “on Rails” https://grails.org
  29. 29. Play Framework (Scala/Java) http://playframework.com
  30. 30. Ruby on Rails http://rubyonrails.org
  31. 31. O tsunami JavaScript para Frameworks Integradores Ref. Technology Radar, Thought Works, 2014
  32. 32. 50 Tons de JavaScript Mundo JS Bibliotecas de componente s Frameworks MVVM Servidores Testes de Unidade Gerenciador es de Pacotes Layouts responsivos Linguagens de script IDEs
  33. 33. Bibliotecas de Componentes JS
  34. 34. Frameworks MVVM JS
  35. 35. Servidores de Aplicação JS
  36. 36. Testes de Unidade JS
  37. 37. IDEs JS
  38. 38. Gerenciadores de Pacotes JS
  39. 39. Frameworks CSS
  40. 40. Linguagens de Script JS
  41. 41. Kendo-UI “Train yourself to let go of everyting you fear to lose” – Yoda
  42. 42. Frameworks Integradores - Conclusões Alternativas de produtividade. Fornecem abstrações sobre as plataformas dominantes JavaEE e .NET Fornecem uma terceira via de desenvolvimento.

×