KISS原則 とは?
ペンギン先生、KISS原則って何?キスと関係あるの?
「Keep It Simple, Stupid」の略で、「シンプルにしておけ、バカ者!」っていう意味だよ。設計やコードをできるだけ単純に保つべきっていう原則なんだ。ちょっと乱暴な表現だけど、それだけ「シンプルさ」が大事だっていう強いメッセージなんだよ。
でもシンプルだと機能が少なくならない?
「シンプル」は「機能が少ない」とは違うんだ。必要な機能を、できるだけ分かりやすく、余計な複雑さなしに実現すること。たとえば3行で書ける処理を、将来の拡張のために50行のフレームワークにする必要はないでしょ?
あー、やりすぎちゃうってことか。
そう、「オーバーエンジニアリング」って呼ぶんだけど、これがKISS原則の天敵なんだ。「いつか必要になるかも」と思って作った複雑な仕組みは、大体使われないまま保守コストだけ増やすんだよ。
具体的にはどんな場面で意識すればいいの?
日常的なところだと、関数は1つの仕事だけさせる、変数名は意味がわかるものにする、条件分岐は浅く保つ、みたいなことだね。コードを書いた後に「これ、もっとシンプルに書けないかな?」って自問する癖をつけるのが一番効果的だよ。
ベテランエンジニアでもKISS原則を破っちゃうことはあるの?
むしろベテランほど要注意だよ。技術力があるぶん「もっとエレガントに書ける」「デザインパターンを適用しよう」と複雑にしがちなんだ。本当に優れたエンジニアは、複雑な問題をシンプルな解決策に落とし込める人。アインシュタインも「できるだけシンプルに、しかしシンプルすぎないように」って言ってるよ。
シンプルにするのが一番難しいんだね!
そのとおり。パスカルも「短い手紙を書く時間がなかったので長い手紙を書きました」って名言を残してるよね。シンプルさは手抜きじゃなくて、深く考えた結果たどり着くものなんだ。