Keep it simple, stupid!
シンプルにしておけ!この間抜け!
“Keep it simple, stupid” の頭文字をとって、KISS原則です。
コードを書くときには、複雑でわかりにくいコードにせず、シンプルでわかりやすいコードを書くようにしよう、という設計原則。
プログラミングでもっとも重要な原則といえるでしょう。プログラミングのあらゆる問題の8割はこれで解決します。決していいすぎではありません。
どんなときに使える?
シンプルにできることに気づいていない
やったー!プログラム完成しましたよー
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;
すっっごく分かりにくい…
中堅プログラマーあたりだと、プログラミングも慣れてきて、いろいろなテクニックを身に着けます。こうなると、テクニックを駆使してトリッキーなコードを書きがち。
上の例は、変数aのビットパターンを反転した結果を変数cに格納する。というプログラム。
…ぱっと見て分からない。
こういうのは、たとえ正しく動いたとしても、あとでメンテナンスができなくなります。
シンプルとは「人の目からみてシンプルにみえる」こと。
考え方の基準としては「半年後の自分がみて、理解できるコードになっているか」。これを客観的に考えましょう。
まとめ
シンブルにすること、は、きっとすべてのプログラマーが理解しているはず。
それでもこのKISS原則があるのは、何がシンプルなのかを考え続けるのが大事、だから。
全力でシンプルを追い求めましょう。
コメント