[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 06/26 23:08 / Filesize : 115 KB / Number-of Response : 533
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向は愚かな考え。



1 名前:デフォルトの名無しさん [2014/03/01(土) 16:49:54.65 ]
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
hayabusa3.2ch.net/test/read.cgi/news/1393649485/

オブジェクト指向(英語:Object Oriented)とは、主にソフトウェアの設計や開発における考え方のひとつ。
大きな意味でのデザインパターンである。

近年では「オブジェクト指向」というとC++、Java、C#、Ruby、PHPなどの「オブジェクト指向プログラミング言語」、
およびそれらを用いた「オブジェクト指向プログラミング」が世の大半を占めている関係で、まるでイコールのように
言われることも多いが、あくまで物事の考え方であり、プログラミング言語に限ったものではない。

たとえば、最近ではあまり新規では見かけなくなったが、医療分野で使われているDICOM規格をはじめ、UNIXやLinuxで
今なお使われているX Window Systemの仕様書など、1980年代ごろにはオブジェクト指向規格書やオブジェクト指向
仕様書なるものも大量に存在した。
monobook.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91

252 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 01:59:16.02 ]
すみませんでした
読み直して来ました

253 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 02:13:51.96 ]
>>245
人間というサブクラスに bool is美少女 を入れて
is美少女==false の場合にのみ使用するプロパティとして
enum sex={male,female,bysexual}
を用意して、人間::うんこするメソッドを入れれば良い

254 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 18:25:01.44 ]
そこらじゅうにコピペしまくってるあほんだらがいるのはここか!!!!

責任とって全部のスレの削除と
書いてるやつの処理お前らが責任持ってやれよ。

お前のやってることは犯罪だ。

255 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 18:34:46.10 ]
ああ確かにお前の存在は犯罪じみているな

256 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 00:47:54.30 ]
ランボーにぼこぼこにされるぞ

257 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 10:46:25.62 ]
>>254
山崎渉にもよろしくな!

258 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 13:03:53.78 ]
宣伝されてるスレを立ててるBEは全て同一人物なんだよねぇ
無作為にプログラム関係のスレを宣伝するわけでなく必ず特定のBEが立てたスレのみを宣伝する
一体どこの誰がこんなスパム行為をやってるのか知らないが、不思議な話だなぁ

259 名前:デフォルトの名無しさん [2014/03/07(金) 19:24:17.15 ]
勃起しらわ

260 名前:デフォルトの名無しさん [2014/03/07(金) 21:38:42.09 ]
美少女は仮想の存在



261 名前:デフォルトの名無しさん [2014/03/07(金) 21:39:31.47 ]
実身は別にある

262 名前:デフォルトの名無しさん [2014/03/07(金) 21:42:00.20 ]
つまり人間クラスにvforkメソッドを用意してそこで天使クラスのインスタンスを生成すればよい

263 名前:デフォルトの名無しさん [2014/03/07(金) 21:44:11.14 ]
あと人間クラスが一定年齢以上だとvforkメソッドで例外発生

264 名前:デフォルトの名無しさん [2014/03/07(金) 21:46:12.94 ]
便意はプッシュ配信かつ非同期なので人間クラスにイベントとして実装。
天使クラスには実装しない。

265 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 22:10:03.57 ]
天使クラスってなんだよ
麻婆豆腐か

266 名前:デフォルトの名無しさん [2014/03/07(金) 22:26:21.08 ]
こんな感じでどうよ?

267 名前:デフォルトの名無しさん [2014/03/07(金) 22:27:35.31 ]
美少女って何歳まで許される?

268 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 22:53:29.92 ]
高校生を少女っていうか?

269 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 23:16:55.86 ]
え、言うだろ

270 名前:デフォルトの名無しさん mailto:sage [2014/03/07(金) 23:31:44.42 ]
つかまるぞ



271 名前:デフォルトの名無しさん mailto:sage [2014/03/08(土) 08:09:59.22 ]
80年代にロリコンという新語が流行った時には
女子高生ものが"ロリコン写真集!"って売られてたな。
C++が"オブジェクト指向!"ってのと同じ感じで

272 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 01:46:10.13 ]
現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
kohada.2ch.net/test/read.cgi/vote/1394290844/

