警告は才能ではない


この短くて甘い意見ポストでは、私は狂った男性がコンパイラーまたはlinter警告(少なくとも私が正直である)と生活することに内在する危険に関して怒るでしょう.

警告灯


再構築で可視化されたプロジェクトのビルド警告
私は30年以上にわたってプログラミングをしてきたし、私はあなたにこのようにそれを置くことができます-私は新しい(私に)レガシープロジェクトを開いた回数と警告なしでそれを構築すると、おそらく単一の手に合う可能性があります.
これはなぜですか.
私の車にはタイヤの圧力が少し似ていると思う.車はよく走ります、タイヤはとてもよく見えます、しかし、チェックして、タイヤの圧力期待を再調整するために車のオンボードコンピュータに言っているにもかかわらず、それを取っても、光はとどまります.
時間をかけて、私はこの通常の操作の一部として、この黄色の光をフィルタアウトする傾向があります.
コードで同じことをします.それが成功からビルドを止めないならば、我々は警告を無視する傾向があります.

なぜ、我々は気にかけますか?


この危険性は、もちろん、無視する既存の警告を持つことで、新しい警告がプレーンサイトに隠すことができます.
私の車は完璧な例です-それはちょうど良い動作している間、それが突然空気圧の問題を開発する場合、私は私のタイヤが顕著にフラットになるまで気づくつもりはない.
同様に、問題のトラブルシューティングに忙しく、コンパイラやリンターが何かを指摘しようとしていますが、それはノイズで失われます.これは、少なくとも10回私に個人的に起こりました.

我々はそれを得る。あなたは警告が好きではありません。何?


それで、我々はこれについて何をすることができますか?
実際に警告を読んで起動します.
私は知っている、それは新しい概念ですが、あなたが持っている警告の種類を見てする必要があります.あなたは、タイプごとの警告の数を見て、最初に最も多数の最も厳しいものに対処しなければなりません.
変更を加えるたびに、コンパイラ/linterに小さな警告のグループを無視するように指示するか、(静粛に)実行するようにしてください.
あなたは時間の15分のブロックにも対処することができますどのように多くの警告で驚かれることでしょう.場合によっては、検索と警告を理解しても、あなたが知っていなかったプログラミングとショアアップの脆弱性についての新しいことを教えるでしょう.

ちょうど警告を言う


あなたがその切望された0警告レベルに到達したら、私はあなたが深い端から飛び降り、さらに一歩踏み出すことをお勧めします.
コンパイラのエラーをビルドエラーとして扱います.
オーケー、私に物を投げてください.説明しましょう.
0警告に達すると、新しいコンパイラやリピート警告を導入した場合、ビルドを失敗させることによって、より高くなるのを止めることができます.
あなたがこれをするならば、警告が存在するならば、それは即座にそれを導入して、無視されることができない開発者に意味があります.
これは開発者マシンで明示的にビルドする必要がないことに注意してください.通常の開発中に行うよりもCGI/CDビルドパイプラインでより厳密なプロセスを使用することができます.

警告をエラーとして扱う


この実装の詳細は言語によって異なりますが、カバーしましょう.ネットとJavaScript/typescriptは、それが私が最も多くについて書く傾向がある時からです:
フォー.NETビルドは、Visual Studioで、ビルドタブの個々のプロジェクトの設定に移動し、アクティブなビルドプロファイルの警告の処理を変更できます.

JavaScriptとTypesScriptで、それはあなたが何を使用しているかに依存するつもりですlinting , しかし、それは非常に人気があるので、私はあなたがeslintを使用していると仮定しますgone into it in depth 前に.
Elintを使用すると、LINTの設定を変更することにより、ルールレベルでのルール処理を構成できます.
例えば、私が治療したいならmax-lines 警告としての代わりに違反のエラーとしての分析規則、私は以下のような何かを書きます
"rules": {
  "max-lines": ["error", {"max": 200, "skipBlankLines": true}]
}
あなたは、新しい警告に遭遇し、追加するたびに同じようなアプローチを取ることができますerror LINT設定でのレベルルール.

閉鎖


だから、警告はあなたを殺すことはありませんが、彼らは時間をかけて品質のソフトウェアを維持する上で貴重なツールです.
あなたが過去の警告に対処するか、エラーがあなた次第であるように、新しい警告を扱うかどうか.
私の主な訓戒はこれです:あなたのコードがあなたに何かを伝えようとしているので、あなたはあなたのアプリケーションの各々の、そして、あらゆる警告の用具である必要があります.
我々が警告を装飾の装飾的な部分として扱うのを止めるならば、我々は止まることができて、我々のコードが我々に話して、我々全員が望むものをしようとしているものを聞くことができます:より良いソフトウェアをより速く届けます.
郵便Warnings are not Pieces of Flair 最初に現れたKill All Defects .