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



ноября 16, 2007 в 5:31 pm
Наверное, этот пост больше подходит для какого-нибудь тематического форума, чем для этого блога
ноября 16, 2007 в 7:31 pm
2 dimat: Этот блог и задумывался как программистский, а не "трепалський"
И именно из таких постов и должен состоять этот блог, а не из постов о тяжелой жизни работодателей.
2 zeroreturn: К своему стыду, толком с аспектно-ориентированным программированием не знаком
Так что и ответа не знаю.
ноября 16, 2007 в 11:43 pm
Я имел в виду, что пост по своей сути является вопросом а не какой-то информацией, с которой интересно ознакомиться.
ноября 17, 2007 в 12:06 am
dimat
первая часть --- информация
вторая --- вопрос.
а два твоих коммента --- флуд, неинтересно --- не читай.
декабря 1, 2007 в 2:44 pm
2Виталий Бондарь:
Ничё тут стыдного нет, я, как и многие другие, тоже не знаком с этой темой. Просто чтоб разобраться со всеми технологиями в программировании не хватит и жизни, поэтому приходится по ходу дела разбираться с тем, на чём можно деньги заработать.
декабря 1, 2007 в 3:54 pm
Вообще тема АОП сейчас весьма спорная. АОП хорошо работает для логирования и для деклатирвных транзакций (Spring AOP, Declarative Transaction Management). В то же время мы отргебли серьозных проблем, когда у нас аспект стал проверять перед выполнением метода есть ли у пользователя права выполнить этот метод.