Хочу обратить внимание на интересную делаль, которая только что пришла мне в голову :)
Она очевидна, но я почему то раньше не задумывался о ней. АОП, это конечно удобно, разделение концепций и все такое. Но.
Если у компонента куча перехватчиков --- это может быть дополнительным источником ошибок, причем труднопонимаемых. К примеру, есть операция foo(), которая вызывается в методе бизнес-класса Bar. Есть некий аспект, который до или после вызова Bar.foo() выполяет какую-то невероятную цепочку вызовов, один из которых вызывает другой метод бизнес-класса Bar, нарушая при этом инвариант уровня всего класса Bar.
Такая ситуация вполне возможна если кода в проекте много.

Кто сталкивался с АОП в aspectj или др. реализациях, как бы вы защитили класс Bar на уровне кода от нарушения инварианта?

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
* * *     1 голосов

6 Комментариев на “Потенциальная хрупкость программ АОП”

  1. dimat сказал:

    Наверное, этот пост больше подходит для какого-нибудь тематического форума, чем для этого блога

  2. Виталий Бондарь сказал:

    2 dimat: Этот блог и задумывался как программистский, а не "трепалський" :)
    И именно из таких постов и должен состоять этот блог, а не из постов о тяжелой жизни работодателей.

    2 zeroreturn: К своему стыду, толком с аспектно-ориентированным программированием не знаком :( Так что и ответа не знаю.

  3. dimat сказал:

    Я имел в виду, что пост по своей сути является вопросом а не какой-то информацией, с которой интересно ознакомиться.

  4. zeroreturn сказал:

    dimat
    первая часть --- информация
    вторая --- вопрос.
    а два твоих коммента --- флуд, неинтересно --- не читай.

  5. Влад сказал:

    2Виталий Бондарь:
    Ничё тут стыдного нет, я, как и многие другие, тоже не знаком с этой темой. Просто чтоб разобраться со всеми технологиями в программировании не хватит и жизни, поэтому приходится по ходу дела разбираться с тем, на чём можно деньги заработать.

  6. Руслан Пилин сказал:

    Вообще тема АОП сейчас весьма спорная. АОП хорошо работает для логирования и для деклатирвных транзакций (Spring AOP, Declarative Transaction Management). В то же время мы отргебли серьозных проблем, когда у нас аспект стал проверять перед выполнением метода есть ли у пользователя права выполнить этот метод.





Оставте свое мнение