Как стать автором
Обновить

Комментарии 9

Можно еще было попробовать удаленную отладку, если есть два компьютера. Тогда потери фокуса не будет.
Да это хорошая идея.

К сожалению, второго компьютера в тот момент не было. И не решаются проблемы в случае отсутствия исходников. В случае с Java, отладка с JD-декомпилятором всё равно неудобна, потому что сбиваются номера строк. А так — можно жить, ведь фильтрация происходит не по номерам строк, а по сигнатурам.
А на время отладки отключить схлопывание при потере фокуса — не вариант?
В моей практике был еще один похожий случай применения АОП. В институте для выполнения лабы использовал библиотеку apache-commons-math, а меня попросили предоставить результаты по шагам. Аспект легко собрал нужные данные с каждой итерации и мне оставалось лишь красиво их преподнести.
Похоже, в вашем случае пригодился бы BTrace (удобно использовать соответствующий плагин для VisualVM).
Он тоже позволяет запускать что-то вроде аспектов, но не требует компиляции, рестарта и всего такого.

netbeans.dzone.com/articles/debugging-netbeans-with-visualvm-and-btrace?page=0,2
Спасибо огромное, обязательно посмотрю! Судя по описанию, там реализовано как раз то, что мне захотелось сделать…

Но в этот раз, к счастью, беда позади. Кстати, в выводе статьи я всё же погорячился, что надеюсь на полезность этого метода для хабражителей — на самом деле никому я такого не желаю. Лучше пусть у вас до то такой тяжелой артиллерии дело не доходит.
Даже после прочтения этой статьи не понял, что такое АОП, и чем оно отличается от декораторов, например.
Возможности по фильтровке необходимых вызовов у AOP очень впечатляющие.
Мне показалось, что статья наполнена описанием замечательных возможностей платформы, перехват вызовов, динамическое вплетение и прочие вкусности. По-моему, с ассемблером можно проделывать трюки поинтереснее, но никто же не говорит, что программирует на ассемблере в аспектно-ориентированной парадигме.
По ссылкам, которые приведены в статье есть базовая информация про АОП.

Насколько я могу судить, отличие от декораторов в том, что с АОП можно «декорировать» даже приватные члены. Плюс к этому, можно перехватывать обращение к полям и их модификацию.

Но самое важное, АОП — это не платформа для перехвата вызовов. Это прежде всего парадигма программирования, когда мы работаем с логикой, а потом дополнительные аспекты подключаем динамически. Логирование — это, пожалуй, самый распространенный пример применения АОП, почти как HelloWorld. Здесь же то же логирование, только особенное. Моя цель была — рассказать, что можно эту штуку применять и для вклинивания в чужой код.

Ну а насчет ассемблера — никто не мешает вам написать обертку для программы на С, которая будет перехватывать вызовы и добавлять полезный функционал. И это будет АОП. Вопрос тут уже в цене.
Кажется, я наконец-то понял, что такое АОП.
… мы работаем с логикой, а потом дополнительные аспекты подключаем динамически.
Иногда десяток слов стоит тысячи ссылок.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации