3

問題の説明:

1 人の開発者として、私はこれに何度か遭遇しまし
た。プロジェクトでは、よりクリーンなアプローチを選択する代わりに、効率的な理由から、運用コード内に簡単で汚いテスト コードを追加することが理にかなっている場合があります。

汚い解決策のように聞こえるかもしれませんが、何かをすばやくチェックしたいときに、とにかく捨てるべきテストコードについて話しているだけであることを覚えておいてください。

このコードを再度取り出すことを 100% 確実にするために、コンパイル時の時限爆弾で保護したいと思います: つまり
、コードの一部、プリプロセッサ コード、または特定の期間のコンパイルを可能にする基本的なものです。たとえば、30 分のような時間 (30 分) が過ぎると、自動的にコンパイラ エラーが発生します。コンパイラ エラーは、テスト コードの場所を直接マークできるため、非常に便利です。(たとえば、そのような使い捨て領域内の最初の行として使用できます)

したがって、「システム時間がこの特定の DateTime よりも大きい場合にエラーをスローする」のようなものは素晴らしいでしょう。

プリプロセッサを調べましたが (あまり詳しくありません)、#if と #error のディレクティブはオプションのようには見えませんでした。これは、#if が式ではなくシンボルを想定しているためです。

質問:

そのような時限爆弾は可能ですか?それを行う方法について何か考えはありますか?
または、迅速で汚れたテストコードの効率を高め、それを再び取り出すことを絶対に忘れないようにする方法についてのアイデアはありますか?

(実行時エラーは簡単ですが、コンパイル時エラーが不可能な場合は、それと同様の品質のものが必要になります。)

4

2 に答える 2

0

1 つのオプションは、ビルド時に「現在の時刻」変数を持つファイルを生成し、コードが特定の時間後に動作を停止する必要があることを確認するだけでなく、追加することです。

ビルド時にファイルを生成するための可能なアプローチ - ビルド時に計算された値を RESX に入れる方法 C#

于 2013-07-26T23:54:13.173 に答える