Как избежать беспорядка с отладочными материалами в коде

Когда я что-то пишу, половина усилий уходит на добавление четких и кратких отладочных данных или функциональных возможностей , которые можно включить / отключить, когда что-то требует отладки.

Примером функции отладки является класс загрузчика, в котором я могу включить #define, который заставляет его «делать вид, что загружает» файл и просто возвращать мне тот, который у меня уже есть. Таким образом, я могу проверить, что происходит, когда пользователь загружает файл, не дожидаясь, пока сеть физически захватит файл каждый раз. Это отличная функциональность, но код становится более запутанным с #ifdefs.

В конечном итоге я получаю кучу #define , таких как

// #define DEBUG_FOOMODULE_FOO
// #define DEBUG_BARMODULE_THINGAMAJIG
// ...

, которые раскомментированы для того, что я хочу смотреть на. Сам код выглядит примерно так

- (void)something
{
    #ifdef DEBUG_FOOMODULE_FOO
    DebugLog(@"something [x = %@]", x);
    #endif
    // ...
    #ifdef DEBUG_FOOMODULE_MOO
    // etc
}

Это отлично подходит для написания / сопровождения кода, но ничего не делает для внешнего вида кода.

В любом случае, как люди могут легко и без усилий писать "материал" для долгосрочной отладки?

Примечание: Я говорю не только о NSLogging здесь ... Я также говорю о таких вещах, как pretend-download выше.

6
задан Martin Wickman 29 July 2011 в 12:29
поделиться