オブジェクト指向は戦場では必要無し その3
■ このスレッドは過去ログ倉庫に格納されています
0001うつつつつ
NGNG引き続きOO厨とアンチOO厨の血で知を笑う戦いきぼ。
その1 http://pc.2ch.net/test/read.cgi/tech/1011997945/
その2 http://pc.2ch.net/test/read.cgi/tech/1013266554/
0459デフォルトの名無しさん
NGNGあなたが従来法を使って ソフトウェアシステムを把握できる限界を越えたかどうか
>>457
しかし >>24 のコードはOOではないらしい
0460デフォルトの名無しさん
NGNG4layerの
4layerと
0461デフォルトの名無しさん
NGNG> た」ものであり、そのためには人間が実世界を頭の中で理解する単位にならう
> ことが必要とされた。その手法としてソフトウェア仮想世界に「もの」という
> 単位を作りだしたのである。「もの」に命令して仕事を進めていくというプロ
> グラミングスタイルは、人間にとって理解しやすいものであった。
OO マンセーだが、この目標は今の OOP では到底達成できなさそうだね。
むしろ基礎勉強は多くなってるもん。
基礎が身についた後はパラダイスが待っているんだけど。
0462デフォルトの名無しさん
NGNG> 数千行は1日で書け、
月 1 万行は内容によってはコンスタントに書けるが、数千行を一日は有り得ないっ
て。仮に 3000 行で実稼働時間 10 時間としても
毎分 5 行
シンタックスエラー一切なし
だぜ? 集中力が続かんよ。(コピペの場合を除く)
0463デフォルトの名無しさん
NGNG単純なものならもっといくかもしれないが、
そういったのはC/C++を使わないで、
スクリプト使うだろうし。
0464デフォルトの名無しさん
NGNGそうか? RUP の解説書を読んでも、それで明日から OOA のプロになるのは
無理だろ。
プログラミングの方法論というのは、経験の裏づけがあって初めて適用できるも
ので、マクドナルドのマニュアルのように
誰にでも通じる言葉で説明できて、
聞けばすぐに分かる
とはいかんだろ。(プログラミングに限らず、物理学の実験だろうが数学の勉強
方法でも同じだが)
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNGmethodology … 手法に関する理論
method … 実際に個々に適用する手法
0467デフォルトの名無しさん
NGNG売れないものは価値がないのです。
by 信者
0468とあるダメ社員
NGNG>>448
|448 :デフォルトの名無しさん :02/03/03 12:36
|結局数千行は1日で書け、1ヶ月1万行程度のコードがコンスタントに生産出来、出力フォーマットさえ見れば入力画面から
|データベース設計まで一瞬で出来てしまう人は、 自分なりの方法論というかその人の能力に頼ったを開発手法を持って
|いるのだと思う。
それを、一般論の形でよいので、少しでも知りたかったのですが、残念ながら私の理解力不足とコミ
ュニケーション能力不足もあって、わかりませんでした。
個人的なスキル自体が足りない、というのはわかるのですが、それだけで差を埋められるものなのか
わかっておりません。
0469デフォルトの名無しさん
NGNGUMLとどうかかわりあってるのかが知りたいです。
0470デフォルトの名無しさん
NGNGを、どうやって一般論にしろというのだろう・・・
「一般的に、一般論には例外があります」とでも?
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG| はいはい
| 取り壊しの邪魔だから出てった出てった
\___ ______________
|/_____
, --、 | |._ | OOはやっぱクソだったな! まったくだ
f=+=l. | ||.O|.| ∧_∧ ∧_∧
(,,゚Д゚). | ||.O|.| ( ・∀・) ニヤニヤ (・∀・ )
⊂ つ . | ||長|| ( つ ( )
〜| | 彡 | ||編|| | | | | | |
し`J | | ̄ .| (__)_) (_(_)
~~  ̄ ̄ ̄ ~~
~~
ゴゴゴゴゴ
/ゝ ┌―┐ <--OO
/ ●. ┌┘品└┐
{{ []台 | ロロ ロロ.|
 ̄ ゚゚゚゚゚゚̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\\あぼ――ん/ /
(´;)
/\ (;)┌―┐
/ <<●(´;;;) └┐ }}
[]台 (;;⌒);;;) ロロ.|
 ̄ ̄ ̄ ゚゚゚゚゚゚̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
―OO完―
0473とあるダメ社員
NGNG|470 :デフォルトの名無しさん :02/03/03 15:51
|>人の能力に頼ったを開発手法
|を、どうやって一般論にしろというのだろう・・・
|
|「一般的に、一般論には例外があります」とでも?
人の能力=個人のスキルだけならば、単に「勉強しろ」で終わるのかもしれませんね。
しかしながら、スポーツでのコツのような非常に言語化しずらい(出来ない?)分野
であるならばともかく、なぜ「一般論化出来ない」と考えるのか、理解に苦しみます。
せいぜい、「複雑であり、詳細に説明するのは難しい」といったところではないでしょ
うか?
448さんも言及しておられるように、
|自分なりの方法論というかその人の能力に頼ったを開発手法を持って
方法論的なものが知りたいのです。ノウハウといっても良いのかもしれません。
もちろん、お答えくださる方の善意に寄りかかっているだけですので、ここで
伺えるかどうかはわかりませんが。
0474デフォルトの名無しさん
NGNGもうお前らDQNにOO教えるの止めたくなってきた。
お前らOOで分析したらカコイイ?、とかOOPLで作ったらラクチン?
とかそんなことしか考えてねーだろ。
OO分析は顧客の要望と仕様をすり合わせるツール。
OOPLは仕様とプログラムをツライチにしやすい言語。
これだけだ。種も仕掛けもね-よ。
0475デフォルトの名無しさん
NGNG誰もおまえに教えてくれなんざ頼んじゃいないよ
イヤなら顔出さなきゃいいじゃん
引っ込みな
0476デフォルトの名無しさん
NGNGえ?教えてるつもりだったのか?
どうりで議論にならないわけだ。
納得納得。
念のため逝っとくが、俺はアンチOOじゃないぞ。
分析設計実装全てでOO使ってる。
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG囲碁や将棋のプロのような部分もあるんだと考えればいいんじゃないの?
経験で鍛えられる人間の直観力のような部分が
0479デフォルトの名無しさん
NGNGPG廃業してスパゲッティ屋に転職したらどうであろうか。
伊太利亜にでも逝ってクダチャイ。
0480デフォルトの名無しさん
NGNGスパゲッティなら日々生産してますが、何か?
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG┌─┐
|も.|
|う |
│来│
│ね│
│え .|
│よ .|
バカ ゴルァ │ !!.│
└─┤ プンプン
ヽ(`Д´)ノ ヽ(`Д´)ノ (`Д´)ノ ( `Д)
| ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎
0483デフォルトの名無しさん
NGNG0484OO嫌いなOOスーパユーザ
NGNGそんなのは消えてよし、と。
んで、アンチは何を言いたいの。
要点を押さえて簡潔に言ってね。
0485デフォルトの名無しさん
NGNGプッ
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGふうん、オブジェクト志向にも30年余りの歴史があるんですね。
CやUnixと同じじゃじじい。
この辺のことをうまく書いたパソコン現代史といった本はないもんですかね。
0489デフォルトの名無しさん
NGNG>この辺のことをうまく書いたパソコン現代史といった本はないもんですかね。
どうでしょ、私は寡聞にして存じません。
OOPSLA とか、ACMあたりで、
良いまとめを出してるんかもしれないですけど...。
なんかOO方面って、まだまだ流動的で、
歴史を書くほど確定していない気もする...。
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG例を挙げても、きっと>>490は納得してくれないだろうなぁ。
0492デフォルトの名無しさん
NGNGいま、そのクラスが利用しやすいか? 使いやすいか?という「利用性」
のことを忘れてることが多い、という言葉に最近じーんときてます。
未来も大事ですが、もっと大事なのは今ですよね。
再利用可能なものって、作成にはとても手間ひまかかるしコストがかかります。
たとえばC++,Java,SmallTalk,...のクラスライブラリのような性質のもの、
かける価値のあるものには、コストをかけられますが。
極端な話、再利用性なんて普段は意識しなくてもいいんじゃないでしょうか。
0494デフォルトの名無しさん
NGNG次に、タブブラウザを作ろうと思ったとき、簡単にプログラムできるけど
いちいちセキュリティーホールを引き継ぐの、すごくいいと思わない?
0495492
NGNGStrategyパターンみたいに、可換に作るのが自然で、モデル的にも
シンプルになるものはいいと思いますよ。
意図がうまく説明できなくてすんません、(←ってことはまだよく
わかってないんだろうな、ワシ)
客が機能Aが欲しいといったときに、抽象化、一般化したほうが楽なときは
一般化するけど、Aだけつくるほうが安上がりのときはAしかつくらない、
みたいな感じなんです。
0496ddd
NGNGooってものを
知らなかったわけだが
理解できたきっかけは?
0497デフォルトの名無しさん
NGNGJavaのコーディングとGofの本。
0498デフォルトの名無しさん
NGNGタートルグラフィックス
0499デフォルトの名無しさん
NGNG懐かしいな。小学生のとき、LOGOでrobot動かして遊んだなぁ。
FOWARDとか、BACKとか、
でも、おばかだたので、パパートさん(でしたっけ?)が期待したように
再帰で、へんてこりんな、パターン動かしたりはできなかったし、思いつきも
しなかった。
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGSmalltalk
0502デフォルトの名無しさん
NGNG20年くらい前の月刊ASCIIのアドベンチャーゲームの製作記事
0503デフォルトの名無しさん
NGNG表参道?
0504デフォルトの名無しさん
NGNGもらったけど、それよりもインパクトのでかかったのは
RUPとかXPなんかのソフトウェアプロセスを勉強しだして
からかなあ。対象物は全てオブジェクトとみなして同一に
扱うっていうフラットな考え方は目鱗だったよ。
0505502
NGNGだったか、南青山だったか忘れた。
「持ち上げるとか、投げるとか、使うとか、そういうコマンドの結果を、
アイテムごとに定義するんじゃなてく、もっと効率のいい方法無いかな?」
っていう話題からSmalltalkの話になるような記事だったと思う。
0506デフォルトの名無しさん
NGNGhttp://www-6.ibm.com/jp/developerworks/components/010629/j_co-tipdiv.html
★(EJB) 開発チームの重大な問題
★オブジェクト指向開発者とデータ指向開発者が一緒に作業する場合に味わう難しさ
★オブジェクトとデータの対立の悪影響を受けている組織は一般に、
「策略に明け暮れる」ことに対し開発者のフラストレーションがたまり、 転職が増える傾向
0507デフォルトの名無しさん
NGNGプロセス指向という用語もあるんだね
プロセス指向 VS データ指向 VS オブジェクト指向
どっちかいうとうちはプロセス指向かな
0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNG自前で「データ中心アプローチ」方法論構築しちゃった井の中の蛙ーって感じがする。
#海は広いよ
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGttp://member.nifty.ne.jp/yamazaki/doc_data02.html
ちょっと 上の2ページとは用語が違うようだ
0512John ◆0z.4Is5E
NGNG>シンプルになるものはいいと思いますよ。
なんかよくわからないけど、例がわかりずらかったのかも。
例えば、サーバーの状態をセキュリティーの会社の報告するプログラム。
プロトコルAで送信していたけど、理由があってセキュリティーの会社を
変えたとする。
するとプロトコルBで送信しなくてはいけない。
ただ、ここでプロトコルAでの送信機能が失われるような
変更を加えるのは、頭悪いでしょ?
他は何も変えず、プロトコルBでの送信機能を追加するには・・・
一般的な表現をするなら、
ファクトリーメソッドがあれば十分、充分?。
とりあえず、デザパタは無視していいと思うよ。
デザパタから入ると、柔軟な発想ができなくなりそうな気がする。
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515S
NGNGより、mozillaの例を挙げてみる…
クラス・ブラウザ
・C++ や Java など, いわゆるオブジェクト指向言語のソース・ファイルは 理解が難しい
・・継承により, どのようなメソッドがどこで定義されているか把握しずらい
・・メソッド (関数) は クラス名::メソッド名 と 呼び出されるが, クラス名が省略される場合があり,
・・また, メソッドは引数の組み合わせによって選択されるため, 同じ名前のものがたくさん定義される
・動的な解析ツールを駆使する - デバッガでトレースをとる
・・イベント駆動ループからの呼び出し
・・ストリームなどの非同期イベントからの呼び出し
・・マルチスレッド実行時のオブジェクト間通信
・結論: できのよいクラスブラウザを持っていないと手に追えない
OOに異を唱えるわけではないんだが、(とゆうかかなりはまっている私
こんな現実もあるのでは。
ってか優秀なクラスブラウザってないかな?
できたらフリー/学生に手が出る値段で
0516515
NGNG0517515
NGNGあれを他の言語でもできないものか。
0518デフォルトの名無しさん
NGNGそんな貴方にVisualAge for Java
0519デフォルトの名無しさん
NGNGならない条件があるから難しいのでは
0520デフォルトの名無しさん
NGNG前半は、UML あたりで図を書いとけよ、という話だと思うが。規模が大きくなると、
コードだけ見て理解するのは辛いよ。
あと C++, Java でなくとも、動的なフレームワークにすると理解が難しくなるのは
世の常。OO の真髄は「インターフェースに対してプログラミングする」ことだけど、
そうなると、これまでの
- caller / callee
だけではなく
- caller / interface / callee
と、途中に interface が挟まる分だけ、全体像を把握するのは難しくなる。おもい
きり OO っぽい設計にすると、インターフェースの多重継承なんてしょっちゅうだ
から、caller / callee 間が蜘蛛の巣のようにつながるし。
ただ、interface について明確にドキュメント化してあれば、蜘蛛の巣で迷子にな
らずに済むはず。caller も callee も interface について知っていれば十分だか
ら。
(C でも OO っぽい「インタフェースに対してプログラミングする」のは、最近の流
行りではあるよな。*BSD のデバイスドライバのフレームワークなんかも、マクロ
や関数ポインタを多用して、同じようなことやってる)
後半のイベントドリブン、マルチスレッドは OO とは関係ないな。素の C で組ん
だ Win32 アプリケーションやら OS やらでも、そこは把握に苦労する部分。な
んかうまい表記方法が発明されると嬉しいんだけど、ねぇ。
0521デフォルトの名無しさん
NGNG>OO の真髄は「インターフェースに対してプログラミングする」ことだけど、
ちょっとまて。「インターフェースに対してプログラミングする」なんてCにstatic関数が
出来たときから(きっとそれ以前だろう)いわれてることじゃないか。
これはOOの神髄ではなくプログラミングの神髄だ。
0522デフォルトの名無しさん
NGNGだからやってることっていうのは実は昔から変わっていないんじゃないか?。
OOがワカラン、OOは糞、というやつは実はOO以前のスタイルでもまともな設計、プログラミングが
できていないんじゃないかと思う。
0524デフォルトの名無しさん
NGNGADT の進化系が OO と認識してるけど。
C だと
インスタンスの管理がめんどくさい(明示的に this を渡す必要があり、vtbl も
自前で初期化しないとダメ)
継承関係の管理を自分で行う必要がある
インターフェースの多重継承は事実上無理
インターフェースを追加した場合に、コンパイラがエラーチェックしてくれない
(純粋仮想関数の定義し忘れとか)
なのが C++ あたりだと、すっきりかける。
C++ は C に「インターフェースに対してプログラミングするために便利な/必要
な機能」を付け加えた処理系っつーのは、一面としては間違ってないと思うんだ
が、どうよ?
0525デフォルトの名無しさん
NGNG> OOっていうのはこうした方がいい設計、いいプログラム、へのガイドラインじゃないかと。
その通り、単なる「ガイドライン」に過ぎないのにそれを絶対視する奴が多すぎる
例えばDBのテーブル設計の場合、パフォーマンスを出すために
あえて正規化を崩す場合がある。
構造化プログラミングでも状況によりgotoを使う場合もあるし、
グローバル変数を使う場合もある。
常に「gotoを使わない」「グローバル変数を使わない」奴は素人。
常に「OOを使う」ことしかできない奴は素人
「OOを使えない奴」は素人以前の問題
0526デフォルトの名無しさん
NGNGインターフェースへのプログラミング、という捕らえ方は正しいと思う。
ただAlan Kay的なOOの定義に従って考えると、
ADTの延長にOOがあるんじゃなくて、
OOの実装で現状使える技術要素の1つがADTなんだろうな。
つまり、何かを聞けば反応を返すのがオブジェクトであって、
ADTはそれを実装するのに都合がいい概念の1つに過ぎない。
ADT以外にinterfaceを明確にできるソフトウェア構成単位があれば
そっちに移ればいい。
0527デフォルトの名無しさん
NGNGUMLを書き上げただけでシステムできると誤解してない?
現実的なソフトウェアはそれだけじゃできないよ。
だけど可能な限り設計段階でUMLで表現しておくことが
無意味になることを意味するわけじゃない。
0528デフォルトの名無しさん
NGNGというかそういう作業を好んでやる人はいるのか?
0529デフォルトの名無しさん
NGNGOO信者の欠点は、それが致命傷になるケースであってもゴリ押しする点。これ激しく迷惑。
0530デフォルトの名無しさん
NGNGでも厨房の漏れには両者の喧嘩は意外と勉強になったYO!
みんながんばれ。(・∀・)!!
0531デフォルトの名無しさん
NGNGプログラマはプログラムで自己表現するんじゃなくて、
設計レベルで自己主張すべき。じゃないといつまで
たっても職人仕事の域を出ない。
だからUMLは管理するものという発想は間違ってる。
0532デフォルトの名無しさん
NGNG>設計レベルで自己主張すべき。じゃないといつまで
>たっても職人仕事の域を出ない。
船頭おおくて船山にのぼる
0533デフォルトの名無しさん
NGNGつまらねえよなあ、おい。
プログラムって楽しいもんじゃねえか。
いくら仕事だからって楽しんじゃいけねえのかい?
そうか、そうだよなあ。
職人が生きにくい世になったんだなあ。ちぇ。
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG> で結論は?と言ってみるテスト。
結論:
テストを先に書くこと。(XPマンセー)
UMLや設計は後からついてきます。
0537デフォルトの名無しさん
NGNGXP も ストーリー→タスク→テスト と
その都度設計してるんだけどね。
設計そのものの成果物を残さないだけで。
0538521
NGNGインターフェイスっていうのはものすごい一般的な言葉なわけで、
printf関数を使っているときにはprintfインターフェイスに対して
プログラミングしているといえる。プログラム言語が関数を手に入れたときに
最初のインターフェイスが誕生した。
同じように自作のモジュールでも公開関数に対してだけプログラミングすれば
実装を容易に変更できるようになる。Cがstatic関数を手に入れたときに次世代の
インターフェイスが生まれた。
OOPLはいくつかの関数とデータを硬く結びつける文法を用意してより強力な
インターフェイスが誕生した。
きっとクラスの数が増えてくればそれらをいくつかまとめて次世代のインターフェ
イス概念が生まれるのであろう。
0539デフォルトの名無しさん
NGNG> インターフェイスっていうのはものすごい一般的な言葉なわけで、
あの文脈だと「シグネチャが一致するメソッドの集合」と読めるかな。
0540デフォルトの名無しさん
NGNG賛同。Smalltalker?
0541526
NGNG0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG激しく同意
特にOO職人と勘違いしているOO信者は協調性がない邪魔者
COBOLerと同じくらいタチが悪い
0546デフォルトの名無しさん
NGNGそれって、職人じゃ無いじゃん。
0547デフォルトの名無しさん
NGNG職人じゃないんじゃなくて、信心のたりないOO信者ってとこだろ。
OOPLは好きだがそれ以外のものをメンドクセーとか思ってる奴。
そういう奴がXPマンセー!と言ってるのだと思うが間違ってる?
OOSEやRUPじゃカバーできないプロジェクトがあるとか
いいながら、内心そんなところに理由があるんじゃないかと思うんだけど。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNG>UML図を誰がどう作成してメインテナンスするのか
>というかそういう作業を好んでやる人はいるのか?
そうそう、そんなことしてる奴は周りから間違いなく異端視されるし。
0550盛岡電波
NGNG0551デフォルトの名無しさん
NGNGパターン抽出と、ベスト・プラクティスの広報を通じて、
開発者のレベルアップにちっとは貢献してるでしょ。
だから、オープン・ソース・プロジェクトの
ドキュメント整備と同じ位重要な場合もありそう。
Apache Avalon, Struts とか、
フレームワークを前面に押し出したプロジェクトなら、
開発前から UML使ってても、不思議ではないんでわ?
んで、
と同じ
0552デフォルトの名無しさん
NGNG> そうそう、そんなことしてる奴は周りから間違いなく異端視されるし。
FreeBSD だと最近の大きなプロジェクトとして SMPng, KSE なんてのがあったが、
あれは paper 出したり、主要なメンバーで集まって設計方針を話し合ってたりした
ぞ。
OO じゃないから UML で図を書いてたわけじゃないけが、いずれにせよ大規模な
システムのコア部分を作る場合には、やっぱり何らかの形で設計を形にして、参
加者に伝達することは必須だと思われ。
0553デフォルトの名無しさん
NGNGアンチは教育してやれば理解するようになるが、
XP信者は永遠にプロセスを理解することは無理だな。
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNGその理由は以下に↓
0556デフォルトの名無しさん
NGNG0558なっち怒ってます(○ ´ へ ` ○)
NGNG■ このスレッドは過去ログ倉庫に格納されています