KISS原則~プログラムは、シンプルでさえあればいい

kiss-principle
KISS原則

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原則があるのは、何がシンプルなのかを考え続けるのが大事、だから。

全力でシンプルを追い求めましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次