オブジェクト指向は戦場では必要無し
■ このスレッドは過去ログ倉庫に格納されています
0001あたたたた
NGNGクラスを理解する労力が大きく、目的まで達成するのに
時間がかかる。他人のソースを見るにも複雑でときほぐしにくい。
ちゃんと整備されたドキュメントがなければ粗大ゴミソース。
またオブジェクト指向が○○に優れているとかいう話も、あくまで
ちゃんと設計され、ちゃんと実装されたクラスがあるという前提での話。
実際は世の中にどれだけの糞SEや糞PGがいることか。。。
よってオブジェクト指向は戦場では使いものになりません。
0652デフォルトの名無しさん
NGNGDelphi使っててフリーコンポーネント使ったこと無い人居るの?
0653デフォルトの名無しさん
NGNGそれだと、オブジェクト指向にならない。コンポーネント指向。 >>516
だからVBとCOMは滅んだの。
0654デフォルトの名無しさん
NGNG自分で使った事はあるが、 いくらデスマーチ中でも そんなひらったコンポは使わんぞ
そりゃまあAPIヘッダ程度は確認して利用したりはするが
0655デフォルトの名無しさん
NGNG| もえちゃんを救うため │
| 皆様に協力をお願いします。 \ オナガイシマース!! /
|
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ∧_∧ ∧_∧ ∧_∧
( ´∀`)< 心臓移植手術のための善意の| (´∀` ) (´∀` )(´∀` )
(つ\ 丶 \ 募金をお願いしまーす。 |( ) ( )( )
| |[三] \___________/ | | | | | |. | | |
(__)_) (_(__)(_(__)(_(__)
http://www2.gateway.ne.jp/~moe-moe/
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG小さなコンポーネントを拾い集めてきて、組み合わせること
と思ってるやつが数人いるのか。確かに犬小屋程度なら板と釘とペンキを拾って
きて組み合わせればできるけど、ビルを建てようと思ったらパーツ云々より先に、
まずは、どんなビルが必要なのか(分析)
どうすれば、そのビルを建てられるのか(設計)
をした上で、そのための部品を調達するなりオーダーメイドで用意する必要があ
る。いくら納期が厳しく火を噴いてるプロジェクトだからといって、基礎工事や設計
書を作らずに工事を強行したら、途中で
ある部分と別の部分がスムーズにつながらない
基礎部分の強度不足判明、継ぎ足し
なんてことを繰り返して、結局は余計な時間がかかるだけだぞ。挙句にポシャっ
たプロジェクトもいくつか見たけど、末期状態だと
全体像を誰も把握してない
朝令暮改
朝の仕様に従って組んだら、夕方には仕様変えやがる
テストしようにも、別の部分が 仕様どおりに動いてない
なんてことになって、チームのやる気は低下、人間関係はボロボロで悲惨だった
よ。(俺は、もう二度とかかわりたくない)
0658デフォルトの名無しさん
NGNG戦場であっても守るべき規則や仁義はあります
APIのヘッダファイルなら著作権は基本的にありませんが
日本では著作権は放棄出来ない権利です。
ですから、いくらフリーだと言われているライブラリでも、
企業が使う以上著作権者へのコンタクトは必要でしょう
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG657 の話は、オブジェクト指向とは一言も書いてないけど。
0661デフォルトの名無しさん
NGNGそうか?
汎用的っていう言葉もあいまいだが、
Delphiのコンポは汎用的に書かなくても問題ないと思う。
単純にデータや処理単位でカプセル化するだけでも
>>642みたいにOOの利点を有効に利用出来ると思うんだが。
0662657
NGNGいや、オブジェクト指向かどうかに関わらず場当たり的な対処は結局は首をしめると
言いたかった。Delphi のコンポーネントで OK なんつーのも、目先のことしか見てな
いだろ、と。
ちなみに、最後にかかわったデスマーチは言語は C で、通信関係の何かでした。
0663デフォルトの名無しさん
NGNGOO以前に分析、設計が大切ということでよろしいか?
0664デフォルトの名無しさん
NGNG世界大戦にはならないんじゃないかと思ってみたり。
0665デフォルトの名無しさん
NGNGデータ構造だけはしっかり決めて、
つぎは人員の配置
コンポーネント作成部隊と、フォーム単位部隊に分割
コンポーネント部隊には最初に中身無くてもプロパティとイベントだけは定義させて
フォーム作成部隊を平行して作業させる。
というのでなんとか鎮火した事はあったな
まあ、コードはいわゆるオブジェクト指向ライクなものではないし
メインテナンス性のかけらも無いものになって、後で一人でメンテナンスするう奴は苦労
するんだろうが、
納期は守られた
0666デフォルトの名無しさん
NGNGだな。
実際WinのGUIの設計とかになるとDelphiなんかのほうがスマートに設計&コーディング出来るし、
単純処理?にOO使ったり、設計途中でむりやりOOをはめ込んだりすると
泥沼にはまる危険性がある上に利点が少ない。
0667デフォルトの名無しさん
NGNGチーフがしっかり設計出来るやつじゃないとか、俺様流の奴が多いとか
オブジェクト指向の設計段階で貴重な時間食いつぶして火を噴いたりさ
ユーザから要求された出力フォーム見りゃ、オブジェクト指向とか言わなくても
必要なデータベースや入力項目は普通わかるだろ?
どんどん作業した方がトータル早いなんて事も多いよ
0668デフォルトの名無しさん
NGNGそれって、あんたが設計してることにならん?
0669デフォルトの名無しさん
NGNGそうやったほうが速いのはわかるが、そうやって作ると
つっこみどころ満載の実装になるんでわ?
で、そーやって作っておいても、OOの方が改造、修正が楽ちんだし。
0670デフォルトの名無しさん
NGNG1、OOP言語は便利だから戦場でも使える
2、コンポーネントは戦場でも使える
3、OO設計は戦場では使えない
0671デフォルトの名無しさん
NGNG中々良いまとめだね。
OO設計の失敗例ってのは実際存在する。
クラスライブラリ自体も設計されて作られたものだけど、
VCLみたいにラップがうまくいってLinux対応まで出来るものもあれば、
MFCみたいにアンチOOPを作るくらいに失敗してて
さらにMFCのMAC版はクラス階層が異なるんだって。これじゃCOMじゃん。
M$クラスライブラリの意味知ってんのか?
0672デフォルトの名無しさん
NGNGいくら贔屓目に見ても、Kylix は実用レベルじゃないだろ。
それから Borland マンセー、MS バカとたたく場所じゃないんだから、MFC の
ことは忘れとけ。
0673デフォルトの名無しさん
NGNG火がついたからといって、今まで非 OO 設計で組み上げて
きた開発物を簡単に OO 設計に置き換えられるわけがない。
それから、OO は簡単に開発できる魔法の設計と思い込んでいる
人達が何人かいるけど (俺の周りに)、別段実装量が減るわけで
はない (むしろ手数は増える)。開発物の内部構成が明確になる
だとか、開発クラスの個数やパフォーマンスネックになりそうな
部分といった、プロジェクトのスコープに利点があるもの。実装量
減らしたければ柔軟性を犠牲にしてウィザード系のツール類を使い
まくってくれ。
0674デフォルトの名無しさん
NGNGこれは有り得ない。
まさか、ここで言ってるOOはCOMじゃないよね?
0675デフォルトの名無しさん
NGNGいや、モデルに従うために手続き型に逃げないで
冗長なコードを書くことはよくあるよ。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG同意。
継承ベースで組まずに委譲にする場合とか、転送用のコードを書き並べることに
なるし。
0678デフォルトの名無しさん
NGNG自分とこでは無いな。
>>677
継承しちゃダメなの?
0679デフォルトの名無しさん
NGNG> 継承しちゃダメなの?
…おいおい
実装継承は必要ならしても良いけど、
1. 単一継承
2. Mixin
ぐらいに限定しておかないと、継承元と派生クラスががっちり結びついてしまうから
後で変更が厳しくなるぞ。
0680デフォルトの名無しさん
NGNG> ぐらいに限定しておかないと、継承元と派生クラスががっちり結びついてしまうから
> 後で変更が厳しくなるぞ。
だね。
これがOOの欠点といえば欠点か。
で、独立(汎用)性を維持させようとしてコーディングすると冗長になることがよくある。
実際には使い捨てでぱぱっと実装した方が速い場合もあるがな。
0681戦場への道
NGNG1.着手したプロジェクトの約30%が完成にキャンセルされた
2.完成したソフトウェアの70%以上が予定していた全機能が実装出来なかった
3.計画予算と実費用の比率は平均189%である。
4.計画開発期間と実際の比率は平均で222%である。
0682デフォルトの名無しさん
NGNG0683そろそろ結論
NGNG自由度が大きすぎるからという面もあると思う
自由度が大きすぎるからその組み合わせ爆発は尋常でなくなり、ついには破綻するのであろう
比べて、関数であれば、入力、出力数は限られている
(まあ理論的には引数100個とか出来ない訳じゃないが)
また、コンポーネントは、プロパティエディタなどが、その自由度の適度なブレーキとなって
いるのではないだろうか?
たとえば、>>581が出した短いサンプルコードを見た >>588 の
>メソッド4つ位で、順次実行べた書きと対して変わらないし。
という意見から見ても、オブジェクト指向のクラスは、多くのメソッド(入出力)を持つ
複雑なものとして設計されている事が読み取れる
プログラミングは、あれも出来る・これも出来るという状態から制限を加えてゆく行為なのだと思う
オブジェクト指向を取り入れるとしても、OO的原則論より 簡単、簡潔をまず優先するべきかと
0684デフォルトの名無しさん
NGNG> 比べて、関数であれば、入力、出力数は限られている
完全に相互に依存関係がない関数に分割できるならともかく、現実には何らかの
状態を共有することになるわけで、既に議論が破綻してる。
0685デフォルトの名無しさん
NGNGあと多分岐選択を忘れてるよ
http://hpcgi1.nifty.com/mizukix/text/textdisplay.pl?file=6-5.txt
【構造化プログラミング】
ダイクストラ(E.W.Dijkstra)らによって提唱された.
プログラムの基本制御構造の5つのものだけを用いてプログラミング
せよという指針を持つ。
【基本制御構造】
連接,選択,多分岐選択,前判定繰返し,後判定繰返し
【構造化定理】
入り口ひとつ、出口ひとつのプログラムは3つの制御構造の組み合わせで
すべて表現できるという定理。3つの制御構造とは、以下のものである。
>>684 とりあえず >>683は関数としか言っていないんだから
関数型プログラミングパラダイムの事かもしれんと
0686デフォルトの名無しさん
NGNG「入り口ひとつ、出口ひとつのプログラム」 じゃイヤンという事じゃないのかな
その面では構造化プログラミングと対立する概念の部分もあるかもね
0687デフォルトの名無しさん
NGNGそもそも構造化プログラミングとオブジェクト指向じゃ、語ってる対象が違う。
構造化プログラミングは、関数/手続きに分解が終わった段階で、その中を
どう記述するかという話
オブジェクト指向は、問題をどのようにモデリングするかという話
別に OO で分析/設計して、個々のメソッドは構造化プログラミングにしたがって
書くことは不可能じゃないよ。厳密にやると例外も投げられなくなるからアレだが。
自由度の大きさとOOとは関係ないと思われ。
むしろ、OOは制限の多いパラダイムだと思われ。
0689デフォルトの名無しさん
NGNG1)開発サイクルにおいて分析により多くの労力を費やす事=実コーデング時間の不足
2)スパイラルモデルやラウンドトリップモデル = 最初の設計が疎かになり易い また工程管理が難しい
3)問題領域の分析から入るため、実装仕様の肥大を招き易い
0690デフォルトの名無しさん
NGNG1 と 2 は矛盾してると思われ。
3 はありがちな話だが、それを防ぐためのスパイラルモデルでもある。汎用性は
そこそこに、適宜リファクタリングせよ、っつーのも小/中規模だとわりと実用的。
0691デフォルトの名無しさん
NGNG設計なんぞやらせると、設計を盾に変更に難色を示すプログラマー例が多いので
私は設計なぞさせません。
0692デフォルトの名無しさん
NGNG変更の可能性のあるポイントを事前に示唆しないお前が悪いんじゃん。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG「日本はまだまだ平和だ」
0695デフォルトの名無しさん
NGNGあれのダメな方だろ。
0696デフォルトの名無しさん
NGNG長年SEやってて実戦OOはいつ習得したんだ?
そういうSEでまともなOO設計できる奴なんか見たこと無いぞ。
0697デフォルトの名無しさん
NGNG仕事は根性だ!
0698デフォルトの名無しさん
NGNGたぶんそれは691の口癖だろうな。
設計のマズさを突っ込まれるとつい出るという。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG文系だよね。
理系だったら理屈より他のものを優先させたりしないでね。
0701デフォルトの名無しさん
NGNG黙れリア厨。
社会に出れば理屈や道理なんか優先順位の下から数えた方が早いんだよ。
0702デフォルトの名無しさん
NGNGそうでもないぞ。
もちろん組織の間の力関係とかで道理が通らないこともあるが、こと開発に
関しては
無理を通すとデスマーチ
になるだけだから。分かってるところは、あまり無理をしない。
0703デフォルトの名無しさん
NGNGじゃあ聞くが、デスマーチが一向に減らないのは何でだ?
691みたいな糞SEがのさばってる証拠だろ。
0704デフォルトの名無しさん
NGNGそりゃ、あなたの立ってる位置が悪すぎ。
デスマーチに関わらなくても食っていける程度には、まっとうな仕事はあるぞ。
0705デフォルトの名無しさん
NGNGいまどき食えるだけで満足なの?
とか言ってみるテスト。
0706デフォルトの名無しさん
NGNGむしろ、デスマーチにはまってるときこそ「食えるだけ」っつー気がするな。
起きて、食って、コード書いて、仕様変更に泣いて、飯を食って、コード書いて、
テストして、家に帰ると午前様。
本を読む時間はおろか、2ちゃんねるで遊んでる暇もありゃしない。
0708デフォルトの名無しさん
NGNG嬉しそうにさしいれもってくるなっつーの…
0709デフォルトの名無しさん
NGNG矛盾していない
分析に時間をかけるが最初の設計に時間をかけないのはよくある話し
分析と称してはグダグダ会議を繰り返し時間を潰し
スパイラルだといいながらまだ動きもしていない状態で仕様変更
0710デフォルトの名無しさん
NGNG>たとえば、>>581が出した短いサンプルコードを見た >>588 の
>>メソッド4つ位で、順次実行べた書きと対して変わらないし。
短いサンプルコードって1Kstep以上あるじゃん。
こんなのクラスライブラリで3行だよ。
0711デフォルトの名無しさん
NGNGそれって、OO分析・設計が駄目な理由というよりは、
駄目な分析・設計したらこーなった、
って話にしか聞こえないんだけど。
例えば構造化分析・設計でも、
ヘッポコな分析・設計すれば
同じような戦場が簡単に発生するわな。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGだめなやつはなにをやってもだめ。
従来の非OOの設計のほうが危険度が少ないつーだけ。
で、よろしいか?
0714デフォルトの名無しさん
NGNGよろしいが、だめなやつを減らす努力をしないと何も変わらん。
0715デフォルトの名無しさん
NGNGOOPは使わないと損。
OO分析(OOAだよね)が簡単という話はあまり聞かない気がする。
(でもOO分析とスパイラルアプローチは関係無いよね)
0716デフォルトの名無しさん
NGNGつーことは、優秀なSEが低脳なPG使えばいいってことか?
0717デフォルトの名無しさん
NGNG楽なまま終わったんじゃなくて、機能の積み上げが激しくなったね。
もうOOP駆使してもう古い言語やクラスライブラリの無い世界には戻れないって感じ。
その世界にSヨは入れないよ。
Web系はちょっと違うかもしれないけど。
0718デフォルトの名無しさん
NGNGで非OO設計とは何かというと 画面と印刷物の希望だけ渡されて あとは口頭で聞いて仕上げると
0719デフォルトの名無しさん
NGNG10年前のようなコーダーはもう生き残れないね。
SEも口先だけではどうにもならなくなってきたんじゃないか。
0720デフォルトの名無しさん
NGNGオブジェクトの関連は考えてないとトンデモクラスがイパーイできるからそうだね。
オープンソースとの共存を考えると、膨大なコードを読む能力がこれから必要になるね。
膨大なコードとOOPのカプセル化はピッタリなんだけど、オープンソースはC言語かな。
0721デフォルトの名無しさん
NGNGWEB系ってASPとかJSPも含めて
ファイルのサイズはそれなりの大きさになるけど
それを大規模あるいは中規模と勘違いして
OOは大規模には向かないとか言ってたりして・・・
昨今はWEB系が流行りだけどさ。
JSPを例にあげたOO的設計では、
仕様が変わらないTOMCAT以下は、インターフェースでラップして
.jspは使い捨て、という認識で・・・
ejbもフレームワークができてるんで
ejb使ったり、作ったりするのが
OOかどうかは怪しいよ。
そんな勘違い君がいない事を願う。
0722デフォルトの名無しさん
NGNG甘いと思う
OOPでオープンソースを作ったとすると問題はクラスライブラリの互換性
特にGUIにクラスライブラリを使われてしまうと 合成が出来なくなる。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGあるクラスライブラリを派生したもの同志なら出来るけど。
0725デフォルトの名無しさん
NGNG具体例をあげてくれよ
どういうケースで問題があるのか。
クラスライブラリ同士を合成するってどういう意味だ?
フレームークを合成するだったらネタだとしか思えないけど。
WEB系はコーダーって言うんだよ。
プログラマーとは言わない。
0726デフォルトの名無しさん
NGNGなんかそうみたいだね。WEB系って最先端のイメージだったのに。
これからのWEB系はどうなるんだろう。
0727デフォルトの名無しさん
NGNGそうなん?
おれんとこじゃコーダーって聞いたことないぞ。
0728デフォルトの名無しさん
NGNGだから、BCBのTComboBox->ItemsをSTLのVectorに移したり出来ないよね。
BCB同志だったら、TComboBox->ItemsをTStringGrid->Cols[0]に代入とか出来るじゃない。
0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGなーんだ、自分のコーディングの技術がないだけじゃん(w
調てこい、ボケ!!
0734デフォルトの名無しさん
NGNG大いにウケタ(w
>>732
いまだと .net なのか?
一昔前は IIS + VBScript, JSP とか Apache + Perl が流行ってたけど、あれは面
白いかっつーとそうでもない気がする。全体像を設計するのは楽しいけど、コーディ
ングは単調だし。
0735デフォルトの名無しさん
NGNG超お願い。技術教えて下さい。
今までVCLばっかりやっててSTLに挑戦しているところだ。
0736デフォルトの名無しさん
NGNGまずはプログラミング言語 C++ と Effective STL 読みましょう。
0737デフォルトの名無しさん
NGNGおまえ728か?
STLとか言って言い訳してんじゃねーよ。
まずOOわかれ。
それからSTLだよ。
何でSTLが必要(便利)なのかわかってから使え。
0738デフォルトの名無しさん
NGNGSTL は OO じゃないと思うけど。あれは Generic Programming でしょ。
(仮想関数を一切使わんし)
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGどうも勘違いしてるみたいだけどSTLは使えるよ。
728に書いたのは、VCL同志では、TStringsから派生した文字列セットは、
まとめて移動できるけど、STLには移動できずにループでまわしてセットしなきゃ
ならんのじゃないの?ってこと。
0741デフォルトの名無しさん
NGNGSTLでできることは全てOOでできる。
でもSTLで書くと、うまくかけるケースがある。
それが何かわからないまま、STLを乱用するのはよくない。
Javaが最初にSTLを実装しなかったのはそのためだと「思う」。
Javaでgenericsが使えるようになるのはいつだっけか?
楽しみだ。
0742デフォルトの名無しさん
NGNG今はJavaはSTL使えるのでしょうか?
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGまだ。Generics のサポートは Java 1.4 で入る予定だったが、間に合わず次に
持ち越しになってる。
0745高校生
NGNGわざわざ作る必要ないだろ!gccが使える環境なら
%cpp -P foo.java > temp ; mv temp foo.java
でCのプリプロセッサが使えるだろ。。。誰か、本番で
使ってみるチャレンジャーおらんかな?
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNGhttp://staff.aist.go.jp/y-ichisugi/epp/j-index.html
0748
NGNGプリプロセッサの数だけJavaの方言が出来てしまう。
0749デフォルトの名無しさん
NGNG一緒に配布したら誰でも使うようになるだろうが。
0750デフォルトの名無しさん
NGNG確かCプログラミングの「教科書」でとんでもないマクロを使いまくって
いたのがあったと記憶している.
Java処理系と一緒に配布しないのは正解.
0751
NGNGはあ?
■ このスレッドは過去ログ倉庫に格納されています