オブジェクト指向は戦場では必要無し その2
■ このスレッドは過去ログ倉庫に格納されています
0001あたたたた
NGNGを理解する労力が大きく、目的まで達成するのに時間がかかる。
他人のソースを見るにも複雑でときほぐしにくい。
ちゃんと整備されたドキュメントがなければ粗大ゴミソース。
またオブジェクト指向が○○に優れているとかいう話も、あくまでちゃ
んと設計され、ちゃんと実装されたクラスがあるという前提での話。
実際は世の中にどれだけの糞SEや糞PGがいることか。。。
よってオブジェクト指向は戦場では使いものになりません。
前スレ http://pc.2ch.net/test/read.cgi/tech/1011997945/
いつの間にかスレが1000に達しようとしていました。たくさん
の意見ありがとうございます。
前スレでの議論の結果、やはりというか当然というかオブジェ
クト指向の戦場での実績や有効性には大きく疑問が残るという
結果となりました。。。
皆さんも本当に何が残ってゆく技術なのか、何がイマイチぱっ
とせずに中途半端に終る技術なのか見きわめて、技術を習得して
いきましょう。
0655デフォルトの名無しさん
NGNGそれはそうかもしれんけど、それって別にOOの責任じゃないんでは?
関数ベースのライブラリでも、Javaとかのクラスライブラリに
匹敵するだけの機能を揃えたら、やっぱり同じだけの手間がかかると思われ。
0656デフォルトの名無しさん
NGNG安心しろ.NETは全部一緒だ。
0657
NGNGOO派がデタラメ並べた長文載せるんで呆れてるのさ。
デタラメには反論できないからね。
本で読んだ事そのまま吐き出してるのかもしれないが。
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG>匹敵するだけの機能を揃えたら、やっぱり同じだけの手間がか
>かると思われ。
いや関数のほうがフラットにアクセスできるからどれを使えば
よいのか探すだけ。構造体があっても中身見ればわかるし。
クラスだとそうはいかないことは分かるよね?
0660デフォルトの名無しさん
NGNGいやクラスのほうがフラットにアクセスできるからどれを使えば
よいのか探すだけ。
ん?
0661デフォルトの名無しさん
NGNGいまさら MFC (これはこれで糞) 使わずに Windows API を直で
呼び出す気はさらさら起きないんだが。
0662デフォルトの名無しさん
NGNG> OO派がデタラメ並べた長文載せるんで呆れてるのさ。
> デタラメには反論できないからね。
> 本で読んだ事そのまま吐き出してるのかもしれないが。
長文ねえ…
2chのレスすら「長文」なんていうようじゃ、まともな技術書読んだことないんだろ。 (藁
今まで読んだ中で一番長かったのは、何ページの絵本でちたか?
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNGお前が(もうすぐ)世の中に必要でなくなるよ。
0665デフォルトの名無しさん
NGNGお前が(もうすぐ)世の中に必要でなくなるよ。
0666デフォルトの名無しさん
NGNGお前が(もうすぐ)世の中に必要でなくなるよ。
0667デフォルトの名無しさん
NGNG>デタラメには反論できないからね。
たしかにデタラメには反論できないでしょう。
しかし、あなたはデタラメであることは分かっているわけです。
デタラメであることを示しましょう。
>>659
>クラスだとそうはいかないことは分かるよね?
だれもが分かるとは限りません。
あなたには分かっているのですから、比較をするなら片方の特徴だけを
出すのではなく、両方だしたうえで比較しましょう。
0668デフォルトの名無しさん
NGNG例えどんなに高度な機能を有していようと
生身の凡庸な人間が使いこなせるシロモノじゃないのなら
それは無いのと同じことだ。こういうことだったよね。
OOの場合、設計で労力を食うからね。
組みながら完成度を高めていくってやり方の人に不評なのも
なんとなく理解出来る。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGはあ?それ、どんなOO設計の話なんだ?
っつーか、ウォーターフォール的な構造化分析・設計よりも
iterativeなOO分析・設計のほうがはるかに
> 組みながら完成度を高めていくってやり方
を支援するのだがな。
もちろん、間違った組み方をして辻褄合わせに設計を直す、なーんて厨房的なのは
どのみち救われないがな(W
0671デフォルトの名無しさん
NGNG>いや関数のほうがフラットにアクセスできるからどれを使えば
>よいのか探すだけ。構造体があっても中身見ればわかるし。
「フラット」と言われても何の事だかわからんなあ…
ただ、
関数なら、関数名さえわかればいつでもどこでも呼び出せるが、
OOの場合、対象とするオブジェクトを取得できないとメソッドを
呼ぶことができない。
という意味ならわかるんだが。
実際、OOでは、各オブジェクトについて、どのオブジェクトへの
参照を持たせるか、という話は割と重要な設計ポイントになるし、
(だからクラス図なんか書いたりするわけだが)そこでしくじると
後でえらい目に遭うことになる。
しかし、ライブラリにある程度複雑なことをやってもらおうと思ったら、
ライブラリの側が何らかの状態を持つことは避けられないし、
その状態を「ひとつしか保持できない」と困ることもある。
汎用的なライブラリなら、Cでも
「第1引数として構造体へのポインタを渡す」
なんてことをやってるが、これは表記が違うだけで十分OO的では
ないかな?
…こういう意味じゃないというなら、解説してくれ。659よ。
0672デフォルトの名無しさん
NGNG> ライブラリの側が何らかの状態を持つことは避けられないし、
手続き型でも、状態が絡んでくると
関数を、いつでも好きなタイミングで呼んで OK
という世界ではなくなるよね。Win32 でウィンドウを開くような場合
1. ウィンドウクラスを RegisterClassEx() して
2. 登録したウィンドウクラスに対して CreateWindow でウィンドウを作り
3. ウィンドウプロシージャで WM_CREATE を捕まえて初期設定を行い
4. ShowWindow でウィンドウを表示して
5. UpdateWindow を呼び出して WM_PAINT メッセージをキューに入れ
6. WM_PAINT を捕まえて表示内容を初期化する
となる。HWND やウィンドウクラス名は、実質的に「オブジェクト」へのポ
インタだよ。
0673デフォルトの名無しさん
NGNG時代は変わったよね。
MSもMFCはクソでしたをやっと?認めたみたい。
0674デフォルトの名無しさん
NGNG> まあMFCがOOって呼ばれてた時代
あったのか? MFC は OO 的なクラスライブラリというより Win32 API の薄い
ラッパとして出発して、その後も機能が肥大化はしてきたが、基本的に Win32
API のラッパという指向は変わってないと思うんだが。
0675デフォルトの名無しさん
NGNGCの欠点を埋める新しい言語、コンパイラを作るってのは?
マジな話で
0676デフォルトの名無しさん
NGNGJava
0677デフォルトの名無しさん
NGNGいや、C#
0678仕様書無しさん
NGNG今からそれをやるぐらいなら、.NETやる方が
いいんでしょうかね?
WindowsプログラミングはCでしかやったことがないので。
0679デフォルトの名無しさん
NGNGこのスレで聞くより VS.net スレで聞いた方がいいと思うが。
ちなみに VC++.net でも MFC はサポートされてる。
0680デフォルトの名無しさん
NGNGじゃ、Cのどこが気に入らないのかを具体的に挙げてみれば?
てか、Cで、構造体とmalloc()の使い方がわかってりゃ、クラスと
インスタンスなんてわかったも同然だし、共用体の使い方がわかってりゃ
継承もわかるだろうし、それでswitch caseがうざいと思えば、
ポリモフィズムもわかるだろう。
…てことは、このスレのアンチは、Cもろくに使えてないんだろうね。
0681デフォルトの名無しさん
NGNGブーチがどうとか、ハンバーグがどうとか、
見てて痛すぎるのがおおいです。
よくGNU信者がウザイ言われたりしてますが、
そんなOO信者のレベルには程遠いな(w
痛さとアホさの点では彼らは群を抜いてます。
OOが胡散臭く感じられる原因はあなたの周りの
キショイ信者でしょう。
0682
NGNGON−GOTOが排除された。
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG相変わらず技術的な問題点の指摘はないのな…
0686デフォルトの名無しさん
NGNGおれはOOがキライだなんて言ってない。
信者がウザイんだよ。oosquareとかを
読んでると鳥肌立ちっぱなし。
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG国内のWeb上では数少ない、
まともな OO全般の情報源 でそ。
DQNなあなたが見て、理解できなくてもしょうがない。
あれって、
国外の本スレ見ながら、評論/コメントしてるスレみたいなもんだからなぁ。
0690デフォルトの名無しさん
NGNGいつから、ここは感想文を書くスレになったんだ?
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNGべつのスタンスからSEとPGの作業領域にある問題を解決する
方法論ってものを考えていってほすぃ。
否定だけじゃ、なにも進まない。
OOを肯定することや否定すること自体には意味ないのよ。
もう、やめてけれ。
0693
NGNGおいおい、従来のスタイルと個人を攻撃したのはOO側が最初だぞ。
0694デフォルトの名無しさん
NGNGOO 側って何よ?
2ちゃんねるで書き込んでる人間は、特定の指揮系統の元で行動してるわけじゃ
ないんだから、その手の陣営わけは意味がない。しょせんは個人の問題だ。
(で、感想じゃなくて技術的な話はないのか?)
0695デフォルトの名無しさん
NGNG被害者意識が強いのでは?
「OO は以前の方法に対して この部分がこう素晴らしい」
と論理的かつ的確に説明してあげることが、
従来のスタイルと個人に対する攻撃だというのなら話は別だが。
(それに、OO は「従来のスタイル」を内包しているから、そもそも攻撃なら自己否定になる)
0696デフォルトの名無しさん
NGNG俺は別にアンチじゃないけど、oosquare-ml はマジでキショいね。
0697692
NGNG>OOを肯定することや否定すること自体には意味ないのよ。
OO派アンチOO派(そんなんがあれば)を肯定することや
否定することにはもっと意味がない。
くだらねぇ・・・おまえ。
0698デフォルトの名無しさん
NGNGふーん
0700デフォルトの名無しさん
NGNGC++?
0701デフォルトの名無しさん
NGNGそれは (one of) OOPL だろ…。
0702デフォルトの名無しさん
NGNG俺は〜なんだろうね、OO が解った!って思ったのは 結城氏のデザパタ本読んでた時かなぁ…。
それまで俺のやってた事が、ここでいう「クラス指向」に他ならないって事に気付いたので。
0703デフォルトの名無しさん
NGNGこれを言うのは人の勝手だけど、
それじゃあんたの理解するOO的要求定義〜テストを
説明してくれよ。
上のような言葉を吐くのにろくなのはいないとおれは決め込んでる。
0704デフォルトの名無しさん
NGNGほんとに勉強したいのなら、こんなこころで聞かずに、定評ある書籍を読む
ことをすすめるが。
だいたい、まじめに語ったらいくら端折っても「UML モデリングのエッセンス」
ぐらいの厚さになるわけだし。
0705デフォルトの名無しさん
NGNG>それじゃあんたの理解するOO的要求定義〜テストを説明してくれよ。
口を開けて答えを待ってる馬鹿につける薬は無いんだが、とりあえずどこまで理解
してるか言ってみ?ん?
0706デフォルトの名無しさん
NGNG703 じゃないけど。
OOについて議論するなら、「OOとは何か」を先に定義しないと
話が進まないというのは事実だと思うがな。
0707デフォルトの名無しさん
NGNGするよりまずSTLの便利さを単純に示すべきだっ
たのでは、と思います。
0708デフォルトの名無しさん
NGNG最初って、なんの最初?
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG先に定義を提出した奴が嬲り殺しに遭うスレですが、何か?
0711デフォルトの名無しさん
NGNGSTL は Generic Programming でしょうが。(多態してないはず)
0712デフォルトの名無しさん
NGNG俺は言語の機能をしっかり引き出し効率的に設計し、効率的にコードを書くのを指向したいな
ひとりでやる時は、好きなように抽象化してコードが書けるけど
他人と作業するときは
皆が理解して皆がメインテナンス出来る方法で実現することが最も効率的なコードとなるし
それが逆に不効率な人材しかいないなら、どこかで遮断してしまった方がいい。
しかしOO言語にある隠蔽機能はまだまだ足りない。 コンポーネントはいい線いってると思う
一番いいのは スクリプトにしてしまう事だ
0713デフォルトの名無しさん
NGNGOO信者の信条
自分が作ったものだけが唯一信頼できるものだ。
他人の作ったクラスは使うな。
0714デフォルトの名無しさん
NGNGようはソース単位でってこと?
0715デフォルトの名無しさん
NGNGOOとは何か?
人間は様々なパーツで構成され、それらは多種多様の細胞で構成されている。
多種多様の細胞は細胞という一つの概念として見ることが出来る。
細胞は水、タンパク質などの物質で構成されている。
このような分析をする事をOOAと言い、こういう考えで設計する事をOODと言う。
さらにこの構成でプログラムすることをOOPと言い、それに適した言語をOOPLと言う。
で良いのか?
0716デフォルトの名無しさん
NGNG一応ツッコミ。
OOA, OOD, OOP, OOPLは出てきたがOOが出てきてない。
それからそうゆう例示は「定義」とは言わんよ。
0717デフォルトの名無しさん
NGNGその論法で動物の体をモデリングしたら細胞の分化レベル毎に染色体の数が違って
しまいそうだが?
0718715
NGNG日本語から勉強し直してきます。
0719デフォルトの名無しさん
NGNGモデリングがクソだと、どう足掻いても生産性や保守性はあがらないよな。
これはコンピュータがただの計算機ではなくなってきたときからかわらないもんだと思うんだけどどうだろ?
0720デフォルトの名無しさん
NGNG後半、ひらがな多過ぎ。
0721デフォルトの名無しさん
NGNG自分が何者で何に反応するかも答えられると尚よい。
そんなオブジェクトでソフトウェアを構成するのがオブジェクト指向。
ここでいうソフトウェアには分析/設計も含まれる。
ってな感じでどーでしょ。
0722デフォルトの名無しさん
NGNGレガシーなみなさん、遊びに来てください。
まあ、そんなもん。
0725デフォルトの名無しさん
NGNGカタカナに騙されるな!
0726デフォルトの名無しさん
NGNG部分によってはかなり根本から設計しないとダメな羽目に
なって結局それでかなり時間とられるようなことも、現場
ではある。
0727デフォルトの名無しさん
NGNGそうだな
あと、自分の設計スキルが未熟で
自分が設計したモデルと実際のモデルが食い違うこともある。
モデルが大きく異なってしまった場合、オブジェクト指向でも
作り直しに近い状態になる場合がある。
0728デフォルトの名無しさん
NGNGそういった点では非OOの方が修正がしやすいといえる。
つまりOOの管理のしやすさというのは、かならずしも
正しいとはいえない。
0729デフォルトの名無しさん
NGNGおれはOO的な修正術なんて知らないから
よく分からないが。
0730デフォルトの名無しさん
NGNG> そういった点では非OOの方が修正がしやすいといえる。
どういった点だ?
非OOではモデルと実際が食い違っても修正しなくていいのか?
いいな、ぜひその方法論をここで公開してくれ。(藁
0731デフォルトの名無しさん
NGNGこれがまたクソなんだよ。でも自分ではすばらしい設計
だと思ってやがる。OO信者にはそういう奴が多くないか?
自分流クラス設計の自己満足の世界に浸っている奴。結局
多人数で作業し始めるとその「完璧なる」クラスがボロボロ
になっていき、結局「これは根本的な仕様変更なので・・・」
って言い訳して、また最初からやってやがる。OOって
実際はそんなもん。よほど非OOのほうが融通が利くよ。
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG設計やってるヤツのレベルが低いと大変だよな。OO に限らず、データベースの
スキーマ定義とかでもそうだが。
0734デフォルトの名無しさん
NGNG根本的な仕様変更だからといって、全部作り変えるようなクラス設計
してるその上司がアホなだけじゃん。
クラスが全て再利用不可能などという事態になることは、マトモに
設計していればありえないと思うんだが…
0735デフォルトの名無しさん
NGNG「それは設計が悪いから。」
そのまんまじゃん。(w
0736デフォルトの名無しさん
NGNG設計を大きく変更する必要があっても適当にやれる。
正しい設計なんて無関心だから間違った設計で進められる。
神経が麻痺するから、どんな状態でも問題に気づかなくてすむ。
技術的なことに興味がある人がいないので自分も技術力が無くていい。
0737デフォルトの名無しさん
NGNGもう呆れるね。
それさえも通り越して哀れだね(プ
0738デフォルトの名無しさん
NGNG空行多すぎ。圧縮してくれ。
0739デフォルトの名無しさん
NGNGあのさ、非OOとやらでも、根本的な仕様変更があったとしても
それまでそのシステム開発のために作成したライブラリの殆どは
流用できるでしょ?
システムの仕様が顧客の要求で変更になったとしても、それは単に
表層でやり取りするデータの構造が変わったとかビューの表現形式
が変わったとか、せいぜいその程度の事で、それより下の層に関わ
る部分のライブラリってそのまま使えると思うが…
そのように作っていればだけど。
設計がアホなのにOOも非OOも関係無いでしょ。
0740デフォルトの名無しさん
NGNGクラス間の結束が強いと、そこに機能を追加するのに
ばらしにくい。
0741デフォルトの名無しさん
NGNG思えないじゃん。それでも非OOだけでやっていけると思っているの?
それともOOが普及してきている事実を見たくないの?
そうだよね。COBOLと同じで自分の仕事がなくなるんだもんね。
だめだよ、プロならちゃんと勉強しなきゃ(w
0742デフォルトの名無しさん
NGNGだから、そういうのはOOでも非OOでも同じじゃん。
機能的に独立したライブラリ呼び合うようにしてなければ
非OOだって同じことになるだろうが。
0743デフォルトの名無しさん
NGNG非OOもOOも同じで○○間の結束は弱くするよう設計しよう。
OOを使ったらそれだけでクラス間の結束が弱くなると考えていたら間違い。
0744デフォルトの名無しさん
NGNG> 非OOは設計なんか適当にやっているから、
ということにしたいんだね。
OOが普及する前でも設計を適当やっているわけではない。
> 技術的なことに興味がある人がいないので自分も技術力が無くていい。
OOって技術なの?OOPLは技術だと思うが...
個人的にはOOは哲学やイデオロギーの部類に入ると思っているのだが?
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNGものを持ち込みたがってる詐欺師がいるな。
OOでのメリットなんて、巧く設計するとライブラリの再利用性を
簡単に上げるチャンスがあるよん、機能単位の抽象化が実装レベルで
簡単に出来るチャンスがあるよん(あくまでも「巧く」設計出来る人
がいれば、だけど)という程度でしょ。
その他のシステム開発に関わる大部分の問題は、OOだろうが非OOだ
ろうが全く同じじゃん。
0747デフォルトの名無しさん
NGNG人材の需要が高まっている。派遣会社の受け入れ企業に対する請求額は月額80万円
程度(首都圏)。同じIT系でも比較的単純な業務に当たるプログラマーの料金が下落
傾向なのと対照的だ。
相次ぐ合併・買収など企業の再編に伴って、各社が持つシステムの変更・更新などの
ため、ネットワーク言語を使いこなせる専門スタッフが必要になっている。システム投資を
控えていた外資系企業の一部でも新規のネットワーク構築の動きがみられ、同様の人材
確保を急ぎ始めた。
一方、派遣プログラマーには余剰感が強い。これまで派遣会社や需要先のソフト開発
会社などが人材を積極的に育成してきたうえ、人件費が安い中国へ外注したり現地法人
を作って開発したりする例も多い。派遣会社の請求料金は首都圏で月額45万―55万円
程度。特に技術レベルが低い層では、30万円台の料金も登場している。
0748デフォルトの名無しさん
NGNGOOPLはOOで考えた「モデル」を他の設計技法よりも柔軟で強力に表現できるだけに過ぎない。
0749デフォルトの名無しさん
NGNG他人のソースを見るにも複雑でときほぐしにくい。
ちゃんと整備されたドキュメントがなければ粗大ゴミソース
実際は世の中にどれだけの糞SEや糞PGがいることか。。。
よって設計は戦場では使いものになりません。
0750デフォルトの名無しさん
NGNG> OOを使ったらそれだけでクラス間の結束が弱くなると考えていたら間違い。
agree
なんでもかんでも実装継承するバカは逝って良し。
0751デフォルトの名無しさん
NGNG> OOでのメリットなんて、
不勉強なのがバレバレですな。
とりあえず(本来は UML の本なんだが OO の設計技法に関する入門書としても、
非常に出来が良い)「UML モデリングのエッセンス」あたりを読むことを強く推奨。
0752デフォルトの名無しさん
NGNGうちの会社には、public変数だけで出来ている構造体もどきクラスを
つくり、さらにそれを継承したものをデータのコンテナとして使用する
設計を行い、美しい設計だと自画自賛してるアホがいる。
バカにOO使わせるとろくなことにならんよ。
0753デフォルトの名無しさん
NGNG> どうもOOと非OOとやらの間に、何かのヒエラルキーのようなな
> ものを持ち込みたがってる詐欺師がいるな。
詐欺師ではありません。詐欺師だったらもう少し頭がいいはずです。
彼らはOO信者なのです。
すべての設計をOOでやれば必ず幸せになれると信じている少し頭の弱い人ですが、
内容のないレスを大量に書くことを厭わない暇人です。
0754デフォルトの名無しさん
NGNGそういう構造化以前の話はもう聞き飽きた。
OOとは関係ない話だよ、それは。
■ このスレッドは過去ログ倉庫に格納されています