Help us understand the problem. What is going on with this article?

Rubyでオブジェクト指向を学ぶ方へ | For those learning "Object Oriented Design" in Ruby

More than 5 years have passed since last update.

"Practical Object-Oriented Design in Ruby"という本をご存知ですか?

http://www.poodr.com/
未邦訳ですが、自分はこれを夜な夜な読むことで、初めて"オブジェクト指向プログラミング"とは何か、勉強するスタートポイントに立てた気がしました。
ちなみに "POODR" と略すらしいです。

-
追々、本を読んで学んだことを順序立てて構成していきます。
最初は、本の中で最も強調されていたことから紹介させてください。

OOPとは、オブジェクトが相互にメッセージを送ることである

なぜなら、プログラムは、以下の二つの無関係、もしくは矛盾する要求に応えなければいけないから。

  • プログラムが、今後の(現時点では決して分からない)変更に耐えうる仕様になっていること
  • その段階で利用者がもっとも使いたい形で提供されていること

OOP is all about "Objects sending messages each other"

cuz, optimization for program to adapt unexpected changes differs from optimization for a user to use that service at the most desirable context "at that time".

-

つまり、

  • 利用者が使いたい文脈に沿って、
  • 壊れにくい再利用しやすい形でつくられたオブジェクトが相互に動くのが、
  • オブジェクト指向で取り組むべき設計。

この前提で、オブジェクトが持つ構造(クラス、メソッド、アトリビュート)などが紹介されています。
本の中では、まずはクラス構造という静的なものが理解しやすいということで紹介が始まりますが、
繰り返し章を重ねて語られる中で、こういった動的な振る舞いでの再説明がなされています。

ちなみに..

POODRの著者である Sandi Metzさんは、"Sandi Metz Rule"として、あなたのコードをオブジェクト指向へと「矯正」する方法を紹介しています。
http://tech.a-listers.jp/2013/05/20/sandi-metz/

これを実際に実践した thoughtbot社(FactoryGirl Gemの開発元です)は、「ルールを取り入れる実験は成功だった」として、自分たちのベストプラクティスドキュメントに取り入れたということです。

kenzan100
it's not your fault.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした