Programação Orientada a Aspectos - PHPDay SERPRO Curitiba

3,267 views
3,165 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,267
On SlideShare
0
From Embeds
0
Number of Embeds
2,153
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Programação Orientada a Aspectos - PHPDay SERPRO Curitiba

  1. 1. Programa¸˜o Orientada a Aspectos ca Programa¸˜o Orientada a Aspectos ca Wesley Klewerton PHP-Day SERPRO Curitiba 01 de Junho de 2011
  2. 2. Programa¸˜o Orientada a Aspectos ca AgendaAgenda 1 Apresenta¸˜o ca 2 Introdu¸˜o ca 3 Interesses Transversais 4 Programa¸˜o Orientada a Aspectos (POA) ca 5 Mecanismos POA 6 E na pr´tica? a 7 Fim
  3. 3. Programa¸˜o Orientada a Aspectos ca Apresenta¸˜o caWesley Klewerton Short Bio Graduado em Sistemas de Informa¸˜o, 2 especializa¸˜es, ca co ˆ Mestrando em Inform´tica pela UFPR (Enfase em Engenharia de a Software - Teste de Software), desenvolvedor PHP desde 2004, colaborador do time de tradu¸˜o da documenta¸˜o do CakePHP, ca ca participante da tradu¸˜o do Ubuntu, e por ai vai... ca Contatos Email: wesleyklewerton@gmail.com Twitter: @wesleyklewerton Blog: www.wesleyk.com
  4. 4. Programa¸˜o Orientada a Aspectos ca Introdu¸˜o caEvolu¸˜o da Programa¸˜o ca ca
  5. 5. Programa¸˜o Orientada a Aspectos ca Introdu¸˜o caPrograma¸˜o Orientada a Objetos (POO) ca Vantagens Modelo de Neg´cios o Abstra¸˜o ca Encapsulamento Reuso de Componentes Padr˜es o Facilidade de Manuten¸˜o ca
  6. 6. Programa¸˜o Orientada a Aspectos ca Interesses TransversaisExemplo ilustrativo
  7. 7. Programa¸˜o Orientada a Aspectos ca Interesses TransversaisExemplo ilustrativo - Interesses Transversais
  8. 8. Programa¸˜o Orientada a Aspectos ca Interesses TransversaisExemplo ilustrativo - Interesses Transversais Sintomas N˜o s˜o tratados pelos mecanismos da POO a a Geram dois tipos de fenˆmenos: o Espalhamento Emaranhado Dificuldades Entendimento Reuso Manuten¸˜o ca Evolu¸˜o ca
  9. 9. Programa¸˜o Orientada a Aspectos ca Interesses TransversaisExemplo Real - Apache Tomcat XML parsing in org.apache.tomcat
  10. 10. Programa¸˜o Orientada a Aspectos ca Interesses TransversaisExemplo Real - Apache Tomcat Logging in org.apache.tomcat
  11. 11. Programa¸˜o Orientada a Aspectos ca Interesses TransversaisInteresses Transversais Onde s˜o encontrados? a Persistˆncia e Auditoria (logs) Controle de exce¸˜es co etc... Como podem ser otimizados? ???
  12. 12. Programa¸˜o Orientada a Aspectos ca Programa¸˜o Orientada a Aspectos (POA) caPrograma¸˜o Orientada a Aspectos (POA) ca Procura modularizar os interesses transversais em unidades chamadas de Aspectos. Surgir em 1997 no Xerox Palo Alto Research Center, laborat´rio de pesquisas da Xerox. o ´ E uma extens˜o da POO (c´digo base) com mecanismos para lidar a o com interesses transversais.
  13. 13. Programa¸˜o Orientada a Aspectos ca Programa¸˜o Orientada a Aspectos (POA) caExemplo ilustrativo - Interesses Transversais
  14. 14. Programa¸˜o Orientada a Aspectos ca Programa¸˜o Orientada a Aspectos (POA) caExemplo Ilustrativo - Aspectos Invers˜o das dependˆncias a e
  15. 15. Programa¸˜o Orientada a Aspectos ca Mecanismos POAMecanismos POA Joinpoints Instru¸˜es no fluxo do co programa: 1 Execu¸˜o de M´todo ca e 2 Acesso a atributo 3 Constru¸˜o de objeto ca 4 Controle de exce¸˜o ca 5 Destrui¸˜o de objeto ca
  16. 16. Programa¸˜o Orientada a Aspectos ca Mecanismos POAMecanismos POA Pointcuts Utiliza os Joinpoints para especificar pontos no programa onde ser´ introduzida determinada l´gica a o Wildcards (Coringas) * Todos existentes new *(*) + Todos com subclasses call(Book+->update(2)) || “ou”para combinar before JPa, JPb{...}
  17. 17. Programa¸˜o Orientada a Aspectos ca Mecanismos POAMecanismos POA Advices Introduz (injeta) c´digo nos Pointcuts o 3 tipos principais: Before Around After
  18. 18. Programa¸˜o Orientada a Aspectos ca Mecanismos POAMecanismos POA Inter-type Declaration Introduz membros em unidades(classes/aspectos) existentes Membros s˜o: a 1 Atributos 2 Constantes 3 M´todos e
  19. 19. Programa¸˜o Orientada a Aspectos ca Mecanismos POAMecanismos POA Waver Junta os aspectos com o c´digo base para gerar arquivos o unicos que forma o programa final funcional. ´
  20. 20. Programa¸˜o Orientada a Aspectos ca E na pr´tica? aE na pr´tica? a Como posso fazer isso funcionar?
  21. 21. Programa¸˜o Orientada a Aspectos ca E na pr´tica? aE na pr´tica? a APDT: Aspect PHP Developement Tools http://code.google.com/p/apdt/ Plugin para eclipse que oferece uma plataforma para POA com PHP. Integra as ferramentas de desenvolvimento PHP do eclipse (PDT) com a biblioteca PHPAspect e um PHPAspect Waver
  22. 22. Programa¸˜o Orientada a Aspectos ca E na pr´tica? aE na pr´tica? a
  23. 23. Programa¸˜o Orientada a Aspectos ca FimFim Perguntas?

×