273 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 01:55:08.17 ]
>>272←こいつも精神病だが
このスレ立てた奴も精神病だろ

精神病うざすぎ
しねよ

274 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 10:09:08.71 ]
これが同族嫌悪です

275 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 20:45:24.02 ]
スカトロとかする美少女は美少女じゃないん?

276 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 20:49:13.22 ]
それ美しい少女じゃなくて美が少ない女じゃないですか

277 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 21:12:02.55 ]
馬鹿なこと言ってるんじゃありません

278 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 04:29:08.10 ]
美少女に限らず、人間を物扱いするところから駄目なんですよ!

279 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 07:44:57.28 ]
つうか、そもそもの発端が妄想だから説得力無いんじゃね?
排泄しない人間なんていねえし、美少女だって排泄くらいするんだから
本当にそんなクラス作ったら機能不全で使えねえだろ。

280 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 10:08:12.45 ]
3次元アイドル厨か?随分と次元の高いツッコミですね(棒



281 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 23:51:54.23 ID:CTgW2f1B]
OMTに戻ればいいんだよ
あのころがいちばんよかった

282 名前:デフォルトの名無しさん mailto:sage [2014/03/15(土) 21:00:05.65 ID:9QOnV1hL]
OpenWindowsLibraryじゃなくて?

283 名前:デフォルトの名無しさん mailto:sage [2014/03/15(土) 21:03:57.32 ID:9EekgQ2l]
>>282
それを言うならBoochだろ

284 名前:デフォルトの名無しさん [2014/03/20(木) 11:39:23.93 ID:roUgsesJ]
ポリモーフィズムとは、子であり親である事。

人はクローンなどの例外を除いて皆子である。

つまり、子を産むと親になるから、

子を産まなければ、ポリモーフィズムではない。

285 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 11:46:40.46 ID:T7K9vFKB]
逆だろ。たくさんの子ども達が集まってお母さんを作り出すのがポリモーフィズム。

286 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 12:45:08.50 ID:WdQBpVGs]
>>285
何か、そう言うとヤバい感じに聞こえるなw

287 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 17:14:16.15 ID:LwQhutqK]
違うよ、iPS細胞だろ、どう考えても

288 名前:デフォルトの名無しさん [2014/03/21(金) 02:21:12.99 ID:GtGmhcv1]
class Human {
list<Excrement> ex;
double energy;

Human() { fu = nil(); ex = nil(); energy = 12.93;};

virtual void eat(Fuel fu) {
double eff = 0.8;
energy += asEnergy(fu,eff));
ex.insert(ex.begin(), asExcrement(fu,1.0 - eff));
};

static void evacuate1(Excrement *ex) { ... }
void evacuate() {
for_each(ex.begin, ex.end(), evacuate1);
}
};

289 名前:デフォルトの名無しさん [2014/03/21(金) 02:25:03.29 ID:GtGmhcv1]
class NonexistentBeauty: public Human {
void eat(Fuel fu) {
energy += asEnergy(fu,1.0);
};
};

290 名前:デフォルトの名無しさん [2014/03/21(金) 02:27:57.34 ID:GtGmhcv1]
ところで、うさぎがほたるちゃんの家でトイレを借りるシーンがあるのだが、
これはどう実装したらよかろうか。



291 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 10:59:57.06 ID:Z2V4Fyi/]
二次元から卒業しろよw

292 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 11:20:09.87 ID:o89Np3ew]
ウサギも蛍も三次元だろ!
みんなみんな生きているんだぞ!

293 名前:デフォルトの名無しさん [2014/03/21(金) 11:28:57.73 ID:o3B7shKW]
わかりやすいな。

294 名前:対象GUY [2014/03/21(金) 12:40:33.91 ID:GtGmhcv1]
二次卒業式が解けない。

295 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 12:46:47.50 ID:ZzJQWQBN]
エージェント指向はどうなの?

296 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 12:57:16.64 ID:o89Np3ew]
>>295
あったなー。十数年前、俺が大学一年ぐらいに
先生がオブジェクト指向の次みたいに言ってた。

話を聞いて、使えないことはないけどこれ
次とかじゃなくてオブジェクト指向に情報伝達の
インターフェースを追加しただけじゃんって思ってた。
つまりオブジェクト指向と何も変わっていないと。

