« なにそれこわい | トップページ | 「うまい演技」の条件 »

3層構造とかオブジェクト指向とか

3層構造

一応IT業界とやらにいるんだけど、この業界で早いうちに身につけなくてはいけなかったことは3層構造だったのではないか、と思う。
あらゆるシステムは3層構造から成り立っていて、それはもう一つの思想といってもいいくらいに万事に浸透している。
3層構造とはもちろんweb-application-Databaseの事だ。
IT系じゃない方にもわかりやすいようにもう少し一般化させて言えばインターフェース‐機能‐情報と言った感じかな。(インターフェースの気持ちいい訳し方がわからん。)

今になって考えれば、この世の中の全てのこと――例えば人間もイベントも学校も何もかもはこの思想で捉える事も出来る。けれど、この業界にはいってくるまでそんな思想のことを気にしたこともなかった。だからこの業界の思想に染まるまではとても理解がすることが難しい。
でも、新しく何かを覚えるときにこの思想がわかってると、理解が速く済む。だから、新人さんはひとつの機能だとかアプリケーションの腕を磨くのもいいけど、まずこっちを理解すべきだと思った。(と、社内ニートが嘯いております。)

自分なりに考えをまとめておく。
(以下全て"・・・等"と書くのを省きます)
・インターフェース
:自分以外の機能と自分を繋ぐ入出力部分。"機能"がここから入ってくるものをうけとって何かをする。
インターネット検索で言えばブラウザ。
人間で言えば見た目・声・鼻・耳。
イベントで言えばイベントの内容(歌・出店・アンケートボックスなど)。

・機能
:自分が出来ること、すること。"インターフェース"から何かを受け取り、"情報"を使って何らかの処理をする。
インターネット検索で言えば「入力された検索ワードが含まれるwebページを探して表示する」。
人間で言えば「文字を書く、泣く、食べる」。
イベントで言えばどの歌手を呼ぶか考えたり演出を企画したりイベント日の段取りをしたり。

・情報
自分の中にあるデータとか種。"機能"がこれを使う。
インターネットでは膨大なwebページ達。
人間では経験・本能・知識。
イベントでは目的・伝えたいこと。

少しは解りやすく説明できたかしら?
ともかく、IT業界ではシステムは当然のこと、一つ一つのアプリケーションの設計にだってこの思想は浸透している。ような気がする社内ニート。

オブジェクト指向

なんだか楽しくなってきたのでオブジェクト指向をこの思想で捉えて見る。と、社内ニートが寝言を言っています。
("オブジェクト指向"っていう言葉が微妙にバズワードだから、「そんな説明、間違ってるよ」って言われても困るんですけどね。)

例えば"人間"を作る時のことを例にしてみますね。
まず、街にでましょう。家と会社の往復だけでは良い出会いは巡ってきません。(と、往復するだけの男が申しております。)そして気立ての良い子を見つけましょう。焦る気持ちはわかりますが抑えて、抑えて。まずはじめは笑顔で話しかけて、毎月給料の半分をあなたに振り込みます、と約束しましょう。その人となんとかお付き合いしたい?方法は簡単です。以前記事でこんなことかきました。

その方法とは、「限りなく太れ」「それが無理ならずっと近くにいろ」。ふざけてんのかと思われそうですが、質量があるものには引力があってそれは質量が多いほど大きいそうです。だから好きな子を引き寄せたければ太れ、と。

そのときはよくわからなかったけど万有引力の法則の話をしてたんだと思います。

万有引力の法則は『2つの物体の間には、物体の質量に比例し、2物体間の距離の2乗に反比例する引力が作用する』

「心もおなじだから」

だから近くにいればいるほど引き合う心も大きいと。

そう、ずっとそばにいればいいのです。朝も昼も夜も彼女の傍にいましょう。朝は自宅の玄関前、昼は彼女のPCにこっそりwebカメラを仕掛けてオフィスでの彼女を堪能しましょう。夜は彼女の部屋の電気が消えるまでずっと、ずっと見守ってあげましょう。そうやって何回かのデートや裁判を経て懲役期間が終わったら後は毎日毎日プロポーズしましょう。恥ずかしいかもしれませんが女性は毎日愛をささやかれたい生き物なのです。そうやって指輪をプレゼントしたり、臭い飯を食ったりしながらなんとか結婚まで持ち込んだら、すみません、もうこの話やめていいですか?

例えば"両津勘吉"という人間を作る時、特徴的な眉毛を作って、髪をつくって、目を作ってそれに"見る"という機能を与えて、胴体作って毛を生やして・・・・
という風に作るのが"オブジェクト指向ではない"やり方です。3層の事なんて意識せずに気の向くままに作っていくのですね。

オブジェクト指向で作るのであれば、両津のインターフェース‐機能‐情報を考えてみる。
インターフェースとして目や鼻とかを作る。機能として「嘘をつく」「やたら儲ける」とかを作る。情報として「警官としての経験」だとか「下町の情緒」を作る。
これらをつなぎ合わせて"両津勘吉"が完成する。

結果として出来上がるのは同じ"両津勘吉"なんだけど問題はそのあと。
一つは"両津のお父さん"というキャラを作るとき、オブジェクト指向で作った場合は目や鼻はそれひとつとしてモジュール化されているからそこだけさくっと持ってきて転用ができる。"両津の幼馴染"を作るときも「下町の情緒」とかが転用できる。オブジェクト指向じゃない場合はこんな風にモジュール化して転用するとは考えていないから"両津のお父さん"を作るときも転用ができない。

もうひとつの特徴は「両津に恋をさせる」場合。
「目から得た情報をもとに両津は恋をする」場合オブジェクト指向なら両津の「目」に「美貌」を入力すれば両津は「恋をする」という機能が働くようになっていることが一目瞭然。オブジェクト指向じゃなければその辺あいまいでごちゃごちゃしてるから「目」に「美貌」を入力してみたらなぜか「嘘をつく」という機能が動き出したりしちゃう。

つまりオブジェクト指向でつくれば「代用・転用」と「機能に対して必要な入力の簡素化」において優位ということです。

と、社内ニートが嘯いただけです。上の説明って、「間違っちゃいないけどオブジェクト指向の話じゃない」んですけどいいんです。
オブジェクト指向なんて、言えたら嬉しいだけの言葉ですから。

|

« なにそれこわい | トップページ | 「うまい演技」の条件 »

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1257139/32349686

この記事へのトラックバック一覧です: 3層構造とかオブジェクト指向とか:

« なにそれこわい | トップページ | 「うまい演技」の条件 »