ZehFirino 0 Denunciar post Postado Maio 11, 2007 OláAlguem conhece, trabalha ou ja trabalhou com Programação Orientada a Aspectos?Estava estudando sobre ela mas não entendi muito bem... Vi que é bastante utilizada em Java e que facilita em alguns pontos a programação em grandes sistemas.Alguem teria uma opinião para me passar, ou algum tutorial bacana para me passar?Um abraço Compartilhar este post Link para o post Compartilhar em outros sites
LeoLoko 0 Denunciar post Postado Maio 12, 2007 Bom, o que eu sei é, que ela supri aquilo que a orientação a objetos tem como ponto fraco... Facilitando ainda mais o desenvolvimento.Agora, creio que se deve dominar OOP para partir para AOP. Compartilhar este post Link para o post Compartilhar em outros sites
MagicalTrevor 0 Denunciar post Postado Maio 12, 2007 "Pesquisas tem apontado muitos problemas de programação que nem linguagens procedurais nem as orientadas a objetos possuem técnicas suficientemente claras para implementar algumas decisões de projeto. Isto força a implementação destas decisões de projeto a serem espalhadas através do código gerando um código confuso e difícil de desenvolver e manter. Estas decisões de projeto são difíceis de capturar porque elas atravessam as funcionalidades básicas do sistema, ou seja, não é possível separa-la em um componente ou uma classe, pois ela "pertence" a todo sistema.Neste sentido nasceu a AOP, com o intuito de apresentar técnicas de programação capazes de cobrir estas falhas. A programação orientada a aspectos permite aos programadores separar os interesses comuns do sistema (comportamentos que fogem a típica divisão de responsabilidade, como o logging), introduzindo o conceito de aspectos, os quais encapsulam comportamentos que afetam múltiplas classes.Esses comportamentos não encaixam naturalmente dentro de um modulo de um programa, ou em vários módulos de programas fortemente relacionados. Os pioneiros da programação orientada a aspectos chamam este tipo de comportamento de crosscutting porque ele atravessa a divisão de responsabilidades dos modelos de programação tradicionais.Na programação orientada a objetos a unidade natural de modularização é a classe, e um crosscutting é uma responsabilidade que está espalhada por muitas classes. Exemplos típico seria o tratamento de erros em contexto sensitivo, otimização de performance, e padrões de projeto.Trabalhar com código que apontam para responsabilidades que atravessam o sistema gera problemas que resultam da falta de modularidade. Devido a implementação desses comportamentos serem espalhados, os desenvolvedores podem encontrar dificuldades em analisar, implementar e modificar tais comportamentos. Por exemplo, o código de logging é entrelaçado ao longo de outros códigos que não estão relacionados com logging.Dependendo da complexidade e do escopo onde é inserido essa responsabilidade pode resultar em um código confuso que dependendo do local pode ter maiores ou menores implicações. A mudança de uma política de logging de uma aplicação pode envolver centenas de modificações, o que aumenta muito a quantidade de código a ser tratada, é o pior esse código vai estar espalhado em vários lugares.AOP complementa a programação orientada a objeto por facilitar um outro tipo de modularidade que expande a implementação espalhada de uma responsabilidade dentro de uma simples unidade. Esta unidade é chamada de aspecto, daí o nome programação orientada a aspectos. Os interesses tornam-se fáceis de tratar porque estão concentrados no código de aspectos e afetaram todas as unidades desejadas.Os aspectos de um sistema podem ser alterados, inseridos ou removidos em tempo de compilação, e freqüentemente reusados. Por estarem em um único bloco de código a manutenção é muito mais fácil e a complexidade do sistema diminui, facilitando o entendimento do mesmo. Uma implementação básica de AOP consiste em : uma linguagem de componente para programar os componentes, uma ou mais linguagem de aspectos para programar os aspectos, um weaver para combinar as duas linguagens, um programa de componentes e um ou mais programa de aspectos.A linguagem de componentes pode ser qualquer linguagem de programação, já a de aspectos deve ser uma especifica para facilitar a programação. O weaver seria uma espécie de montador que tem como entrada o programa de componentes e o(s) programa(s) de aspectos e como saída uma programa numa linguagem específica(C, C++, Java...)." Compartilhar este post Link para o post Compartilhar em outros sites
LeoLoko 0 Denunciar post Postado Maio 12, 2007 Eita pleura... Se eu já acho orientação a objetos um pouco complexa... isso daí então deve de dukapeta!!!Será que teria um exemplo prático pra gente poder entender melhor? Compartilhar este post Link para o post Compartilhar em outros sites
ZehFirino 0 Denunciar post Postado Maio 12, 2007 Encontrei um site de um Brasileiro que inventou o Transparent PHP, que é uma implementação de uma classe para Orientação Orientada a Aspectos para o PHP. http://blog.bisna.com/aop/Manual.html Levando esse fato em consideração, pode-se dizer que existe uma forma de implementar AOP sem ser uma linguagem especifica. No texto que o MagicalTrevor deixou, ele disse que o Login poderia ser implementado dessa forma e, pelo que entendi, seria que o aspecto teria todo o trabalho de verificar o login, não tendo nada de verificação dentro do código. Seria isso?? se sim, como isso funcionaria? como obteria os dados do sistema? Bah... isso ainda ta confuso pra mim Valew Compartilhar este post Link para o post Compartilhar em outros sites