Я программист на C ++, но я думаю, что моя техника может быть легко реализована на C # или любом другом языке:
У меня есть макрос ToDo(msg)
, который расширяется до создания статического объекта в локальной области видимости, конструктор которого выводит сообщение журнала. Таким образом, при первом выполнении незавершенного кода в выводе журнала появляется напоминание о том, что я больше не могу откладывать задачу.
Это выглядит так:
class ToDo_helper
{
public:
ToDo_helper(const std::string& msg, const char* file, int line)
{
std::string header(79, '*');
Log(LOG_WARNING) << header << '\n'
<< " TO DO:\n"
<< " Task: " << msg << '\n'
<< " File: " << file << '\n'
<< " Line: " << line << '\n'
<< header;
}
};
#define TODO_HELPER_2(X, file, line) \
static Error::ToDo_helper tdh##line(X, file, line)
#define TODO_HELPER_1(X, file, line) TODO_HELPER_2(X, file, line)
#define ToDo(X) TODO_HELPER_1(X, __FILE__, __LINE__)
... и вы используете это так:
void some_unfinished_business() {
ToDo("Take care of unfinished business");
}