- PR -

オブジェクト指向の勉強会

投稿者投稿内容
さくら
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 76
投稿日時: 2006-04-24 02:01
入社してから5年間、ずっと手続き指向で
詳細設計・プログラミングを行なってきましたが、
世の中の動向などから必要性を感じ、
オブジェクト指向を学びたいと思っています。
(オブジェクト指向で設計を行えるようになりたいです。)
ただ、会社にはオブジェクト指向ができる人はおらず
書籍などを読んで独学で勉強はしているのですが、
自分が考えた設計が果たして良い設計なのか、
それは本当にオブジェクト指向で考えられた設計なのかを
判断することができません。

関西でこのような人たちが集まってオブジェクト指向の勉強会などを
開催しているような会合的なものがあればぜひ教えてください!!
また、この研修は行ってよかったとか、こんな催しもあるよ!とか
何かお勧めのものがあれば教えてください!!

本来は自分の会社で学ぶ(そのように会社に働きかける)のが
筋だということは承知ですが、
何かよい情報が見つかればと思い書き込ませていただきました。
どうぞよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-24 07:09
設計であれば「オブ脳」なんかを調べると面白いですよ。
http://www.wingnest.com/blog/index.php?itemid=82

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さくら
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 76
投稿日時: 2006-04-25 01:25
お返事ありがとうございます!

「オブジェクト脳の作り方」という本は少し気になっていたところでした。
ずっと手続き型でやってきて、それが身についてしまっているので
オブジェクト指向とは何ぞやというのを勉強しても
何をどうやったらオブジェクト指向と言えるのか、
自分の作ったものはどこがオブジェクト指向じゃなくて、
どこをどうすればオブジェクト指向になるのかというのが
いまいち分からずにいます。

あと、これまで数回JAVAの研修に行ったことがあるのも災い(?)してか
すぐにコーディングするとなれば…というのを考えてしまって、
本来ならばプログラム設計があってプログラミングなのに、
プログラミングから遡ってプログラム設計をしていたりと
本末転倒みたいなことになっています。

でも確かにこれは考え方の問題だから、発想を変えることですよね。
私も早くオブジェクト的なモノの見方ができるようになりたいです!
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-04-25 12:36
引用:

あと、これまで数回JAVAの研修に行ったことがあるのも災い(?)してか
すぐにコーディングするとなれば…というのを考えてしまって、
本来ならばプログラム設計があってプログラミングなのに、
プログラミングから遡ってプログラム設計をしていたりと
本末転倒みたいなことになっています。


オブジェクト指向だと、実装(コーディング)と設計の差はそんなに
ないので、それでもいいのだと思いますよ。
私の場合も、コーディングしながら、裏紙とかで設計している、という
感じが多いです。

 っていうか、クラス1つ、インターフェース1つに対して、わざわざ
設計書を作っている人(会社)っているのでしょうか?
まいるどきゃっと
大ベテラン
会議室デビュー日: 2004/08/12
投稿数: 135
お住まい・勤務地: 群馬
投稿日時: 2006-04-25 12:44
引用:

flatlineさんの書き込み (2006-04-25 12:36) より:

 っていうか、クラス1つ、インターフェース1つに対して、わざわざ
設計書を作っている人(会社)っているのでしょうか?



設計書=日本語でコーディングしたものという会社はまだまだあるようですし、ここでもクラスやインターフェイスごとに設計書作るつもりの人の発言がありましたので、たぶんあるんじゃないでしょうか?

# たまーに、コンバータを作ればプログラマが要らなくなりそうな設計書を書く人いますよね

