Когда-то, несколько лет назад, я писал отладочный лог в проге и подумал, что эти отладочные выводы необоснованно загромождают код.
Я подумал, что было бы неплохо описывать отладочный вывод где-то вне кода. С использованием какого-нибудь упрощённого паттерн-матчинга для AST, чтобы можно было писать что-нибудь вроде «в функции foo() вставить отладочный вывод значения переменной bar до и после каждого вызова baz()». А дальше какая-нибудь утилита при компиляции брала бы исходник и вставляла в него отладочный вывод в соответствии с этой инструкцией.
Оказывается, то, что о чём я мечтал, было придумано ранее и громко названо Аспектно-Ориентированным Программированием.
Вопрос: зачем так пафосно?
Перемещено tailgunner из development