オブジェクト指向は戦場では必要無し その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/
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激しく同意
0560デフォルトの名無しさん
NGNG>アンチは教育してやれば理解するようになるが、
>XP信者は永遠にプロセスを理解することは無理だな。
XPってのはOOを理解した上での原点回帰だと思うが、その口ぶりだと553はOOを理
解せずにXPやってる現場ってのをどこかで見てきたようだな。
非常に希少な例だと思うんで紹介してもらえないか?
0561デフォルトの名無しさん
NGNGつーか、XP自体がプロセスを極端に調整した例だということを
理解してないようですな。
XPをちゃんと運用するためにはソフトウェア工学、特に方法論を
教科書憶えただけでなくしっかり身につけている人が必要で、
その上でその極端な例としてのXPを実行するもんだと思うのだが。
型無しと型破りの違いだな。
0562デフォルトの名無しさん
NGNG嫌気がさしてやってるもんだと思ってるけど。オレモナー(藁
0563デフォルトの名無しさん
NGNG×XPやってる
○XPに興味もってる
0564561
NGNGうん。そういうゴシック様式というか、セレモニー的な部分を
極端に減らしているのがXPだよね。
で、その分、リファクタリングやユニットテストで補なっているわけだし
ストーリーとユースケースも深い関係がある。
上に挙げた用語はどれもソフトウェア工学の用語だし、その背後にある
相互関係や危険サインや監視の仕方や対処法なんかを理解する必要がある
と思うけど、どうよ?
0565デフォルトの名無しさん
NGNGRUP、つーかラショナルが嫌なんだよね。結局プロセス実行するには
ツール買わせるように出来てる。この辺りの巧妙な手口は正直好かん。
理論としてはヘーゲルの「歴史」を想起させるぐらい立派な
ものを目指してるのかもしれないけどさ。その裏にある動機が
いやらしい形で見えてくるのがキショイ。
0566561
NGNGあ、それは俺もある (藁
なんだよ、そのRはよぉ、って。
その一方で、プロセスってのはそのまま適用するものじゃなくて
各プロジェクト毎に改変して応用すべきものだとも思うんだよね。
だから、あんまり1つの方法論にベッタリなツールも嫌いだったりする。
俺にとってはツールに期待するのはUMLであってRUPじゃないんだな。
0567デフォルトの名無しさん
NGNG一応教科書読む限りじゃ、プロセスはプロジェクトにテンプレートを
与えるものっていう位置付けになっていて、ツールはプロジェクト
じゃなくてプロセスに対応するものという位置付けになってる。
だからツールはかなりの汎用性を持たせてあるんじゃないかな?
おれはRationalナントカなんて触ったこともみたこともないから
詳しいことはしらないw。教科書読んだだけのヘタレだから。
ただ一つ言えるのは、RUPなんていったところで彼らが仕様を無償で
公開してるのは方法論のモデリングに関する成果だけで、実務を
遂行するにあたり必要となるツールに関してはおそらく特許で
ガチガチになっているものと思われます。危険です。
彼らの言うプロセスとはイコール、ツールのことですw。
この濡れ衣を脱がせる人、なんか書き込んでください。
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG>ツール
というか、RUP にすら満足に使えない
0571デフォルトの名無しさん
NGNG結果として出したプログラムのレベルは
OOできない人=アンチ<<<<<<<<<<<<<<<<<OOできる人
だと思うけど、どう?
0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNGif文のネストの深さで
0574デフォルトの名無しさん
NGNG必要かどうかは別として
「レベル」とか「○○>>>××」とか言ってる奴は
厨房だとだと思うけど、どう?
0575デフォルトの名無しさん
NGNGプログラムには、実装・設計とも良し悪しはある。みんな平等ということはない。
ただ、
プログラマをOO派・非OO派に色分けしたときに、このスレで出てきたプログラ
ムでそれぞれの能力を測る
ことには全く意味がないし、そんなことをして喜んでるのは厨房だと思う。
0576デフォルトの名無しさん
NGNG0577grrrrrrrrr....
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581
NGNGcccc以外の使いやすいメトリクスツールを紹介してくれ。
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGhttp://osb.sra.co.jp/Smalltalk/ObjectOrrery/Japanese/manual/index.htm
>>エセsmalltalker
http://www.sra.co.jp/people/aoki/Jun/Main.htm
0584デフォルトの名無しさん
NGNGどのバージョンの?
4.4BSD 以降だと VM の設計なんかは、言語こそ C だがかなり OO っぽい
と思うぞ。newconfig とか new-bus も然り。
0585デフォルトの名無しさん
NGNGPC88板アルフォス(by森田)
0586デフォルトの名無しさん
NGNGエセSmalltalkerって誰のことだ?
春になってきたのかなぁ…
0587デフォルトの名無しさん
NGNGラショナル製品を買えないほどの貧乏会社で
働いてるんだね。プ
0588デフォルトの名無しさん
NGNGまあ、予算取ることはできても活用できなそうで乗り気にならない。
0589デフォルトの名無しさん
NGNG必要経費
0590デフォルトの名無しさん
NGNG不必要経費の間違いじゃネーノ?
買ったはいいが死蔵してる会社って結構多いぞ。
0591デフォルトの名無しさん
NGNGラショナル製品を導入後、継続して活用していますか?
・はい 5%
・いいえ 95%
0592デフォルトの名無しさん
NGNGOOはプログラマなら誰でもかかる一種の麻疹みたいなもんなんだよ。
命を落とすほどの病気じゃないから、そう、目くじら立てるなって。
■ このスレッドは過去ログ倉庫に格納されています