オブジェクト指向は戦場では必要無し その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/
0609デフォルトの名無しさん
NGNGそりゃ、実装が一番詳細な情報だからな。
ただ木を見て森を見ずとか、実装の詳細に溺れる可能性も高い。
0610デフォルトの名無しさん
NGNGそいつを変更するには、誰の了解を得なければいけないかがわかれば十分。
というわけでUMLからコードに落としたり、コードからUMLを生成したりすんのは
バカ。
そんな機能を売りにしてるツールは....
いやもっと、そんなもの買おうとする方が...
0611デフォルトの名無しさん
NGNG関係はないんだよね?
0612デフォルトの名無しさん
NGNG少なくともトレーサビリティは大事だと思うが。
0613デフォルトの名無しさん
NGNGどうい。ツールを売る方は金儲けから製品作ったんだろうが。
コードジェネレータによるコードが冗長で読み難い(←コード書いた人の考えが読み取れないんだよね)
という問題を解決するために、
クラスによる差分プログラミング開発(これがOOPかどうかは別にして)が行われるようになったんだよね。
だから、UMLによるコードジェネレータという考えはなんか外してると思った。
0614デフォルトの名無しさん
NGNGどのレベルのクラス図か、による。
分析段階で作ってるクラス図だと、動的分類/多重分類あたりまえなので、
C++ や Java のような静的分類/単一分類前提のクラスには一対一には
対応しない。
0615デフォルトの名無しさん
NGNGとりあえず、メモさせて頂きました。
元ネタはどこからですか?
0616デフォルトの名無しさん
NGNGUML モデリングのエッセンスとか、アナリシスパターンあたり。
0617デフォルトの名無しさん
NGNGあまぞんにちゅもんしまう。
0618デフォルトの名無しさん
NGNG最終的に実際にクラスになるものとそのメソッドを考えた方が
簡単ということは無いの?
実装上の問題も無いし。
0619617
NGNGなに読めばいいのかわすれちったんだよね(w
0621デフォルトの名無しさん
NGNGそうかもな。
だがこのみちで飯を食う以上、最終的に金にならないと判断できたものは
それ以上使わなくても良いだろう。
UMLという記述言語は取り入れるがそれを取り巻くツールを使うかどうかは
全然別問題だしな。
0622デフォルトの名無しさん
NGNG場合によるな。
経験上、問題領域を素直にモデリングする場合には、動的分類/多重分類を
使った方が楽。どうも、その方が人間が物事を把握するフレームワークに近い
ような気がするんだわ。
じゃあ、常に「分析、設計、実装」レベルでクラス図を三種類作るかというと、そ
うでもない。そもそも図は
コア部分だけ
図に書いたほうが理解が深まる部分だけ
書けば十分だから図を書かない場合も多いし、結果的にいきなり設計レベル
図を書いて終わりってこともある。
0623デフォルトの名無しさん
NGNG>UMLという記述言語は取り入れるがそれを取り巻くツールを使うかどうかは
>全然別問題だしな。
OMGが推進してるMDAについてはどう思う?
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG大人数でOOプロジェクトをまとめようとすると
宗教と同じで、戒律を作って各PGに守らせるよ
うにしないとだめ。つまり現実的な開発方法と
は言えない。
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGバランス木とかコルーチンとか実装の話になると黙るのに、そこだけ元気なもんで会議が踊る
0628デフォルトの名無しさん
NGNGそれ自体OOと関係があるのか?
0629
NGNG@ITがついにこんなリンクタイトルで記事掲載
http://www.atmarkit.co.jp/fjava/devs/interview01/interview01.html
0630デフォルトの名無しさん
NGNGこのおっさんが言ってるの再利用部品とはコンポーネントのことだね。
0631デフォルトの名無しさん
NGNGバランス木 ・ オブジェクトをどう管理するのか
コルーチン ・ フィルターのようなオブジェクトをどう実装するか
0632デフォルトの名無しさん
NGNG無理だろうけどな(w
0633デフォルトの名無しさん
NGNG0634
NGNG1)オブジェクト指向は失敗した。
今後は以下OOが失敗した以下の2点を目標にすべきである。
2)生産性の向上
この点について、Java等の一連のOOPLが失敗した最大の原因は
ユーザーライブラリを無視し、セミナー屋やマスコミを動員して
すでにあるソフトウエア資産の破棄に無理やり誘導したことである。
教訓として、ソフトウエア資産の破棄を迫るような言語は今後は
一種の詐欺と見なして良い。
2)再利用性
「まず言語構造・設計構造ありき」などという言語・構造原理主義を捨てて
再利用性を目標にすべきである。
0635デフォルトの名無しさん
NGNGWindowsはVisualBasicで作られてます。
0636
NGNGコンポーネントってこと?
0637
NGNG社内で使える物を作ろうとするとコスト高になるから違うな。
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640
NGNG導入しても生産性上がらないから、導入コスト分だけ無駄。
従って損益分岐点は存在しない。
0642デフォルトの名無しさん
NGNGOOPL入れたからといって OO しなければならない訳ではない
OOPLは好きだし使うけど OO嫌いな人もいるだろし
0643638
NGNGOOPL使いはじめたとして、ある程度わかってるヤツが解ってる範囲で使うのは、いい。
わかんないヤツが、従来の方法のまま、使うのもいい。
困るのは、解ってないのに、自分はもう極めたような勘違いして暴走しるようなやつ。
そういうやつの足の引っ張り力って、結構強いから、損益分岐点の遠のいていく速度が加速するんだよね。
俺に、そういうやつを説き伏せる力が無いのがいけないんだろうけど、
でも、こういうヤツに限って、周囲からはスゴイって評判だったりするんだ、往々にして。
グチになちたな、マ板逝こう…
0644デフォルトの名無しさん
NGNGつまり、メッセージを送るって事は、送ると受けるという2つのオブジェクトがあるという事
例えば、データを入力する機能を持ったオブジェクトの実装では
A)InputDataというメソッドを呼び出して貰う
B)データが出来る都度 PutDataを呼び出す(最終的に外部のオブジェクトが呼ばれる)
という大きく分けて2つの方式があるけど、この2つの方式は切り替えられない。
もちろん、最初から設計してあれば、同期スレッドを使う事で可能だけど、スレッド切替
は比較的重い処理だから現実には選択肢にのぼらない。
当然使う方は Aの方式が楽で 作る方はBの方式が楽。圧縮とかの処理だと圧倒的にAが
難しくなるから、みなついBの方式で実装したがる。
あ長文になりそうだから、結論だけ書くと、
つまりは、メッセージを送る方式の実装と メッセージを受ける方式の実装が継承により
切替られるような仕掛けが OOPLに必要ではないかという事
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGんなこたない
スレッド使った場合のオーバーヘッドの
全処理に占める割合をどのくらいに見積もってるんだ?
0647644
NGNG>>646 たとえばストリームのような1バイト単位のデータ送受で単なる
コルーチン切替ならメモリアクセスに隠れてしまう程度の負荷
だけど同期スレッドだとそうはいかない。
0648デフォルトの名無しさん
NGNGお前fiber使ってみたいだけちゃうんかと(略
1kバッファリングすればオーバーヘッド1024分の1に減るだろ。
リアルタイム圧縮の話をしてるのか?
0649
NGNG切り替えは重い。これ常識。
0650デフォルトの名無しさん
NGNGプロセッサや OS アーキテクチャにもよるけどな。
0651644
NGNGそんな・・・・1KByte単位にバッファリングするなら 途中にFIFOオブジェクト経由して
やればスレッドも不要、だいいちバッファリング出来るような処理なら >>644 分類A
に書き換えるのもそんな手間じゃないよ
0652デフォルトの名無しさん
NGNGCORBA使ったやつとかだとOO使った大規模ってことにはならないかな?
にたよーなのでOSってわけではないがGNOMEとか
0653デフォルトの名無しさん
NGNG話がめちゃくちゃ・・・・
0654デフォルトの名無しさん
NGNGたとえば Bタイプで作った後で Aタイプに直さなければならない場合に
0655644
NGNG色々かな。
デバッグが終ったソースで弄るのがメンドクサイ時はアセンブラソース吐かせて、
スタックフレーム弄ってコルーチンにしてる。
つまりクラス内にスタック用のエリアを取っておいて、BP/SPをそっちに切替えておく
で、PutDataとかのメソッド内で これをもう一度切替えるというか交換するようにする
でも、API呼び出しがメソッド内であるとダメね
未デバックだとそんなこと毎回やってられないから なんとか書き換えるけど
0656デフォルトの名無しさん
NGNG再利用なら昔からしてるよ。ライブラリとかいう形でね。
あとはパターンだね。考え方、テクニックの再利用。
ソースコードの再利用は考えないほうがヨシ
XPとかの本でも、そう言ってるし。
0658デフォルトの名無しさん
NGNG新しいOSリリースするたびに一から作り直してたんじゃないのか?
0659デフォルトの名無しさん
NGNG> 新しいOSリリースするたびに一から作り直してたんじゃないのか?
Windows NT 3.x, NT 4.x, 2000, XP と全部スクラッチから書いたっつーことは
あるまい。
0660デフォルトの名無しさん
NGNGフルスクラッチなんてことはあるわけない。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG0664
NGNGプログラムを組むたびに1から作りなおしていたのです。
オブジェクト指向の登場で初めてプログラムの部品化、再利用が可能となりました。
0665デフォルトの名無しさん
NGNG0666664の続き
NGNG素直に受け入れてくれません。
多くのプログラマーは具体例で示しても
「そういう事は今の言語でもできる」などと躊躇して技術を学ぶ姿勢を
見せません。
何故こういう事態になるのでしょうか?
それは旧来タイプのプログラマーは職人気質の人が多く、
ソフトウエアの生産性・再利用には無関心だからです。
オブジェクト指向はやる気のある人間の居る会社でしか受け入れられないという
壁に突き当たっています。
日本のソフトウエア産業の振興の為にもこうした壁を取り払わなければ
なりません。
てな事をOO初期のセミナー屋は言っていた。
詐欺だつうの。
0667デフォルトの名無しさん
NGNGそれなら clibを利用する事も再利用だぞ
0668
NGNG再利用で生産性上がってないの。
FWは商売になってないし。
0669デフォルトの名無しさん
NGNG思いっきりなってんだろ
FW自体が無料と商売になってないはまったく別だぞ
0670デフォルトの名無しさん
NGNG本当の理由
1.既にシステムを作る方法を一つ手に入れていて、それを使えば
困らないのに、今更新しいものを覚えるのが面倒くさいから。
2.胡散臭いから
1はともかくとして、2は、今まで実務の実績も経験もないくせに
偉そうにOOを語っていた詐欺師紛いのエバンジェリストなヤツラ
の責任だよな。金だけ湯水の如く請求するくせに、コストパフォー
マンス悪すぎなヤツラ。さらに、成果が出ないのを客の能力の
せいにするアフォ。そんなのばっかり。
0671
NGNG0672デフォルトの名無しさん
NGNG今の高級言語並の生産性はあった。 ただし熟練者ご用達って事。
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG煽りにしても頭悪すぎ。
0677デフォルトの名無しさん
NGNG歩調乱すなよ!
もうちょっと我慢したらもっと大物が釣れたのにぃ。
0678デフォルトの名無しさん
NGNG>今の高級言語並の生産性はあった。
ネタ?
0679デフォルトの名無しさん
NGNGライブラリをしっかり整備しないといけなくて、
なおかつ熟練者じゃないといけない
って生産性悪いって言わないか。
0680デフォルトの名無しさん
NGNGこんな感じといいたいんだろう。
人数の分布は・・・・
0681デフォルトの名無しさん
NGNG考えやすくなったのでは?
あとOOならではテクニックあるし。
ライブラリに関しては昔も今も変わらずって感じがする
0682デフォルトの名無しさん
NGNGありえない。
汗でhellowold書いてみればわかる。
汗のみでソフトウェア開発は無理。
特にx86は死ぬ。
0683デフォルトの名無しさん
NGNGでも上じゃないとねー
0684デフォルトの名無しさん
NGNG0685
NGNG0686デフォルトの名無しさん
NGNGx86、asmでソフトウェア開発してます。但しwin32 + masm。
Cで書くのと殆ど差は無いです。
0687デフォルトの名無しさん
NGNGBIOS に文字列へのポインタ渡すだけだよ?
0688デフォルトの名無しさん
NGNGそれは「私はCが苦手です」と言っているのと同じ事では?
0689デフォルトの名無しさん
NGNGヒューレットパッカのスタック電卓って知ってる? 1+1を 1 ent 1 + って入力するやつ
会社の先輩にあれでなければ電卓使えない人がいるよ
Cのa=b+cで書くより アセンブラで考えた方が楽な人もいるって考えたらいいんじゃない?
アセンブラなら 上で出てる メインーサブルーチン関係に縛られない書き方も自由だしね
0690686
NGNGどれ位で苦手って言うのか知らないけど、win32プログラムは
基本的にAPI叩くだけだから言語は何でもあまり関係無いのでは。
特にmasmはあまりにマクロが強力で、Cで書くのと差は殆ど感じないよ。
まあC++は苦手だけどね。
0691デフォルトの名無しさん
NGNG>689
私もその一人、逆ポーランドというの。forthなんて言語も同じね。
実は慣れると、(1+2)*(3+4)みたいな演算が、読んだとおりに入れればいいのよ(1に2足して3に4足したものをかける-> 1 ent 2 + 3 ent 4 + *)。実に楽。
「アセンブラで考えたほうが楽」とは別の話。あなたがHPの電卓の背景にある体系を知らないだけ。
>688
そもそもCは高級アセンブラっていうぐらいだから、基本的には素養は同じ。
アセンブラも高級言語化してるしね。逆にアセンブラもかけないCプログラマのほうが問題じゃないの。
ただ、Intel系の場合、レジスタの個性を知る必要があるので、その意味では大きく違うが。
0692デフォルトの名無しさん
NGNG「プログラミング言語でみる性格判断」
* C
他人のプログラムは決して信じない。ライブラリは自分でつくるものだと思っている。
* C++
自己主張がなく、まわりに流されやすい。
* Java
俗物。熱しやすく、冷めやすい。
* BASIC
間違った基礎教育を受けた。もうやり直しがきかない。
* Perl
おたく。変態。奇才。
* AWK
詩人。夢想化。複雑な仕事には向かない。
* SmallTalk
理想主義者。現実を認めようとせず、箱庭に楽しみを求める。
* Prolog
論理主義者。哲学者。地に足がついていない。
* LISP
変人。協調性がなく、常に自分が正しいと思っている。
* COBOL
がんこで融通がきかない事務屋。すぐ昔話をする。時代に取り残されていることに気がついているが、自分ではどうすることもできない。
* FORTRAN
実験派の研究者。数学的・物理的な美しさは求めるが、プログラミングの美しさは求めない。
* FORTH
人間的な美しさよりも、機械的な美しさを求める。
0693デフォルトの名無しさん
NGNGCもC++もJavaもPerlもAwkもPrologも使う漏れって・・・
0694デフォルトの名無しさん
NGNG* Delphi 独立独歩
0695デフォルトの名無しさん
NGNG他人のプログラムは決して信じずまわりに流されやすい俗物。おたく、変態で地に足がついていない。
0696デフォルトの名無しさん
NGNG他人のプログラムは決して信じず、まわりに流されやすい俗物。
複雑な仕事には向かず、おたく、変態で地に足がついていない。
awkが入ってなかったヨ。
0697デフォルトの名無しさん
NGNG0698
NGNG0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG>
>間違った基礎教育を受けた。もうやり直しがきかない。
これは性格診断か?(w
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNGasmが無いYO!
0704デフォルトの名無しさん
NGNGここがマ板とム板に別れた頃にそんなスレッドあったよ。
0705デフォルトの名無しさん
NGNGすべてを把握しないと気がすまない超管理主義者。付き合う人間は一苦労。
0706デフォルトの名無しさん
NGNG俺アセンブラ使いだけどOO的設計 管理が面倒だから
行き当たりばったりで思いついたところからかけるアセンブラが好き
0707デフォルトの名無しさん
NGNG>行き当たりばったりで思いついたところからかける
アセンブラなら許されるってもんじゃないと思うぞ。
OOPLだって行き当たりばったりにクラスを書くことは出来る。
0708デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています