Entries

スポンサーサイト

カテゴリ:スポンサー広告
更新日:--------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

私の頭は、どうやらオブジェクト指向じゃないらしい

カテゴリ:システム考
更新日:2010-01-22
Delphi for PHPでいくつかアプリケーションを組んでいて、ある時ふと気がついた。

あれ?クラス、作ってないな。

PHPの連想配列が便利、というのは大きい。特に関数の戻り値で使えるのがいい。Delphi(for Win)では、ちゃんとクラスを作っていた。参照渡しは嫌いなので、少し込み入ったデータ構造でやり取りしたいときには必要だった。だけど、PHPなら連想配列を使って適当に構造を作って関数の戻り値にしてやればできるので、クラスをつくるまでの必要がなかったのだ。

DOSの時代には、C++でマルチウィンドウを作ってみたこともあるし、Delphi(for Win)では、データ構造にはクラスを作っているから、クラスとオブジェクト、継承などのオブジェクト指向の基本的な考え方くらいは理解しているつもり。まぁ、無名関数とかクロージャーとか、最新の動向はよく知らんけど。

理解して使っているとは言っても、構造化プログラミングのデータ隠蔽をオブジェクトを使っているくらいのことでしかない。オブジェクトにしなくても、ユニット化で十分、ということは少なくない。だからこそ、PHPの連想配列でも困らなかったのだ。

仕事では、ずっと業務アプリケーションを作ってきたから、私がシステムを設計するときに、頭の中にあるのはデータベースのテーブル構造である。文書化はほとんどしない私でもER図とテーブル設計だけは欠かしたことはない。オブジェクト指向とリレーショナルデータベースにはインピーダンスミスマッチがあるから、データベース設計ができていて、オブジェクト指向でプログラミングするとズレが発生して、十分にオブジェクト化しない。

分析や設計からオブジェクト指向でやってればいいかもしれないけど、データベースのアクセスでズレる。世の中にはO/Rマッパーとかいうのがあって、そのズレを解消するらしいけど、私は、大学で集合論をかじったせいかSQLはしっくり来るので、そんなのを使うよりSQLを書いた方が楽だったりする。

結局のところ、私の頭の中は、オブジェクト指向ではなくて、データ指向なのだ。オブジェクト指向プログラミングはできるけど、オブジェクト指向分析やオブジェクト指向設計はできない、というところ。UMLを勉強しても、なんだかしっくりこないのも当たり前だなぁ。

blogram投票ボタン ← ランキング参加中です。よろしければ、クリックをお願いします。


なぜ、あなたはJavaでオブジェクト指向開発ができないのか
Javaの壁を克服する実践トレーニング
小森裕介 /エスエムジー株式会社
技術評論社
2,289 円(税込)



スポンサーサイト

Appendix

プロフィール

いむら@fintopo いむら@fintopo

フリーのシステムエンジニア兼プログラマです。趣味はガーデニングとカメラ。2017年4月にα7IIを買いました。フルサイズ一眼初心者です。

このページのQRコード

季節暦

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。