今の状況見れば、やっぱりそうだったって感じ。

297 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 05:55:12.38 ID:HmFM1ddA]
根本にあるのは構造化およびモジュール化であって
それ以上は単なる規約の追加にしか過ぎんよ
これからも○○指向っていうのはいくらでも出てくるだろうけど
ほとんどバズワードみたいなもの

298 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 17:26:38.34 ID:imc/D2ql]
つうか、それぞれのエージェントがタスク化されてそれぞれの間をメッセージ交換で連絡取り合いながら一連の作業を進めていくという実装上の仕組みは無視か?

299 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 17:38:31.22 ID:6aWhjAAT]
エージェントは、なんでもできる万能エージェントか?
まあ、そんなものはありえない。

つまりエージェントには「何が出来て何が出来ないか」の
情報取得インターフェースを持っている。

だが、何が出来るか?っていうのをカタログ化することはできない。
つまり、この関数は何が出来る。このオブジェクトは何が出来る。というのを
定義することは出来ない。曖昧すぎて正確な定義をするのが困難だから。
人間の言葉でなら可能だがね。

情報取得インターフェースをもたせる所まではできるが
「できること」を定義することが出来ない。
エージェント指向なんてのが実用化されるとしたら、曖昧な命令で正しく動くAIができてから。
だが曖昧な命令で正しく動くことは人間でも無理。

情報取得インターフェースもメッセージ交換もそれはオブジェクト指向でできてること。

300 名前:デフォルトの名無しさん [2014/03/22(土) 22:16:40.73 ID:imc/D2ql]
エージェントは出来る事しかしないんだから、曖昧さなんて存在しないよ。



301 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 23:07:15.23 ID:qnqn2d7b]
アスペクト指向もエージェント指向もオブジェクト指向に包摂させるもの?

302 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 23:55:23.47 ID:Xa2L0rRU]
されないね

303 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 00:20:01.93 ID:JKEnhuU6]
>>300
そのできることの定義ができないんだよ。

「私は掛け算が出来ます」ってことを
コンピュータ上でどうやって定義するか?

無理でしょう?

エージェントではなくて、エージェントに指令を出すほうが
エージェントのことを知らないといけない。
掛け算をしたいからMath/Multiplicationエージェントさんに仕事を頼もうって具合に。

これなら実現可能だけど、エージェント指向では
誰に(Math/Multiplicationエージェントさん)ではなくて、仕事内容(掛け算)を
やってくれる人を買ってに見つけるものなので、
正確に仕事内容を伝えなきゃいけない。

仕事を出すために仕事の処理内容を引数にするとかわけわからんw
それクロージャーを渡して別スレッドで実行ってことかいな?w

304 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 06:22:33.88 ID:wpIB4f22]
あぁ、根本的に分かってねえなこいつw
いくらエージェントとか言っても、相手はコンピュータ
自然言語理解する訳ねえだろ。

計算式をエージェントが解く場合、まず構文解析エージェントがトークンに分ける。次に演算順序エージェントが順番に並べる。
そしてかけ算エージェント、割り算エージェント、足し算エージェント、引き算エージェントがそれぞれ計算し、演算順序エージェントと協調して結果をとりまとめるエージェントに渡して、人間さまの理解出来る形に変換するエージェントがプリントアウト。

オブジェクト指向だと計算順序から次の処理オブジェクトまで静的に人間様がコーディングするが、エージェントの場合はメッセージだけ規定してコーディング。

理解出来る物しか実行しないというのは、文字通り本当に指定されたメッセージ処理以外しないって事だ。

305 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 06:29:03.28 ID:JKEnhuU6]
>>304
それだとエージェントである必要が全く無いですよね?

まず構文解析オブジェクトがトークンに分ける。次に演算順序オブジェクトが順番に並べる。
そしてかけ算オブジェクト、割り算オブジェクト、足し算オブジェクト、引き算オブジェクトがそれぞれ計算し、
演算順序オブジェクトと協調して結果をとりまとめるオブジェクトに渡して、人間さまの理解出来る形に変換する
オブジェクトがプリントアウト。

さて、エージェント特有のものは何でしょうか?

