私が何かを書くとき、労力の半分は、明確で簡潔なデバッグ出力、またはデバッグが必要なときに有効/無効にできる機能を追加することに費やされる傾向があります。
デバッグ機能の例はダウンローダ クラスです。#define をオンにすると、ファイルをダウンロードするふりをして、既に持っているファイルを単純に返すことができます。そうすれば、毎回ネットワークがファイルを物理的に取得するのを待つことなく、ユーザーがファイルをダウンロードしたときに何が起こるかをテストできます。これは素晴らしい機能ですが、#ifdefs を使用するとコードが煩雑になります。
私は最終的に次#define
のような一連の s になります
// #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 について話しているだけではありません。上記のふりダウンロードのようなものについても話しているのです。