DRY, KISS, YAGNI Principles
これらはクリーン コードに関する原則なので、すべての開発者は気にかけるべき 3 つであり、この原則は、開発者自身が、このようなコードを作成するためのものです。 この記事では、それぞれが何を意味するのかを理解します。
DRY の原則
DRY は Don’t Repeat Yourself の略です。 書籍「The Pragmatic Programmer」では、DRY について次のような定義がされています:
すべての知識は、システム内で単一の、あいまいでない、権威ある表現を持たなければならない。 なぜなら、コード内の何かを変更する必要がある場合、1 つの場所で変更すればよいだけだからです。 また、同じコードが2カ所以上にあると、途中でコードが変わる可能性が高く、そうなるとシステムにバグが発生しやすくなります。 重複したコードは、コードをより複雑にし、不必要に大きくします。
また、曖昧なコードを書くべきではありません。 クラス、変数、関数、それらは特定の名前を持つべきであり、その名前はその責任と一致しなければなりません。 関数がある場合、その中のコードを読まなくても、名前を読むだけでその関数が何をするのかがわかるようにしなければなりません。 同じことを 2 つの異なる場所で、おそらくは 2 つのまったく異なる方法で表現することです。
つまり、コードのコピー&ペーストだけでなく、それも含まれます。 同じことをするのに異なるコードを持つということでもあります。 2 つ以上の場所に異なるコードを持つことができるかもしれませんが、それらは異なる方法で同じことを行うので、これも避けなければなりません。 この原則は、あなたのコードをシンプルにすることについて言っています。 不必要な複雑さは避けるべきです。 シンプルなコードは、維持しやすく、理解しやすい。 重複するコードを排除し、不要な機能を削除し、不要な変数やメソッドを使用せず、変数やメソッドに意味のある名前とその責任に一致する名前を使用し、可能な場合は常に、コード開発の標準を知ることに従わなければならない。 また、クラスの責任とプロジェクトの層からの責任を分けるべきです。
時には、ニーズに合わせて新しいものを実装する必要がなく、単に使用しているプログラミング言語の機能を利用することができます。 そのためには、使用しているプログラミング言語の機能を知っておくとよいでしょう。
すでに実装されているコードで作業しているときに、不要なものやもっとシンプルにできるものがあれば、リファクタリングを検討すべきです。 これは、エクストリーム プログラミング (XP) のソフトウェア開発方法論の原則です。 この原則は、本当に必要でない機能を作成すべきではないと言っています。
この原則は、どちらもよりシンプルなソリューションを目指すという点で、KISS 原則と似ています。 両者の違いは、YAGNI は不要な機能やロジックを取り除くことに重点を置き、KISS は複雑さに重点を置いていることです。
つまり、いつか必要になるかもしれないと思うからと言って機能を実装するのではなく、本当に必要になったときに実装するべきだということです。 そうすることで、必要でない、そしておそらく一度も使用されることのない実装に時間を費やすことを避けられます。
Conclusion
これらの原則に従うことにより、よりよいコードを書くことができます。 きれいなコードは、メインが簡単で、理解しやすく、何かを変更または実装する必要があるときに確実にあなたの時間を節約することを忘れないでください。 重複したコードの使用は避け、できるだけシンプルなコードを心がけ、本当に必要なときだけ機能を実装するようにしましょう
。