> オブジェクト指向だと計算順序から次の処理オブジェクトまで静的に人間様がコーディングするが、
> エージェントの場合はメッセージだけ規定してコーディング。

そのメッセージを作るのが不可能なんですよ。
メッセージの一例を書いてみてください。

306 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 08:04:56.81 ID:pu2brC7x]
すげー勘違いしてない?
エージェントって言ってるのは呼び出し方がちょっと違うだけの
機能を持ったオブジェクトだよ

307 名前:デフォルトの名無しさん [2014/03/23(日) 08:06:58.75 ID:2/mKAdk3]
20年くらい前エージェント指向というのが雑誌に書いてあったので読んでこれはダメだと思ったことしか覚えてない。

308 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 11:54:05.88 ID:hof0CNNK]
よく分からんが、エージェント全員に同じメッセージを出して、
受理できるエージェントが自動的に実行するってこと?

実行したエージェントが、次よろしく、とメッセージを出す。
それを受理できるエージェントが・・・

309 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:17:47.86 ID:JKEnhuU6]
>>306
だからそういうこと。
エージェント指向というものは存在しない。

オブジェクト指向にある種のインターフェースを持たせただけのもの。
エージェント指向で凄いことが出来るように言っているが、
その多くは実現不可能で、現実にはインターフェース以上にものにはなりはしない。

ただのインターフェースなのに指向とか風呂敷を広げ過ぎたんだ。

310 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:20:32.71 ID:JKEnhuU6]
>>308
うん。そういう宣伝をしているね。

だけどエージェントが全てのメッセージを理解できるわけでもなく
メッセージを出す側がやってほしいことを
ちゃんとエージェントがやるかといったら、
エージェントが勝手に判断してやることなんかない。

結局のところメッセージとは、受理できるエージェントを
指定した関数呼び出しでしかない。



311 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:24:58.25 ID:9EUDVluQ]
もしかして:分散オブジェクト

312 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:28:37.44 ID:JKEnhuU6]
>>311
そういうこと。

エージェント指向なんてものはなくて
実態はオブジェクト指向なんだよ。

313 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:45:38.51 ID:DU/ep8WR]
アスペクト指向も?

314 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:56:09.37 ID:JKEnhuU6]
アスペクト指向も指向ってほどのものじゃないね。
mixin等と同じようなもの。
オブジェクト指向のフレームワークや言語拡張で提供できてる。

315 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:57:22.52 ID:Ob+xqTTb]
何でもできる神クラスを作ろうとして結局何もできなかったって感じだな。
それだったらGoogleにリクエスト投げた方がよっぽど良い返事がもらえる。

316 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:10:53.11 ID:ZhYebgxz]
あらゆるプログラミング言語はアセンブリ言語のフレームワークや言語拡張だ、
と言っているようなものだ。実質何も言っていない。

317 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:12:18.32 ID:JKEnhuU6]
今更だがw 十数年前に聞いただけの記憶に頼るのはアレなんで、検索してみた。

itpro.nikkeibp.co.jp/word/page/10024992/
> エージェント指向 agent-oriented
>
> オブジェクト指向におけるオブジェクトを、自ら判断し処理できる
> 機能を持ったエージェントと呼ばれるモジュールに置き換えたもの。
> エージェント同士が状況に応じて自律的に連携、協調できるようになることを目指している。
>
>  エージェント指向システムを構築するに当たっては、
> それを使って解決しようとする問題を分割し、それぞれの問題を
> 解決するエージェントを設計するといった方法などが考えられている。

うん、あってたw

問題を小さくし、その問題を解決するエージェントってのは要するにクラスや関数のこと。
そこはオブジェクト指向でも同じなわけで、エージェントのキモは「自ら判断し処理できる」こと。

単純に、○○ができるエージェントさんに仕事を頼むのが、オブジェクト指向であり、こっちは簡単にできる。

エージェント指向では仕事を用意すれば、エージェントが勝手に仕事をするんだが、
その仕事=メッセージをどうやって定義すればいいのか。
仕事を行ってくれるための、"完ぺきな"命令を用意しなければいけない。大変な作業だよ。

「カレーつくってれ」という簡単なメッセージで人間世界は成り立つかもしれないが
コンピュータの世界じゃ詳細なレシピをメッセージとして、エージェントに渡さないといけないからな。
カレーに野菜が入っているか、肉が入っているかはエージェントにお任せ。
なんてものを人間はコンピュータに求めていないわけで。

