
warning: unused variable ‘yagni’
警告:未使用変数 ‘yagni’
[-Wunused-variable]
■1.この行を削ろう
/* 削除開始 */ ⇦ コメントを追加しないで
// 削除: int unused_variable ; ⇦この行を削ろう
/*削除終了*/ ⇦ コメントを追加しないで
/* 削除開始 */と/*削除終了*/のコメントで
2行増やさず未使用変数の1行を削りましょう。
■2.未使用変数は単に削除しよう
static int dry ;
void org(void)
{
int kiss ;
int yagni = 0 ;
static int dry ;
}
不要な変数はどんどんコードから削除しましょう。
不要な物がなくなるとそれだけコードの見晴らしが良くなります。
いつか使うかもと大事に残しておく人も多いですが、
経験的に不要変数が後で役に立つ事はありません。
この警告は不要変数を削除するだけでアルゴリズムの修正は無いので比較的簡単に修正できます。自分で作ったプログラムでは必ず対応しましょう。
ごく稀に年代物のプログラムの不要変数が
メモリ破壊系バグの衝突吸収剤の役割を果たしている事があります。
このため不要変数の削除と言えどもリファクタリングの後の試験は必要です。
■3.古いコードを残すのは止めよう
void ng(void)
{
/*静的解析ツール対策 開始
int kiss ;
*静的解析ツール対策 終了 */
/*コンパイラ警告対策 START */
/* int yagni = 0 ;
/* コンパイラ警告対策 END */
//#if 1
//static int dry ;
//#endif
}
本来コンパイラや静的解析ツールの警告に従い
不要コードを削除すると
コードは綺麗になりますが、
上記のような修正をするとコードはどんどん汚れてしまいます。
これは掃除をすればするほど部屋が汚れていくようなもので
何のために掃除をしているのか分からなくなります。
不要な変数を削除しないでこのようにコードを残す修正は絶対にしてはいけません。
またこのような修正履歴コメントには、
コンパイラ警告対策 とか
静的解析ツール対策 とか
まるでゴジラを迎え撃つ自衛隊のような
”~~対策”のコメントがよくありますが、
コンパイラを敵視したり、
コンパイラと喧嘩するのは止めて
コンパイラをうまく使いましょう。
参考:
YAGNI とは、機能は実際に必要となるまでは追加しないのがよいとする、エクストリーム・プログラミングにおける原則である。
https://ja.wikipedia.org/wiki/YAGNI