はじめに
この記事は「プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則」を読んだ際に記した議事録です。
著作権の関係により、詳細には書きません。詳しい詳細を知りたい方はぜひ本書を読んでみてください。
プリンシプルオブプログラミングをPOPと訳します。
YAGNI ・・・ You Aren't Going to Need it.
それはきっと必要にならない
What : コードは必要最低限
「多分後から使う」「必要になるかも」でコードをしてはいけません。本当に必要なものを、必要な時に書きましょうということです。
Why : コードの予想は外れる
ソフトウェアの未来を予測することは不可能です。
無駄になる、予測が外れるということは費やした時間が無駄になるということです。無駄になるだけならまだしも、使わないもの=邪魔者になってしまうので、一生懸命考えて作ったものが足かせになってしまうため、不必要なものは書かないようにしましょう。
Haw : コードは「今」必要なものだけ
汎用性より単純性
汎用的なものがユーザーにとって良いものとは限りません。単純なもののほうが実は汎用性が高いなんてこともあります。また、改善する際も複雑なものよりも単純なもののほうが変更が簡単です。
発展 : YAGNIの適用範囲
YAGNIはコードの話にとどまらず、ソフトウェアの機能にも当てはまります。機能が豊富なものは魅力的に見えますが、結果として使われないことがほとんどで、全体の機能を低下させ、使い勝手を落とすだけです。
関連 : DTSTTCPW
「Do The Simplest Thing That Could Possibly Work」の略で、「うまくいく方法の中で、一番シンプルな方法でやれ」って意味です。意味や目的はYAGNIと同じです。先のことを予測、思考してコードしてしまうと複雑性が増し、変更コストが大きくなります。
「今一番大事なことを一番単純なコードで実現させましょう。」
終わりに
この記事ではプリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則の議事録を自分用に記しています。
この記事ではカバーしきれていない部分も多いので、是非本書を手にとって読んでみてください。
次回、「【POP7】PIE」です。ぜひ、次の記事も読んでみてください。