プログラミング勉強中の女ブログ

プログラミング学習中!アウトプット用ブログです。

Ruby on Rails で知っておくと便利な原則

オブジェクト指向を活用したプログラミング手法には、色々と研究が重ねられた結果、いくつかの原則が作られました。この原則を意識して開発すると、WEBアプリケーションを楽しく自由に作れるので紹介してみます。特にRuby on Rails を使ったアプリケーション開発をする際に、意識しておきたい原則をまとめてみました。

●CoC

CoCとはConvention over Configurationの略で、「設定より規約」という原則です。設定を大量に記述するのではなく、規約に則ってプログラミングすることで、余計な設定を省く事ができます。
例えば、生徒クラスを「Student」とすれば、生徒情報を格納するデータベースは複数形で小文字から始まる「students」にするという規約があります。このルールに従うことで
StudentクラスとstudentsテーブルのマッピングRailsは自動的に行ってくれるので、開発者がクラスとテーブルを関連付ける設定を記述する必要が無くなります。
Railsが敷いてくれたレールの上をきちんと走ることで、開発者はビジネスロジックなどの本来やるべき部分の開発の注力することができるというわけです。

●DRY

DRYとはDon't Repeat Your Selfの略で、「同じことを繰り返さない」という考え方です。開発者はアプリケーションの中に何らかの「重複」があれば、また起きそうであれば察知する必要があります。

同じことを繰り返すとどのような事が起きるでしょうか?

・記述量が多く複雑になり、コードを読むのが難しくなる
・修正が発生した場合、修正箇所が多くなり大変&修正漏れがおこる可能性がある

アプリケーションのコードは、どれも将来的にバグになる可能性があります。重複してしまうと、アプリケーションのコードは不必要に大きくなり、バグが生じる可能性も高まります。また、システム構造は複雑になり、開発に携わる人間がシステム全体を完全に理解することも難しくなってしまいます。どこかに変更を加えた場合、それとロジック等が重複している箇所にも同様の変更が必要がどうか確認しなければなりません。DRY原則を守ればこのような事態を防ぐことができるのです!

DRY原則は、コードを重複しないということだけでなく、開発作業にも適用するべき原則です。アプリケーションの開発に関わる作業の多くは「同じ作業の繰り返し」です。例えば、テストは同じ作業の繰り返しになることが多く、手作業でやっていると手間も時間もかかり、また間違いも起きやすくなります。そのような繰り返し行う作業は、可能な限り自動化すべきなのです。


YAGNI

YAGNIとはYou Aren't Gonna Need Itの略で、「機能は実際に必要となるまでは追加しないのがよい」という原則です。

必要かもしれないとあれこれ機能を追加するとどうなるでしょうか?

・機能が使われないまま放置される
・プログラムの規模が必要以上に大きくなる
・設計や構造が複雑になり保守や修正が難しくなる
・その結果、バグや不具合が起きやすくなる

今現在、具体的な必要性がないのに、将来必要になるかもしれない、あれば便利かもしれないなどといった見込みや思い込みで機能や要素を追加するべきではないのですね。後で使うだろうという予測の元に作った機能は、実際には10%程度しか使われないとも言われているそうですよ。

●独り言コラム

「これ、いつか必要かもしれないな〜」と思って買い物することありますか?実際、使う時が永遠にこないやつね。そんなときは心の中で「YAGNI」と唱えてみましょう。防災グッズ以外は、必要になった時に買えばいい -YAGNI LIFE-