[ メッセージ編集済み 編集者: まいるどきゃっと 編集日時 2006-04-25 15:14 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-25 15:11
引用:

flatlineさんの書き込み (2006-04-25 12:36) より:

っていうか、クラス1つ、インターフェース1つに対して、わざわざ
設計書を作っている人(会社)っているのでしょうか?


クラス ライブラリ仕様書と称して自動生成することはありますが、
わざわざ、手書きで設計書は書くことは (頼まれない限り) ないですね。(^^)

まあ、クラス ライブラリというのは「サービス指向」であるべきですから、
作ったとしても誰も見てくれないんですよね。(便宜上になってしまうのですから、自動生成で良い)

--

ところで、「オブジェクト指向」というのは、定義が曖昧ですよね。
 -クラス内の各メンバにアクセス修飾子が付与できれば、オブジェクト指向と言える-
という意見に私も同意で、ベースとなる定義はここ (カプセル化) だと思うんですよね。

これがしっかり出来ているということは、
 -クラス内で欲しい機能の実現が完結されていて、外部から利用するためのメンバのみが公開されている-
ことになりますから...

そんなわけで、私としては「継承」や「インターフェイス (ポリモーフィズム)」は
必須ではないと思うのですが (いえ、ポリモーフィズムも知っておいた方が良いのですが)、
さくらさんは、どのあたりまで派生して突っ込んで学習したいのでしょうか?

全体を見るのではなく、もっと細分化してひとつずつ潰すように学習するのも手かもしれません。

# ちなみに、私も OO は良くわかっていない方だと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さくら
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 76
投稿日時: 2006-04-29 01:04
皆さん、お返事ありがとうございます。

自分で最初からオブジェクト指向で設計しようと思っても
何をどう書いたらいいのか分からないので、
受けたJAVAの研修のときの設計資料を基に
こういう風にしたらオブジェクト指向なんだなという感じで
型から入ったようになっています。
でも、その研修のときの設計書を見ても、
どこが(何が)オブジェクト指向で、どういうメリットがあるのかが
理解できません…。

出来ることならプログラミングのことはひとまず置いておいて、
オブジェクト指向とはどういうものなのか、
どういう風に使えばメリットが生まれるのか、
他の技術者の人たちはどのような設計をしているのかが知りたいです。
オーバーロード、オーバーライド、ポリモフィズムなども
どういうときにどう使えばメリットが生まれるのかなど
実業務に即した勉強ができたらいいなと思っています。

皆さんはどのようにしてオブジェクト指向を身に付け、
どのように実業務で使われているのでしょうか??
もし、よろしければぜひ聞かせてくださいm(__)m
よろしくお願い致します。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2006-04-29 05:41
こんにちは。
#久々の投稿です。

引用:

さくらさんの書き込み (2006-04-29 01:04) より:
皆さんはどのようにしてオブジェクト指向を身に付け、
どのように実業務で使われているのでしょうか??
もし、よろしければぜひ聞かせてくださいm(__)m
よろしくお願い致します。



私がオブジェクト指向を身に付けた(というより、なんとなく理解できた)経験談ですが…

 10数年前、当時はまだ「オブジェクト指向」という言葉が、そんなに世間に浸透していなかった頃
 オブジェクト指向プログラミング(OOP)と呼ばれる「新しいパラダイム」のプログラミングを勉強を始めました。
 なにやらOOPでは「カプセル化」「継承」「ポリモーフィズム」…というものを使うらしい??
 最初は全然ピンとはきませんでした。
 漠然と理解できないまま、OOPのサンプルコードを参考にプログラミングしていたのですが、
 あるとき(ぼんやり散歩中のこと)、ふと突然「オブジェクト指向」が理解できたのです。
 #本当に突然「ビビッ」という、全ての謎が解けたような、ひらめきを感じました。
 つまり、OOPとは『世の中の物事(オブジェクト)をシミュレーションするかのごとく、プログラミングすること』だと。
 「カプセル化」「継承」「ポリモーフィズム」…などのテクニックはそのための単なる手法であり、
 重要なのは「オブジェクト指向」という”考え方”なのだと気づいたのです。
 それ以来「オブジェクト指向」の虜になりました。

オブジェクト指向の膨大な用語や技術を勉強することも大切ですが、
(私が思うに)オブジェクト指向で重要なのは、
『いかに現実世界の物事を”自然な形で”抽象化して(プログラムとして)表現できるか』だと思います。
そのためには『もの・概念・クラス・メソッド…に、いかに適切な名前をつけることができるか』は重要なファクターだと思います。
オブジェクト指向で”自然な形”で設計・プログラミングされたものは、(誰にでも)直感的で理解しやすいため、
大規模化するソフトウェアの開発・変更・保守が容易になるメリットがあります。


引用:

他の技術者の人たちはどのような設計をしているのかが知りたいです。
オーバーロード、オーバーライド、ポリモフィズムなども
どういうときにどう使えばメリットが生まれるのかなど
実業務に即した勉強ができたらいいなと思っています。



私も最初の頃、オブジェクトの概念は理解できたのに、うまくプログラミングができませんでした。
#今でも苦労していますが。

やはり一番効果あるのは、他の技術者の設計を”実際に”見てみることだと思います。
(有名どころの)クラスライブラリ・フレームワークのAPI仕様を眺めて、
どんな概念を導入し、どんな名前をつけているか参考にしたり
実際のソースコードでどのように実装しているかを研究したり…

実践的な勉強をするなら、似たようなアプリケーションで上手な設計のものを
真似てみるのがよいと思います。


以下、余談ですが…
・オーバーロードとオブジェクト指向は、あんまり関係ないような気が…??
・私は、業務系アプリ(というかRDB)とオブジェクト指向は、相性が良くないと考えています。

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