0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

YAGNI原則の誤解には注意

Posted at

YAGNI原則とは

YAGNIは「You Aren't Going to Need it」の略。
一言で言うと「機能は実際に必要となるまでは追加しないのがよい」という意味。

YAGNIの読み方

YAGNI(ヤグニ)だと思います。
※けど、ヤゲニでも通じるはず

理解の仕方に注意

この原則は色々なサイトで色々な訳され方がされています。
例えばこちら、「必要なものは必要になったときに書きなさい」

ちょっと解釈の仕方を間違えると、以下のような理解にたどり着く可能性があり注意です。

「必要なものは必要になったときに書きなさい」
= 「必要なものは必要になったときに考えなさい」
= 「未来のことはその時に考えなさい」
= 「未来のことは今考えなくていいよ」

え、未来のこと考えなくていいの....😯?!

本当にそうなのか?

YAGNIの本質は以下に羅列されています。

- きっと使う"だろう"という予測で作られた機能は、実際には10%程度しか使われない。
- 余分な機能があると、仕事に時間がかかり、リソースを浪費する。
- 余分な機能は設計を複雑化させ、予期しない変更が起こった時、より多くの変更コストを支払うことになる。
- 人生の時間は貴重である。ゆえに、コードを書くためではなく、現実の問題に集中するために費やすべきだ。
- コードをすばやく実装する最も良い方法は、余分なコードを書かないことだ。
- バグを減らすために最も良い方法も、余分なコードを書かないことだ。

使うかわからない余分な機能は、デメリットが多いので実装する必要は無いと説いています
未来のことを考えなくていいと言っているわけではありません。

結論

YAGNI原則はフレーズだけが1人歩きしてしまい、誤って理解してしまう可能性があります。
決して未来のことは考えなくていいというわけではありません🙅

確定している未来の事象や、現実化する可能性が非常に高い近未来のことは考慮して、ソフトウェアの構成要素(クラス、モジュール、関数)をコーディング・設計するべきです。
そうすれば、後々容易に追加や拡張をすることができるはずです。

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?