- PR -

VB.NETとオブジェクト指向

投稿者投稿内容
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-09-15 21:46
引用:

一郎さんの書き込み (2005-09-15 21:24) より:

お客さんがしたいのは"(例えば)在庫管理"であって、"データベースの更新"ではありません。



確かにそうですが・・RDBにおいては実際のところ

たとえば在庫管理における処理というのは、
・商品の入出荷の管理(入出荷台帳テーブルへの追記)
・商品在庫の照会(入荷・出荷の個数から集計)
・・・
であり、結局「データベースのクエリ・更新」になると思います。
そこに、商品クラスというのはどんな『振る舞い』があるでしょうか?

#私の専門は、パッケージソフト開発や組み込みシステム開発であるため
#こういう業務知識について無知であることは、ご容赦ください。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-09-15 22:04
 そういえば出てきていないようですが、VB6 以前や VBA をさわっていて、「いいなぁ」と思ったこと。

関数名と同じ名前の変数が、暗黙で宣言されている


 これについては
「‘return’を明記する必要がないので、何を返しているのかわからない」
というご意見があることは承知の上です。

 私は、たいてい‘ret’って名前を用意して、
これで返すようにしているのですが、
あっちでもこっちでも、違う型なのに全部‘ret’なところが、なんとも。。。

 'return' が無くても暗黙的にその値が返ってしまうのはアレなんですが、ソースを見たときに「あ、これが返す値ね」というのがわかりやすいなぁ、と思いました。

_________________
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-15 22:36
引用:

関数名と同じ名前の変数が、暗黙で宣言されている


中さんの Blog で、C, VB, Pascal などの関数の return について、
色んな検証があった記憶があります。
URL が、見つからないのでリンクが貼れませんがw

引用:

私は、たいてい‘ret’って名前を用意して、


とりあえず、略すのは "今の" Microsoft のデザイン ガイドラインに反しています。
私は、iReturn, lReturn なんかを使いますね。

引用:

あっちでもこっちでも、違う型なのに全部‘ret’なところが、なんとも。。。


あんまり、今は型を意識したコーディングはしない世の中になってますけどね。
意識したいのであれば、プリフィクスをつけることになるでしょう。

引用:

'return' が無くても暗黙的にその値が返ってしまうのはアレなんですが、
ソースを見たときに「あ、これが返す値ね」というのがわかりやすいなぁ、と思いました。


私は逆で、判りにくいと感じています。
関数名と同一であるがゆえに、気持ちが悪いんですよね。
出身言語のせいかもしれませんが...


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2005-09-15 22:45
さかもとと申します。
Tdnr_Sym様、きくちゃん様、じゃんぬねっと様、はじめレスを立てられたhimanin様初め皆様方本当にハイレベルな方々のご意見ばかり色々と勉強させて頂いております。ありがとうございます。公式参考書云々を読むより実地的な意見ばかり読ませて頂き本当に勉強になります。

今までのレスに対してどうこう言える立場にはないのですが、もっともっと有識者の方々のご意見を伺いたくてレスさせて頂きました(笑)

jitta様がおっしゃる
>そういえば出てきていないようですが、VB6 以前や VBA をさわっていて、「いいなぁ」と思ったこと。
という視点でのご意見も是非と拝聴させて頂ければと思います。
そしてTdnr_Sym様がおっしゃる「インピーダンス・ミスマッチ」についても是非ご意見を伺わせて頂ければと思います。

(スレ主のhimanin様相乗りでレスさせてばかり頂いて申し訳ございません)



がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-09-16 00:37
どもです。がるです。
引用:

がるがる様の上記のようなやり方も”アリ”だなぁと感じました。
・・というか、私のやり方より正攻法な気がします。

でも純粋なOO的見地からみると、なにか違和感を感じます。
一見OOっぽく作ってあるけど、メソッド内部の実装をSQLである点なんか
「ちょっと無理して作っているなぁと」
やっぱり、OO側が妥協してRDBに合わせてあげないといけないんですよね。
(逆にRDB側がOOに合わす方法は、全く浮かびません)


んっと。実はあんまり「純粋なOO的見地」って興味ないです(苦笑
私は基本的に、自分を「現場の技術者」って位置においてあるので。
(恐らくは「学術的に」)純粋なOOよりは「OOという考え方が
実際に便利であろう側面のつまみ食い」のほうが好みなので :-P

なので、自分的には別に「妥協して合わせている」感じも
特にしてないです。
単純に、あーゆークラスのきり方をすると「OOの便利なところが
色々と使えて楽なので」あんな風にしてます。

というか、現場で使ってる人間にとってはそれでいいんじゃ
ないかなぁ、とか思ったりする今日この頃です :-P
# だから、私が以前ここの掲示板で載せさせてもらった
# オブジェクト指向講座も、学術的には「汚い」です(笑
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-09-16 06:24
引用:

がるがるさんの書き込み (2005-09-16 00:37) より:

んっと。実はあんまり「純粋なOO的見地」って興味ないです(苦笑
私は基本的に、自分を「現場の技術者」って位置においてあるので。




現場の技術者は理屈どうのこうのよりも、「実際に動くもの」を、
限られたリソース(人的・金銭的・納期…)で作らなければいけない。
そういうことは重々承知しております。
なので、がるがる様のとっておられるスタンスを批判するつもりは、
全くありません。

引用:

なので、自分的には別に「妥協して合わせている」感じも
特にしてないです。



私が「違和感」や「妥協」を感じているのは、
たとえば、先ほどの「支店」と「社員」の例で言いますと、
OOでは、支店クラスと社員クラスの間には、「所属する」という『関連』が
あるというのが通常だと思いますが、
がるがる様の実装例では、支店インスタンスと社員インスタンスの間には、
それがないですよね。
このことは、つまり、支店インスタンスと社員インスタンスとの間で
『メッセージ』のやり取りがない、あるいはできない、ということを意味していませんか?
別に、この二つのインスタンスの間で『メッセージ』のやり取りが必要ないのであれば構いませんけれども・・
(その場合、この二つのクラスの間には『関連』がないことになりますが、
RDB側にだけ「支店マスタ」「社員マスタ」の間にリレーションシップが張られている、
となるとやっぱり不自然な気がします。)

いずれにせよ私的には、さまざまな点で「インピーダンス・ミスマッチ」という、
オブジェクト技術とリレーショナル技術の構造に根ざした深い「溝」を無視することはできません。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-09-16 07:17
get_all社員();
を使えば社員が取得できるので、関連が「ある」のではないでしょうか?

#必要な文脈においては社員の同一性が保たれるという前提が必要かもしれませんが、ご提示の例では ID のみ取得しているのでできていると推測します。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-09-16 07:36
引用:

にしざきさんの書き込み (2005-09-16 07:17) より:

get_all社員();
を使えば社員が取得できるので、関連が「ある」のではないでしょうか?



この一行だけで『関連』があるかどうか判断できないのではないでしょうか?
『依存性』があるとは言えるでしょうけれども。

スキルアップ/キャリアアップ(JOB@IT)