Keep it simple, stupid!
シンプルにしておけ!この間抜け!
“Keep it simple, stupid” の頭文字をとって、KISS原則です。
コードを書くときには、複雑でわかりにくいコードにせず、シンプルでわかりやすいコードを書くようにしよう、という設計原則。
プログラミングでもっとも重要な原則といえるでしょう。プログラミングのあらゆる手法の根源にある思想です。決していいすぎではありません。
どんなときに使える?
プログラミンウのあらゆる局面で、これはちょっと複雑だな、と感じるとき。KISS原則を思い出しましょう。
シンプルにできることに気づいていない
もうちょっと、なんとかなるんじゃない?というシチュエーションは、よくありますね。
やったー!プログラム完成しましたよー
for(int index = 0; index < 4; ++index) {
switch(index) {
case 0:
funcA();
break;
case 1:
funcB();
break;
case 2:
funcC();
break;
default:
funcD();
}
}
なんか…むだに複雑じゃない?
単純に「もっと簡単にできるじゃん」のパターンです。
実は、こう書くのとまったく同じ。
funcA();
funcB();
funcC();
funcD();
これだけ見ると単純。ただ実際は、他の大量コードの中に混じり気づかないときもある。
これが起こるのは、
- ろくにプログラム設計していない
- 設計をろくにみていない
ようなとき。要は、いきあたりばったりで作ってる。
複雑になりそうな予兆があったら、立ち止まって設計をみなおしましょう。
シンプルをはき違えている
もうひとつあるのが、「シンプル」という意味を曲解しているシチュエーションです。
見てください!チョークールなコード書きましたよウェーーイ!
int a = 5;
int* b = &a;
int c = 0;
for (int i = 0; i < sizeof(int) * 8; i++) {
c |= ((*b >> i) & 1) << (sizeof(int) * 8 - 1 - i);
}
cout << c << endl;
すっっごく分かりにくい…
「ビットパターンを反転する」というプログラムなのですが…ぱっと見て分からない。
プログラミングに慣れてきた中堅プログラマーあたりだと、テクニックを駆使してトリッキーなコードを書きがち。
「短いコード」=「シンプルなコード」とはき違えてしまうのです。
こういうのは、たとえ正しく動いたとしても、あとでメンテナンス困難です。
シンプルとは「人の目からみてシンプルにみえる」こと。
考え方の良い基準はこれ。
まとめ
シンブルにすること、は、きっとすべてのプログラマーが理解しているはず。
それでもこのKISS原則があるのは、何がシンプルなのかを考え続けるのが大事、だから。
全力でシンプルを追い求めましょう。
コメント