プリンシプル

プリンシプル KISSの原則

Keep it simple stupid. (シンプルに保て。)というフレーズがある。

コードを書くときは、これが最優先である。新しく書くか、変更かは関係ない。常に、シンプルに保つべきである。

これを意識しないとどうなるだろうか。コードにその場しのぎの無理やりな変更が加わると、やがて無秩序になり、その結果、複雑さが増していく。気にせずに続ければ誰も理解できなくなり、最終的には変更できなくなる。

シンプルなコードとは、構成するすべての要素の責務や関連が最小限の状態である。

可読性が高くなることで、理解しやすく、変更が容易になる。確認や相談などの無駄なコストが減り、本質的な作業に集中できる。必要なときに必要なだけ書く、技術は目的を達成するためでシンプルを目指し、今求められている要件にのみ対応することだ。シンプルにしなければならない。どのようなときであっても。

しかし、現実では理由をつけてこの原則を破ってしまうことがある。避けるべきパターンをいくつか紹介する。

将来に備えて書く。今は必要ないが、いずれ必要になることはわかっている。今は必要ないが、このタイミングで書くと、後で書くよりもコストが低くなるから今書くべきだ。と、ついつい書いてしまうことがある。不要なものを書くことはシンプルだろうか、将来必要か確信があるから…”今”不要なのであれば、それは不要だ。

コードは短く書くのがスマートだ。この記法は一般的ではないが調べればわかる。などと、読めない方が勉強不足だと決めつけて書いてしまう。短く書けばシンプルなのは間違いである。短く書くのが目的になってよいのは、コードゴルフなどの競技である。誰でも読める、過不足のない状態がスマートでシンプルではないだろうか。

ユーザへ確認するコストを惜しんで、必要そうな機能を追加してしまう。確認するよりも、コードを書いたほうが早いと勘違いして書いてしまう。必要な機能を決めるのは誰なのか考えればわかる。余分なコードを書かないことがシンプルである。

インターフェースについても、要求に対して柔軟な対応をするために複雑にするのは間違いである。単純であれば単純であるほど、それは使いやすい。複雑なものは使われなくなる傾向があるのも確かだ。