318 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:15:19.10 ID:ZhYebgxz]
日経解説だしな

319 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:15:27.60 ID:JKEnhuU6]
>>316
あらゆるプログラミング言語はアセンブリ言語のフレームワークや言語拡張だよ。
正確には、アセンブリの中の特定のパターンに
名前をつけて、単純でわかりやすい記述(文法)でかけるようにしたもの。

指向は考え方。だけどエージェント指向やアスペクト指向は考え方ではなくて
機能(エージェント)と文法(アスペクト)にすぎないって話。

別に、使えないものだとは言ってないんだよ。
オブジェクト指向は指向でいいが
エージェントやアスペクトは指向ではないってこと。
だから「指向」としてはオブジェクト指向を置き換えるには至らなかったんでしょ。

機能や文法はオブジェクト指向言語やそのフレームワークに取り入れられたが。

320 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:16:04.42 ID:JKEnhuU6]
>>318
もっといい解説が存在するなら
それを書いてくれていいよ。



321 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:27:40.22 ID:GCXxAoQu]
美少女とトイレでばったりとか、美少女のお漏らしとか見れないのん?

322 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:28:26.44 ID:ZhYebgxz]
オブジェクト指向だって、機能と文法に過ぎないじゃないか。

323 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:31:50.05 ID:JKEnhuU6]
いえオブジェクト指向は(言語とは無関係の)設計パターンですよ。
オブジェクト同士の関連を表したもので、実装ではありません。

その設計パターンを実装しやすいような文法にしたのが
オブジェクト指向言語です。

324 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:39:18.52 ID:ZhYebgxz]
その言葉の「オブジェクト」を「アスペクト」に変えてみたらどうかな?

AspectJ は、アスペクト指向のパターンを実装しやすいような文法にしたもの、
以外のなにものでもない、と思うけど。

325 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 16:18:39.45 ID:3XgyoelJ]
トランザクションスクリプト全盛期にはインパクトあったじゃん
オブジェクトの外側でロジックが浮いちゃってたからこれを神でも小人でもいいけどエージェントと呼ぶとすっきりした気になった

326 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 16:29:43.48 ID:uH5dKzzp]
> すっきりした気になった

それは大事なこと。

327 名前:デフォルトの名無しさん [2014/03/23(日) 16:37:03.89 ID:jszu+iCk]
class Humen{
 void evacuation{
  printf("unko");
  return;
 }
}

class Bisyojo extends Humen{
 void evacuation{
   return;
 }
} 

328 名前:デフォルトの名無しさん [2014/03/23(日) 17:11:57.14 ID:X1SDIdox]
オブジェクト指向が自然を記述する為にあるとかわけの分からん勘違いしてる様な奴は度し難いという一例

329 名前:デフォルトの名無しさん [2014/03/23(日) 17:28:50.92 ID:wpIB4f22]
ObjectiveC以外でオブジェクト指向しようとするから悩むんだよ。

330 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:58:20.37 ID:zACKZbQg]
92,3年頃にでたOMT のツールが使いやすかったんだが名前忘れた。だれかしらない?



331 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 19:21:01.00 ID:JKEnhuU6]
オブジェクト指向は指向なんでそこから色んなパターンが生まれてるけど
アスペクトは1パターンでしかないんだよね。

オブジェクト間の連携の間に処理を割りこませる時に使うパターン

332 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 00:17:43.01 ID:uaFpB2hk]
>>328
ランボーが自動車をサンプルとして提示したから
現実に適用できる、なんだかすごいやつとして
いつの間にか広がったと信じています

333 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 07:21:48.48 ID:abZb4UQn]
オブジェクト指向って要するに大失敗した米国防総省のAdaプロジェクトの遺物だからな

334 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 08:36:32.03 ID:+IuI6ea0]
I Have to Work Faster and Faster
 スケジュールが長かった時代には、ドメインモデルを注意深くモデル化してコードに落とし
こむこともできたが、設計ミスがあると、修正して新バージョンをつくるまで数ヶ月かかって
いた。今日ほとんどのプロジェクトでは、ドメインを的確に理解することは、すばやく価値を
提供することよりも重要ではない。ドメインの理解はいずれにしろすぐに変わっていくし、顧
客側でもデプロイごとに新しい発見をしていく。ドメインのいくつかの側面を誤解していた場
合、リリースを繰り返す中ですばやく修正される。
 もし注意深いモデリングが重要でないのなら、オブジェクトモデルを忠実に実装すること自
体、以前よりも疑いの度を増してくる。アジャイルソフト開発は、品質と変更への対応を大幅
に改善したが、いまどきの要件に対しては、”必要最小限”かつ柔軟に変更に対応できるよう
にコードを保つ方法を考え直さなければならない。関数プログラミングはこのためにある。
shop.oreilly.com/product/0636920021667.do

335 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 18:35:49.17 ID:ftyS+NcD]
>>323
OOPでない純C言語でもOOP出来るもんな
言語サポートが無いから「やりにくい」だけで

336 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 18:38:56.70 ID:reURH2nI]
UML2.0への変化についていけず
ウォーターフォールに戻りました

337 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 00:04:03.82 ID:2SW0uc9D]
Cしか知らなかった頃は1関数内千行も書いて怒られていたがC++を知ってからは積極的に処理を外出しする癖がついた
その頃から業務の細分化もできるようになって後輩に仕事を与えやすくなった気がする十五年前の思い出

338 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 00:19:16.31 ID:3K6UX0Lt]
数千行は極端ですな。おれは15年前は中坊なんで想像もできないですが

一方今は、無数のフォルダ分けがなされて20行もないファイルが数千個ばらまかれ、リファクタツールかける気にもなりようがないメンテナンス不能なjavaプロジェクトみたいな極端も存在します
どっちがマシなんでそ

ぶっちゃけ手のつけようがあるかないかで言うと、(gotoスパゲティがなければ)数千行のcコードの方が望みがあるのかなとか思うんすけどw

339 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 01:12:21.29 ID:2SW0uc9D]
>>338
goto大好きBASIC(≠VB)の世代ですんで^ ^

Javaは残念ながら知らないんですが私の場合はC++が
仕様書がなくとも何とか他人が読めるコードを書けと教えてくれた
決して先輩上司ではなくてね

340 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 13:27:09.83 ID:fTe0++yc]
>>337

俺はN88-BASICの時代から1プログラム100行以下を心がけていた。。。たぶん、ストレスなく管理できるのは200行が限界じゃないかな。

プログラムの重複を整理するとC言語で95%がサブルーチン化できるが、どうしても5%は素直にサブルーチン化できない。
その代表格がsort()関数だろうね。標準ライブラリのsort()関数は最終パラメータにプログラムの開始アドレスを渡している。
この部分が5%にあたる。

 ただ、そう考えるとC言語は100%サブルーチン化出来るとも言える。最後は関数のアドレスをわたしゃいんだから。
そのアドレス渡しを高級文法の中で(知らない間に)使えるようにしたのがC++の特徴と言えるべさ。

 もっとも、、、C言語に関数を示す判りやすいキャストを登録しただけの方がすっきりした気がする。



341 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 13:39:35.84 ID:fTe0++yc]
 ただね、、、オブジェクト指向言語、いや、C++とそれをお手本にした言語というべきなんだけど、ゼロポストの言うとおり糞だというのは同感なんだ。

 オブジェクト指向の考案者は、もともとは「作業を楽する事を心がけるプログラミング」という意味だったんじゃないかね?
俺はSmallTalkは触ったことないからC++しか判らんのでそう思う。

 C++の作者はクラス化という考え方で「作業を楽する事を心がけるプログラミング」を実現しようとした。
で、それを見た子ネズミ達は、クラス化がオブジェクト指向なんだと勘違いしたのジャマイカ?

           ***

 C++のクラス化って情報処理で落ちこぼれの温床になっていると思うんだが詳しい人いないかな?
クラス化を素直に理解できる人は2種類いると思う。

1)アセンブラをマスターしている人。
 C++ってのは機械語で仕事していれば実に実に判りやすいんだ。

2)丸暗記に強いタイプ。

 C++がクソじゃねえか?ってのは、1,2も一般的とは言いがたいと思うというのが理由。

342 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 19:52:22.98 ID:xj0aRC2d]
同意。

たぶんクラスというのは元々、構造化プログラミングで関数をばらばらに扱うと
大変なことになってくるのでそれを簡単にする為にグループ化、もしくはモジュール化
していたのを、最初から言語仕様にしてしまおうという目的だったと理解している。

その結果出来たクラス、モジュールの振舞いが、現実世界のものに似ている場合が有る、
ことから誰かがオブジェクト指向なんて名前をつけてしまったんだと思う。

だからあくまでも結果論であって、「オブジェクト」指向から理解しようと思っても
それに当てはまらないケースなんて山ほどあって、結局理解出来ないことになる。
あの、ワンとかニャーの例が初心者を落ちこぼれさす一番最悪な例だと思う。

343 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 19:57:37.24 ID:65VtCojr]
で、俺もそのワンとかニャーの被害者w

長年理解出来ずに居たが。
結局、よく整理された分かり易いコードを書くようにしていたある時、
その結果のコードが「オブジェクト指向」になっていて、
初めてそこで「オブジェクト指向」と呼ばれていたものが理解出来たという感じ。

344 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 20:57:03.96 ID:fTe0++yc]
 オブジェクト指向の最大の問題点は、過剰な喩えでこれから覚えなくてはいけない人を惑乱したことだろうね。
「メソッドにメッセージを送る」なんて実際に、どっかで呼んだ覚えがある。

 素直に「サブルーチンを呼ぶ」って言えばよい話。
メソッド(オブジェクト指向プログラミングにおいて、各オブジェクトが持っている自身に対する操作)
と気取った言い方をした所で、所詮プログラムはプログラム。

 で、メッセージを送るなんて大袈裟な事言っても、ただ単にメソッドを実行しているだけ。

 コンピュータの構造を理解している人間ほど、電波に感じる言葉遣いをしているって問題もある。

345 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 21:04:37.01 ID:lornT58y]
>コンピュータの構造を理解している人間ほど
誤解はよろしくない。
本を書くのはヒマな人間だ。
それがどういう意味かわかるな?

346 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 21:41:35.89 ID:FbuvqMDP]
> ただ単にメソッドを実行しているだけ。

そういう論理は、どんなコンピュータも機械語を実行しているだけ。だからアセンブリ言語以外無用。
という無意味な結論にしかならないよ。

347 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 22:22:28.57 ID:46PJc7fJ]
メソッドにメッセージを送るのではなく、オブジェクトにメッセージを送るとメソッドがじっこうされる。


メッセージを送るというのを意識した言語なんてRubyとかごく一部な気が。
普通の言語ならメソッドを呼ぶのほうが一般的に使われる(rubyとかも)

メソッドはサブルーチンの一種だから、わざわざ誤解する可能性のあるサブルーチンという用語を使う意味はない

348 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 22:33:14.81 ID:UEvWvg+1]
プーチンでも呼んで来い

349 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 23:09:45.02 ID:eb0F/6mj]
サブプーチン

350 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 23:18:06.04 ID:Cc+RYh9g]
サブルーチンという用語だと、データと処理が別々になってしまう印象を受けるな。
メソッドだと、大体はカプセル化されてデータを隠蔽する印象。

呼び出して使う側からすると前者は面倒。呼び出し側がデータの後始末意識しないといけないし。



351 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 23:24:41.77 ID:lornT58y]
オブジェクト指向だからといってガベージコレクションやRTTIが完備されてるわけじゃない。

352 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 23:28:38.92 ID:dEVLbQ7F]
関数とサブルーチンに明確な境目はないけれど、
ちゃんとした関数なら副作用がなくてテストが容易で
コードの中身を見なくても処理が推測できるもので

だめな関数=サブルーチンは、副作用がメインでテストが難しい
コードの中身を見ないと何をやっているのかさっぱりわからない。
ってイメージが有るな。


たとえば、コードが長くなったから
一部分をそっくり抜き出して、関数にすると
たいていダメな関数=サブルーチンになってる。

そういうサブルーチンばっかり作っているような技術力の低い所だと
関数(実際はサブルーチン)を使うとあちこちにジャンプする必要があるから
コードが読みにくい!とか言うやつが出てくる。(本当はちゃんとした関数をかけてないから)






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<115KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef