オブジェクト指向ってクソじゃねぇよ? Part2at TECH
オブジェクト指向ってクソじゃねぇよ? Part2 - 暇つぶし2ch334:デフォルトの名無しさん
18/10/27 11:57:38.61 S4VvuAVS.net
まずオブジェクト指向も構造化プログラミングも
どっちもまともに理解できてないのが
知ったかでテキトーに書いてんのがバレバレなワケ

335:デフォルトの名無しさん
18/10/27 11:59:11.11 ZWpnR1MN.net
>>318
私は最初からイベントをデータとして認識してレスしてますよ
リソースとイベントを意識してテーブルを構成するのは基本中の基本なのであえて説明してから議論するまでもないと思っていましたが
まさかこの文脈でイベントドリブンのイベントと勘違いする人がいるとは予想外でした

336:デフォルトの名無しさん
18/10/27 12:04:16.63 S4VvuAVS.net
低学歴知恵遅れは目の前の作業しかみえないからな
その作業でなにをしてるかという感覚すらないからな
動けばいい
それだけだ

337:デフォルトの名無しさん
18/10/27 12:10:26.26 dWq9Hx8p.net
>>328
レコードの更新をハンドリングすることと同じじゃね?
イベントドリブンBeanとDAOを連携させる試みは流行らなかったけど

338:デフォルトの名無しさん
18/10/27 12:11:57.18 S4VvuAVS.net
それぜんぜん違う
やばいわ
DBトリガーの意味すら分かってない
マジで低学歴知恵遅れしかいない

339:デフォルトの名無しさん
18/10/27 12:12:13.85 RkY7jvte.net
頭の悪い人が何か勘違いしてオブジェクト指向を使った
変なコードを書いていることがよくあるという意味では
半角と同意だな

340:デフォルトの名無しさん
18/10/27 12:13:14.82 RkY7jvte.net
>>332
ただし、それに半角も含まれているけど

341:デフォルトの名無しさん
18/10/27 12:14:10.46 S4VvuAVS.net
この板では
基本的なことが分かってないようなのがドヤ顔でレスしてるワケ
珍妙なコードができあがるのも必然

342:デフォルトの名無しさん
18/10/27 12:16:13.04 RkY7jvte.net
>>334
にわかオブジェクト指向厨は
べつにこの板に限らず世に広く
ナンセンスなことを言う人が多いよ
半角様も含めてね

343:デフォルトの名無しさん
18/10/27 12:22:16.77 S4VvuAVS.net
むしろオレレベルでないとオブジェクト指向はムリ
なんどもいうが
低学歴知恵遅れとオブジェクト指向は
キチガイに刃物

344:デフォルトの名無しさん
18/10/27 12:23:55.10 RkY7jvte.net
そうかもしれないが
ブーメランが突き刺さってるぜ

345:デフォルトの名無しさん
18/10/27 12:28:48.03 S4VvuAVS.net
残念なことにまともな教育を受けてれば
低学歴かどうかなんかレスからすぐに分かってしまう
低学歴なうえに著しく知能が低い
その自覚がない
そして自己評価だけは高い
つまりこの板の低学歴知恵遅れは救いようがない

346:デフォルトの名無しさん
18/10/27 12:30:17.69 4RrrP6U6.net
>>328
> 私は最初からイベントをデータとして認識してレスしてますよ
誰も「お前がイベントをデータとして認識してない」なんて
言ってないんだが? あたま大丈夫か?文章読めるか?
お前は、
DBのトリガーのことを "イベント" といってたのに
データの保存のことを "イベント" と言い出した
そういうことを俺は言った
なんで俺が言ってないことに、話すりかえてんの?

347:デフォルトの名無しさん
18/10/27 12:30:54.71 RkY7jvte.net
>>39
って良書?
もしかしたら昔原書を買ったまま本棚に積読してあるかもだけど、
良書なら暇があったらめくってみようかなって気になった。
やっぱオブジェクト指向を使ったソフトウエアの表現て、
実践の場では意外と難しい局面があって煩わされることもしばしばで、
方法の模索が続いて終らない

348:デフォルトの名無しさん
18/10/27 12:31:46.92 4RrrP6U6.net
ID:ZWpnR1MN ってまともに話しているふりして
ただのアンチだろうなw
でなければ、こうも関係ない話にすり替えたりしない

349:デフォルトの名無しさん
18/10/27 12:38:42.17 io741/EL.net
>>328
で結局何の話したいの?
そのクリーンな実装とやらのアーキテクチャの話?

350:デフォルトの名無しさん
18/10/27 12:39:08.49 2OuJiKuO.net
何かをトリガーに何かしたいなら関数オブジェクトなりデリゲートなりなんなりぶちこんで何か起きたら呼べ
そんなんオブジェクト指向だろうが関数型だろうか変わらん

351:デフォルトの名無しさん
18/10/27 12:45:49.91 RkY7jvte.net
>>340
本棚の奥から
蒼い表紙に眼鏡をかけたカモノハシが見得のポーズを切って卵を守っている絵の
An Introduction to Object-Oriented Programming
Timothy Budd
が発掘できたぜよ。でも1991年のfirst editionだた…orz
羽部さんの訳ってどうよ?
良ければ3rd Editionの訳を書店で眺めてみるけど。

352:デフォルトの名無しさん
18/10/27 12:56:30.18 4RrrP6U6.net
>>343
でもなぁ、こいつが言っていたイベントはRDBのトリガーで
(途中でイベントの意味を変えてきやがったが


353:w) RDBのトリガーの内容をアプリ側から知るのは(オブジェクト指向じゃなくても) 手続き型言語で知るのは難しいぜ。RDBにそういう機能はないからな



354:デフォルトの名無しさん
18/10/27 12:58:23.60 S4VvuAVS.net
オレは書籍の内容について批評はしない
確かなことは書籍は読む人間を選ぶとことになる
頭ワルイのがいくら本読んでもムダだからな
なにが書いてあるかを理解するのは自分自身だからな

355:デフォルトの名無しさん
18/10/27 13:03:02.03 E4+ZR5KW.net
T字型ERデータベース知らん人って思ったより居るんだね
オブジェクト指向の最大の弱点は学んだ人がオブジェクト指向は銀の弾丸だと勘違いして他のテクノロジをおろそかにしてしまうことだな

356:デフォルトの名無しさん
18/10/27 13:03:20.83 RkY7jvte.net
>>346
訳は上手いか聞いたんだよ。日本語OK?
first editionをぱらぱらめくってみたけどほとんど基本的な内容だった。
Chapter 15のVisibiility and dependenmcyは80年代後半の
ソフトウエア工学の話題とOOPの関連性が書いてあって多少面白そう

357:デフォルトの名無しさん
18/10/27 13:08:02.52 S4VvuAVS.net
日本語は知らない

358:デフォルトの名無しさん
18/10/27 13:10:51.56 RkY7jvte.net
正直でよろしい。
3rd ed訳を立ち読みしてみようかと思ったが
そのへんの店舗では扱っているところが少なそうだな…

359:デフォルトの名無しさん
18/10/27 13:16:03.98 RkY7jvte.net
訳は2002年の2nd edまでなんだな、しかも¥4,723 て
ぼるなあ

360:デフォルトの名無しさん
18/10/27 13:28:14.73 KIIskOQo.net
チンポがシコシコするぜ!

361:デフォルトの名無しさん
18/10/27 13:40:33.66 CO70PLsl.net
半角さんとちんぽさんはコテ付けてくれよ

362:デフォルトの名無しさん
18/10/27 14:06:02.77 zMT6Eu0F.net
低スペだからコテなんか付けれないだろw

363:デフォルトの名無しさん
18/10/27 14:20:55.23 COSIUYbm.net
ハイ、ここまでオブジェクト指向のメリットなしのクズ男

364:デフォルトの名無しさん
18/10/27 14:22:11.98 +tHchtmr.net
おつかれさまでした

365:デフォルトの名無しさん
18/10/27 15:42:15.57 7e4UH6L0.net
半角さんの言うことは正しいよ
> 低学歴なうえに著しく知能が低い
> その自覚がない
> そして自己評価だけは高い
その場にいるほかのメンツの力量判断できないから
一人だけ調子に乗ってしょーもないことを得意げに演説
一人だけ周回遅れの子ってのは滑稽であり悲しくもある
自分が賢いかのような口調で演説するからいたたまれない

366:デフォルトの名無しさん
18/10/27 16:05:14.75 +tHchtmr.net
なるほど、おつでーす

367:デフォルトの名無しさん
18/10/27 17:49:04.63 RkY7jvte.net
>>357
「頭の悪い人はバカ」って、何の話してんだよ、
オブジェクト指向がクソか どうかだろ
そういうのを頭が悪いと言うんだよ

368:デフォルトの名無しさん
18/10/27 19:23:43.65 FFMC2/bw.net
第三回バーチャルYouTuber人気投票リベンジ募集中(全287名、2018年10月27日~)
あなたの好きなVtuberは?(一人十票)
URLリンク(script.google.com)
・前回(2018/8/22)は不正投票が行われた為、投票を途中で中止させていただきました。大変申し訳ありませんでした。
・Googleフォームは標準仕様では不正投票が可能な為、改造して対策を行いました。
・2018/10/27時点でチャンネル登録数10,000人以上のVtuberを対象としています。
・一つのチャンネルでVtuberが複数人いる場合は、それぞれ分けています。
・一人十票です。(全287名の中からお好きなVtuber10名を選んでください。)
・このフォームに投票するにはグーグルアカウントでログインする必要はありません。
・並び順は前回の得票数の高い順と新人は登録者数の多い順に並んでいます。
・今回も1,000人の方が投票するまで継続します。
なお投票結果はスプレッドシートにリアルタイムで表示されるようにしました。
また【概要】と【詳細】でシートを分けております。
URLリンク(docs.google.com)
▽過去の投票結果はこちら
第二回バーチャルYouTuber人気投票結果(2018年6月5日~8月6日、全投票数1,000票)(スプレッドシート)
URLリンク(docs.google.com)
第一回バーチャルYouTuber人気投票結果(2018年5月7日~5月30日、全投票数1,000票)(スプレッドシート)
URLリンク(docs.google.com)

369:デフォルトの名無しさん
18/10/27 20:09:40.96 if75aWaZ.net
ここまでオブジェクト指向のメリットも挙げられないクズ
早く死んで欲しい

370:デフォルトの名無しさん
18/10/27 20:12:26.50 9XazvJsa.net
バグコードを内包するクラスを多重継承させてたりしたら結局何のためのカプセル化なんですかって話になるんだよね

371:デフォルトの名無しさん
18/10/27 20:18:12.71 Eqi8BIlY.net
多重継承するバカ発見

372:デフォルトの名無しさん
18/10/27 20:21:12.23 4RrrP6U6.net
>>362
それバグを内包するクラスが悪いって話ですか?多重継承は関係なく

373:デフォルトの名無しさん
18/10/27 20:32:22.95 8vLGwI12.net
まぁ一人で作ってるわけじゃなくて何十人も絡むプロジェクトだと「どのモジュールが悪いのか」って
切り分けは必要だから仕方ないんだけど効率悪いよね

374:デフォルトの名無しさん
18/10/27 21:06:19.63 9XazvJsa.net
>>364
継承を通じてバグコードの影響が複雑に伝染することや、多重継承によってクラス間の依存度が高まることでデバッグが難しくなってしまうのが問題の本質なんだから、純粋に多重継承の問題だよ

375:デフォルトの名無しさん
18/10/27 21:08:20.34 4RrrP6U6.net
>>366
でもバグがなければ、何も問題ないですよね?
えと、バグが無いという前提で、
何が問題かを語ってくれませんか?
どうもバグに話をすり替えているようにしか見えませんから

376:デフォルトの名無しさん
18/10/27 21:16:06.32 9XazvJsa.net
>>367
そもそもバグコード生成や不具合発生が避けられないものであるという前提で話が出来ないのかな?

377:デフォルトの名無しさん
18/10/27 21:51:44.06 r8YaGOoY.net
デバッグが困難になる(特に>>366みたいなアホには)って言うのはまあわかるとして
> 結局何のためのカプセル化なんですか
にどうやって繋げるつもりなんだ? w

378:デフォルトの名無しさん
18/10/27 21:54:09.25 JpRu0mgz.net
>>242
今ニュース系サイトで見たんだけど
そこ炎上してたんだwww

379:デフォルトの名無しさん
18/10/27 22:13:20.04 p3Z91K38.net
どっちもどっち。
大元のクラスライブラリにバグがある事もあるし、100%バグの無いコードは事実上不可能だから、バグが無い前提は流石にあかん。
然りとてバグコード含んだクラスを継承というのも行き過ぎで、十分なデバッグやテストを通してから継承するもの。
理想と現実の狭間で最善尽くすだけ。
上でも何度も言われてるが、オブジェクト指向は銀の弾丸では無い。

380:デフォルトの名無しさん
18/10/27 22:33:52.71 7e4UH6L0.net
>>371
みたいなしょーもないシッタカ意見を排除することからはじめたい

381:デフォルトの名無しさん
18/10/27 22:37:37.79 Eqi8BIlY.net
>十分なデバッグやテストを通してから継承するもの
?????????????????????????????

382:デフォルトの名無しさん
18/10/28 01:14:01.05 qArEjd5e.net
そもそも関数で組んでれば依存がないものを
メソッドにすることでメソッド同士でメンバ変数を共有することになるのだが
これはいいことなのか?

383:デフォルトの名無しさん
18/10/28 02:00:49.16 PnJQ4LJT.net
>>368
> そもそもバグコード生成や不具合発生が避けられないものであるという前提で話が出来ないのかな?
はい。だから問題はバグってことですね

384:デフォルトの名無しさん
18/10/28 02:01:43.41 PnJQ4LJT.net
>>371
> 上でも何度も言われてるが、オブジェクト指向は銀の弾丸では無い。
それどころか、手続き型も構造化も関数型も銀の弾丸ではない
なぜオブジェクト指向だけを違うと主張するのか?

385:デフォルトの名無しさん
18/10/28 03:32:02.39 heugqVbH.net
>>376
あふぉか、
なんらかの弱点があるから、どの方法も無意味だとでも言いたいのか
オブジェクト指向には、
特に問題があったのではないだろうかって
いままでさんざ議論してきて
何だそのレスは

386:デフォルトの名無しさん
18/10/28 04:19:38.38 ntMMh/Va.net
中身のないことを議論とは言わない

387:デフォルトの名無しさん
18/10/28 04:43:07.45 heugqVbH.net
それはオブジェクト指向の有効性の議論は
中身はなかったと同義だぞ

388:デフォルトの名無しさん
18/10/28 04:52:49.27 vBzuIBdi.net
>>376
誰もオブジェクト指向だけがなんて言ってないし。
そういうのは、それぞれのスレでお願いします。
もしくは異種格闘技的なスレ建てて下さい。

389:デフォルトの名無しさん
18/10/28 04:53:59.71 vBzuIBdi.net
>>376
誰もオブジェクト指向だけがなんて言ってないし。
そういうのは、それぞれのスレでお願いします。
もしくは異種格闘技的なスレ建てて下さい。

390:デフォルトの名無しさん
18/10/28 07:12:49.71 PnJQ4LJT.net
>>377
> あふぉか、
> なんらかの弱点があるから、どの方法も無意味だとでも言いたいのか
無意味なわけ無いじゃんw
あぁ、もちろんオブジェクト指向がってことだよ。

391:デフォルトの名無しさん
18/10/28 07:36:23.63 MrnoigLK.net
チンポがシコシコするぜ!

392:デフォルトの名無しさん
18/10/28 07:47:13.80 9S8iKrwU.net
>>374
そこに疑問を持たないチンカスばっかりなんだよね

393:デフォルトの名無しさん
18/10/28 07:53:29.84 JSYSCVAX.net
共有できるメソッドが制限できているので・・・カプセル化全否定?
副作用副作用言うならimmutableにでもすれば?

394:デフォルトの名無しさん
18/10/28 08:31:13.63 q5KpZg+C.net
>>374
フィールドの共有がなかったら全てのフィールドを引数でバケツリレーするようなプログラムになる
引数の数が大爆発して意味不明になるぜ
そもそもフィールドを共有してるから依存があるというのは正しくない
片方のメソッドを消去してももう片方のメソッドは独立に使用し続けられる
なのでそこには依存はないんだぜ

395:デフォルトの名無しさん
18/10/28 08:38:18.12 A1A18Cj4.net
オブジェクトに対しての作用としてメソッドが存在するのに、メソッドが同じ変数を共有するって発想自体が意味不明だよな。

396:デフォルトの名無しさん
18/10/28 08:47:35.25 q5KpZg+C.net
フィールドの共有で依存が発生すると主張するのは
引数の共有で依存が発生すると主張するようなものだな

397:デフォルトの名無しさん
18/10/28 09:04:48.97 A1A18Cj4.net
相手のメソッド記述するって結合度気にするなら、全部メッセージでやりとりすれば良い。
宛先と送受信の共通の関数さえあれば結合度気にする必要が無いぞ。

398:デフォルトの名無しさん
18/10/28 09:58:02.87 q5KpZg+C.net
案外、難しく考えない方がいいのかもしれないね
なんか同じこと何度も書いとるなー👉関数
同じ組み合わせの引数ばかりわたしとるなー👉構造体
構造体と関数の組み合わせっていつも同じだなー👉クラス
フィールド直接弄るとバグ出やすいなー👉カプセル化
これでも十分なメリットを享受できる
まずは体感としてこれらのメリットを感じれるまでコードを書く
それから本格的な議論に参加すればいい
逆にこれらのメリットに体感的にすら気付いてないレベルで議論しても時間の無駄だろう

399:デフォルトの名無しさん
18/10/28 10:07:49.72 9S8iKrwU.net
>>390
そっか、お前らサルってメリットがどういうものか知らないんだな
メリットってのはお金を産まなきゃ意味がないんだぞ
具体的には工数削減と品質向上だ
工数削減はわかると思うが、さらに品質向上には基準が必要だ
これらの数字を具体的に変更して初めてメリット足りうる
おk?

400:デフォルトの名無しさん
18/10/28 10:08:23.71 9S8iKrwU.net
このスレにいるのは
俺にはサルしか見えない
メリットも見えない技術を使って悦にいってるような雑魚は
そもそも技術者でもプログラマでもなくてサルだろ

401:デフォルトの名無しさん
18/10/28 10:15:58.76 PnJQ4LJT.net
>>391
> 工数削減はわかると思うが、さらに品質向上には基準が必要だ
> これらの数字を具体的に変更して初めてメリット足りうる
> おk?
結論を言ってしまうと、コードメトリクスだね。
ツールを使って客観的に計測できる

402:デフォルトの名無しさん
18/10/28 10:22:50.11 q5KpZg+C.net
>>391
計測すればわかるけど俺が書いたことをやればスコア普通に良くなるよ
誰とは言わないけど感情が全てのサルには理解できないかもしれない
けど計測手段を持ってる人間にとってはオブジェクト指向のメリットは明白なんだよね

403:デフォルトの名無しさん
18/10/28 10:27:04.29 9S8iKrwU.net
>>394
じゃあ、具体的に何がどういう理由でそうなるの?

404:デフォルトの名無しさん
18/10/28 10:31:53.41 q5KpZg+C.net
>>395
コードの重複が減る
変数や引数が減る
分岐やループが減る
不正な操作が減る
危険な操作が減る
したがってスコアが良くなる

405:デフォルトの名無しさん
18/10/28 10:40:16.34 9S8iKrwU.net
>>396
具体的にどうして?
関数と比べて増える要素はあっても減る要素ないよ

406:デフォルトの名無しさん
18/10/28 10:46:09.61 9S8iKrwU.net
局所的なグローバル変数を使ってるに過ぎないのにメリットなんかねーよ
バカって結論を俺は持ってるけどね
オブジェクト指向のデメリットはグローバル変数のデメリットと同じなんだよ

407:デフォルトの名無しさん
18/10/28 10:49:54.17 PnJQ4LJT.net
>>398
お前が言ってるのは、グローバル関数のデメリットのことだろ?

408:デフォルトの名無しさん
18/10/28 10:52:05.99 PnJQ4LJT.net
グローバル変数が悪だからって
グローバルクラスも、同じグローバルがついてる
悪に違いない!って考えるのは単なる短絡思考

409:デフォルトの名無しさん
18/10/28 10:53:27.65 oBRWPPCT.net
グローバル変数は丸出しでかつ一個じゃん?
メンバ変数は隠すこともできてかつ複数じゃん?
あと、まとめて隠しとくメリットもでかくね?
int cap = 32, size = 0, data[cap]; // こーいうのより
vector<int> v; // こっちがスッキリじゃね

410:デフォルトの名無しさん
18/10/28 10:56:23.17 q5KpZg+C.net
局所的なグローバル変数で爆笑した
コメディアンの才能あるんじゃないか?

411:デフォルトの名無しさん
18/10/28 11:01:33.11 oBRWPPCT.net
というよりもよく考えたら
> 局所的なグローバル変数
というのが単に誤解なんだよな
struct data {int value;}
void method(struct data *this) {}
っていう単なるパラメータなんだから

412:デフォルトの名無しさん
18/10/28 11:03:35.69 A1A18Cj4.net
おまえら、オブジェクトの意味を知ってて言ってるのか?
知ってりゃグローバル変数なんて意味不明な話しないかw

413:デフォルトの名無しさん
18/10/28 11:13:27.53 B8FJbCxl.net
ここだけ30年前かよ
ぽっくんの業務では当てはまりませんでしたー
ってCOBOLでも書いていたらいいよ
別に困ってないだろ?

414:デフォルトの名無しさん
18/10/28 11:46:39.03 WEhY2ED3.net
>>396
で、なっぜJavaやC++でたコード書くと
あんなことになるんだw

415:デフォルトの名無しさん
18/10/28 12:58:44.66 9S8iKrwU.net
>>386
それで爆発するならメンバ変数の把握できない状態爆発のが問題
状態を複数持つオブジェクトをクラス内に内包すると単純に乗算でその数が増えていく
状態を10個持つクラスと状態を5個持つクラスがあるだけで取りうる状態数は
50個
ウォーズマンの超人パワー波に状態が増えていく
グローバル変数のまずさはこの把握できない状態爆発が本当の問題
問題の本質もわからないサルがオブジェクト指向なんてありがたがってるだけ

416:デフォルトの名無しさん
18/10/28 13:07:28.41 Ok+RtHZ3.net
ローカル・グローバル・ヴァリアブルwwwwwww

417:デフォルトの名無しさん
18/10/28 13:33:22.60 +hej1rjz.net
>>386
それは別に構造体定義して引数で渡せばいいだけだね。
>片方のメソッドを消去してももう片方のメソッドは独立に使用し続けられる
>なのでそこには依存はないんだぜ
メソッドを消去したらみたいな静的なことは問題にしていない。
メソッドの呼び出し順で動作が異なる点について言及している。
つまり状態を共有しているってことについて。
コードベースで見れば確かに構造体の型とそれにひもづく関数を結びつけとくのは
管理しやすいってのはそうだが上記のデメリットをどれだけ上回っているか。

418:デフォルトの名無しさん
18/10/28 13:58:58.05 Ok+RtHZ3.net
>>409
そうそう
第一段階: 構造体にして渡せばいいだけじゃん(クラス的発想のスタート地点)
第二段階: っていうか構造体と関数っていつもセットだから一緒に管理しよ(メソッド)
第三段界: 管理されたメソッド以外から弄るとバグでやすいから禁止しよ(カプセル化)
キミが言うように「〜すればいいだけだよね」ってのを素直に実践するとOOPに到達するんだよ
キミも後少しで議論のスタート地点にたてるかもね

キミの考え方だと
funcA(pState);
funcB(pState);
これはfuncAとfuncBが状態を共有しているということになるネ

419:デフォルトの名無しさん
18/10/28 14:03:43.02 9S8iKrwU.net
>>410
funcAに特定のpStateを入れて必ず同じ結果が返るならそれはいいコード
異なる結果が返るならさいっこうにクソ
ボディブロー100連発

420:デフォルトの名無しさん
18/10/28 14:06:00.57 +hej1rjz.net
>キミの考え方だと
>funcA(pState);
>funcB(pState);
>これはfuncAとfuncBが状態を共有しているということになるネ
ならねーよ。
普通に見ればpStateが状態を共有してるってことになるだろ。
どんな馬鹿な見方をするとこんな考え方になるんだろうか。。

421:デフォルトの名無しさん
18/10/28 14:06:10.12 Ok+RtHZ3.net
補足すると
funcB(pState);
funcA(pState);
にかえると動作が異なるからキミの言い分だと常態を共有しているということだね
さらに最悪なことにカプセル化されてない場合
funcB(pState);
pState->x = 10;
funcA(pState);
みたいなアドホックなコードから状態を変更されるリスクがあるから
事実上プログラム全体で状態を共有しているようなものだね

422:デフォルトの名無しさん
18/10/28 14:07:31.98 Ok+RtHZ3.net
>>412
>>413でも補足したけどキミが言ったことをそのまま引用したんだよ
呼び出し順で動作が変わるなら状態を共有してるってね

423:デフォルトの名無しさん
18/10/28 14:13:50.08 9S8iKrwU.net
>>413
だからいいんだって
テメーのコードは
pState.funcA()
ってやっても
pStateの中身が見えないのが問題なんだよ

424:デフォルトの名無しさん
18/10/28 14:25:39.53 9S8iKrwU.net
funcA(pState)「僕が変更したのはpStateだけです、グローバル変数なんて使ってませんよ」
pState.funcA()「あああああ!!!!!!!!
(ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!)」

425:デフォルトの名無しさん
18/10/28 14:29:45.55 i0t9ojwl.net
オブジェクト指向でも副作用って無くすべきだよなぁ
こういうのって手続きかオブジェクト指向しか触ってこなかった人は気づかないもんかな

426:デフォルトの名無しさん
18/10/28 14:37:41.79 JSYSCVAX.net
pState.func()、funcA(pState)
どちらもpStateを渡して呼び出しているし、pStateを変更しただけです!と言えるのでは
副作用が嫌ならimmutable objectにすれば?

427:デフォルトの名無しさん
18/10/28 14:39:53.29 86INTnoC.net
>>418
nimではどっちも同じ意味だな…

428:デフォルトの名無しさん
18/10/28 14:43:01.09 WEhY2ED3.net
もうしっちゃかめっちゃかだな
ホント都市伝説なオブジェクト指向

429:デフォルトの名無しさん
18/10/28 14:47:10.20 9S8iKrwU.net
>>418
private無ければな

430:デフォルトの名無しさん
18/10/28 15:03:12.30 JSYSCVAX.net
>>421
privateはデータに直接アクセスできる関数を制限するだけなのに
それを無くしたいは何で?

431:デフォルトの名無しさん
18/10/28 15:42:48.94 q5KpZg+C.net
>>417
ValueObjectからAggregate Rootまで全部イミュータブルにする派閥もあるよ

432:デフォルトの名無しさん
18/10/28 16:02:29.47 1gIkUjQ9.net
あるメソッドがどのスーパークラスで定義されてて、
それがどのスーパークラスでオーバーライドされてて、
結果的にいま自クラスで呼んでるこのメソッドはどこで定義されたものなのかが
わかりにくいのが非常にイライラすることがあるけどお前らどうしてんの?
真面目にクラスライブラリのリファレンスを愚直に辿ってんの?

433:デフォルトの名無しさん
18/10/28 16:09:00.49 q5KpZg+C.net
>>424
どれが呼ばれて何をやってるかを気にしなくていいように作るのが正解

434:デフォルトの名無しさん
18/10/28 16:15:39.00 1gIkUjQ9.net
>>425
そもそも一つ上のスーパークラスで定義されてないメソッドを呼んでるコードを見た時
そのメソッドってどのクラスで定義されてるのかがわからないと、どういう機能のメソッド
なのかわからなくね?
スーパークラスから継承したメソッドはオーバーライドしていなくても全て下位のサブクラスの
リファレンスマニュアルに書いてくれるならいいんだがそうなってないのがイラつくって話

435:デフォルトの名無しさん
18/10/28 16:25:39.62 vBzuIBdi.net
オブジェクト指向と関係あるか不明だけど、一時期関数型言語に嵌って、オブジェクト指向よりも依存性を抑えられて保守性が上がって良いとは思ったんだが、そればかりだとCPUパワーが発揮出来ないんだよね。
(ほぼキャッシュに収まらず、メモリアクセスが増える)
んで、対極のCやアセンブラに手を出した。
今度はグローバル変数が多くなる。
(逆に如何に変数(メモリアドレス)へのアクセス減らしてレジスタ使い回すかで速さが違ってくるから、それはそれで楽しい。ただし8/16ビットに限る。それ以上はハードが複雑になり過ぎる)
結局オブジェクト指向って、その間をとったんじゃ無いかと思うんだよね。(メモリアクセス減らしつつグローバル変数減らす苦肉の策+責任分担)
実際、CからC++への移行期はまだCPUも遅くて、オブジェクト指向にすると遅くなると言う意見が多かった。
(C++やJava、C#、Delphiで一応オブジェクト指向も勉強したけど、効率と言うより保守性や多人数での開発が前提な気がする。コードは全体じゃ増えるけど、このクラスはお前ね。みたいに割り振り易い)
(特にC#は1つのクラスを複数ファイルに分けられるので、メソッド単位で人に任せ易い。個人では逆に分かりにくくて迷惑な機能)
tcl/tkとかある通り、必ずしもGUIはオブジェクト指向じゃ無いと使い難いって事はない。
Haskellだって(関数的じゃないから気持ち悪いだけで)向いてないとは思わなかった。
ただ既にIDEの整っているのがオブジェクト指向ってだけだが、それだけで十分オブジェクト指向を勧める価値はあるんじゃないかな。

436:デフォルトの名無しさん
18/10/28 16:31:22.24 q5KpZg+C.net
C#のpatialは分業のためじゃない
コード生成のためだ

437:デフォルトの名無しさん
18/10/28 16:39:33.30 WEhY2ED3.net
>>427
スピードをとても重視するなら不便でも強い最適化のかかる言語を選ぶしかないだろ
突き詰めればCかFortranかアセンブラしかなくなる
逆にvm上やインタプリタでもスピード敵に問題なければ生産性、保守性、可読性、
依存抑制、独立性、局所性、階層化構造、拡張性を重視していいだろ
ほとんどは後者

438:デフォルトの名無しさん
18/10/28 16:40:53.22 9S8iKrwU.net
>>422
値が見えないから

439:デフォルトの名無しさん
18/10/28 16:42:51.19 JSYSCVAX.net
>>430
getterとかプロパティ作って

440:デフォルトの名無しさん
18/10/28 16:44:46.79 WEhY2ED3.net
そうやってwebみたいにくもの巣状態になるんだよな

441:デフォルトの名無しさん
18/10/28 16:45:09.74 9S8iKrwU.net
>>431
publicでええよ

442:デフォルトの名無しさん
18/10/28 16:46:44.13 WEhY2ED3.net
いやいっそclassの外に出せよw

443:デフォルトの名無しさん
18/10/28 16:51:06.47 vBzuIBdi.net
>>429
いあ、だから。。。
その中間を目指したんじゃないかと。
関数型言語ほど目指すと遅くなる。
最適化目指し過ぎると大規模開発に対応出来ない。
オブジェクト指向は現実解だったんじゃないかと。

444:デフォルトの名無しさん
18/10/28 16:56:20.42 oLhbCszz.net
チンポがシコシコするぜ!

445:デフォルトの名無しさん
18/10/28 16:57:12.44 WEhY2ED3.net
>>435
結果として性能的にそういう位置づけに当たることがあるかもしれないが
スピードのための折衷案を目指して作り出された物ではなく
あくまでソフトウエアの構造を表現する新しいパラダイムを目指していたと思うよ。
少なくとも1990年代初期ころまでは。
あとhaskelやMLの生成するnativeコードは結構早い(といわれている

446:デフォルトの名無しさん
18/10/28 17:01:57.75 JSYSCVAX.net
>>433
何処からでも変更できるようにしたいのか
それって…

447:デフォルトの名無しさん
18/10/28 17:08:22.93 Ok+RtHZ3.net
ネットワークとデータアクセスがあるからパフォーマンス上げるなら水平スケールするように設計する
スケール前提だと細かい最適化は非効率的だし最適化のためにメンテナンス性が悪くなって設計ミスってスケールしなくなったら最悪

448:デフォルトの名無しさん
18/10/28 17:13:06.13 vBzuIBdi.net
>>437
うい。
折衷案を目指したのではなく、悪魔で手続き型言語(構造化プログラミング)の延長として保守性を高めた結果だと思う。
代入が(殆ど)無い関数型言語と違って、代入前提で保守性高めた結果。
因みにMLとOcamlはC並みだと言われるが、少なくともHaskellはLL並みよ?
(C並みにするには先行評価しまくるしか無いので、遅延評価のHaskellは「速くできるけど面倒臭い」)
それでも大規模開発に強いから良いんだろうけど、結局どこぞの銀行にはOcamlが採用されてたね。
Haskell好きだけど、現実はそうだよねーって思うよ。
割と前から言ってるけど、関数型言語はアルゴリズムを読むだけで分かる言語なので学習には向く。
アルゴリズムが分からなかったら関数型言語で理解して、オブジェクト指向言語で書くのが現実的じゃ無いかな。

449:デフォルトの名無しさん
18/10/28 17:17:31.62 WEhY2ED3.net
>>440
haskelの生成コードの性能については俺の記憶違いかな。
そうなんだよねC++やjavaは基本的には構造化の延長でstructの
instanceのscopeにmethodを結びつけるscopeingで
ソフトウエアを表現しようとして、非階層的extent, scopeの依存の
ネットワークのわなにはまるんだよ

450:デフォルトの名無しさん
18/10/28 17:30:27.68 vBzuIBdi.net
>>441
いあ、記憶違いでは無いと思う。
Haskellも実行速度ランキングで一時期一位取ってた。
ただ、それはソースを読むとゴリゴリに最適化したもので、一般には普通に書くとLL並み。
ランキングは言語の速さだけでなく、信者の意地も含めての結果だと思った。

451:デフォルトの名無しさん
18/10/28 17:31:12.68 rXYAu0j5.net
クギと板がある
クギをうち込んで板と板をくっつける
板と板をくっつけるだけの単純なオブジェクトの依存関係でも
それが増えるにつれ、その単純な依存関係ですら低学歴知恵遅れの手にかかると
だれも手に負えないシロモノになってる
オブジェクト指向でも構造化プログラミングでも、低学歴知恵遅れの手にかかれば結果は同じ
ありえないデータ構造になってるというより規格化された構造の痕跡すらない状態になってる
構造化プログラミングでも要求されるまともなデータ構造の設計ができるという前提条件がなければ
当然オブジェクト指向でクラスの設計なんかそもそもムリだからな
ペンギンが空飛ぶとか飛ばないとかまずどうでもいいワケ
それ以前の問題だからな

452:デフォルトの名無しさん
18/10/28 17:35:35.29 WEhY2ED3.net
半角ちゃん、たとえ話がくどいよ
人のことをどうこうじゃなく
オブジェクト指向がどうか なぜそういう話をできないんだあんたは

453:デフォルトの名無しさん
18/10/28 17:36:35.53 86INTnoC.net
いやペンギンが空飛んだら大事件だろ。
世界中でトップニュースになるぞ。

454:デフォルトの名無しさん
18/10/28 17:44:43.42 rXYAu0j5.net
オレは明確なコタエを一貫して書き込んでる
オレの�


455:セ説の正しさを補強したレスにちゃんとなってるからな 一切ムダがない  低学歴知恵遅れにオブジェクト指向は  キチガイに刃物 低学歴知恵遅れにオブジェクト指向はムリ 当然、この板にいるような低学歴知恵遅れにオブジェクト指向はムリ わかった? 低学歴知恵遅れには分かんないか、やっぱり



456:デフォルトの名無しさん
18/10/28 17:59:29.84 vBzuIBdi.net
>>446
半分合ってて半分間違い。
知恵遅れに刃物は合ってるけど、だからこそオブジェクト指向でその影響を局所化してる。
構造化プログラミングとかだとグローバル変数が多い分、全体まで影響しかねない。
オブジェクト指向でも構造化プログラミングでも知恵遅れにまともなプログラミングは出来ないのは同意。
だが、周りにかける迷惑の範囲が違う。

457:デフォルトの名無しさん
18/10/28 18:03:38.75 rXYAu0j5.net
低学歴知恵遅れの理解では
構造化プログラミングはグローバル変数を使うことになるのか
オブジェクト指向なら使わないですむと
やっぱり低学歴知恵遅れがいうことは
一味違うわ

458:デフォルトの名無しさん
18/10/28 18:11:37.14 vBzuIBdi.net
>>448
程度問題だよ。
特にGUIでは顕著に違う。
初期化関数とイベントの関数で共通の変数とかね。
イベント関数内で初期化する訳にはいかないって場面は意外と多いよ。

459:デフォルトの名無しさん
18/10/28 18:13:14.02 rXYAu0j5.net
こんどは程度とな。。。。
クラスを全部構造体にかえてみ
なにが違うわけ?

460:デフォルトの名無しさん
18/10/28 18:18:05.08 Ok+RtHZ3.net
構造体にデータと関数ポインタを持たせてOOPってのはC言語でも昔から知ってる人はやってた
言語でサポートしてミスできないようにしただけで中身は同じなんだよな
ということはアンチOOPの人たちも実質OOPを使っていたと言えなくもないな

461:デフォルトの名無しさん
18/10/28 18:45:19.42 oLhbCszz.net
でも俺はパソコンに向かって独り言ブツブツ言って、チンポがシコシコしてるだけだ!!!

462:デフォルトの名無しさん
18/10/28 19:02:09.50 vBzuIBdi.net
>>450
馬鹿なの?
全部構造体にしたらどこからでも参照し放題でしょ?
全部じゃないが、ある程度の変数がクラス内のメソッドでしか使われないから影響が構造化プログラミングよりはマシなんだよ。
自分の作った構造体を知恵遅れに弄られたいの?
次関数呼んだら、弄られてて予定してた値と違うとかあるんだよ?
(そして、それが自分のせいじゃないとか)
関数型言語は代入が基本的に無いから、同じグローバル変数を使っても、そっちはそっちで勝手にバグ作っててもこっちに影響が無いってだけ。
変数を書き換えることが基本だからオブジェクト指向は生まれたんじゃないかと思うし、それはそれで一つの正解だとは思うよ。

463:デフォルトの名無しさん
18/10/28 19:09:04.54 vBzuIBdi.net
と言うか最初から関数型言語ほど徹底するとメモリアクセスが増えて遅くなるし、最適化目指すと大規模開発に対応出来ないって書いてる通り、
最初から程度問題の話しかしてないよ。

464:デフォルトの名無しさん
18/10/28 19:27:29.98 MrnoigLK.net
チンポがシコシコするぜ!

465:デフォルトの名無しさん
18/10/28 19:27:32.77 rXYAu0j5.net
いじられたくないなら
構造体のポインタにconstつけて入力の引数でわたせばおしまい
いじられたくないのに
なんでグローバルスコープでなんでもありでわたそうとすんの?
どうしてそんなに低学歴知恵遅れは頭ワルイの?
もしかして低学歴知恵遅れは
引数の入力となる状態が変更されないクラスのインスタンスにconstつけたり
クラスのインスタンスが変更されないメソッドにconstをちゃんとつけたりもしないの?
どうしてもグローバルスコープにおきたいなら
最低でもconstの構造体ポインタでアクセスできるようにでもしとけば
知恵遅れが想定外の記述をしないかぎり変更されることはないからな
やっぱりな低学歴知恵遅れにオブジェクト指向はムリ

466:デフォルトの名無しさん
18/10/28 19:34:00.47 vBzuIBdi.net
>>456
お前、Win32APIでプログラミングしたこと無いだろ。

467:デフォルトの名無しさん
18/10/28 19:38:58.32 rXYAu0j5.net
こんどはwin32APIとな。。。
win32APIってmicrosoftがmicrosoft windowsで提供するただのアプリケーションインターフェースのことだが
それがどうかしたのか。。。
ホントなこんなのがオブジェクト指向()とかなんとかいっちゃってるワケだからな

468:デフォルトの名無しさん
18/10/28 19:41:44.86 Niq+/yqY.net
どういう問題を示唆されてるかわからなければ半角は黙ったほうが良いよ。
また恥晒すの?
低スペだから?

469:デフォルトの名無しさん
18/10/28 19:43:54.73 rXYAu0j5.net
また低学歴知恵遅れがしゃしゃりでてきてるわ
大体分かるwindowsでイベントの処理で


470:データをうまく渡すことが 低学歴知恵遅れのオツムではまともにできない



471:デフォルトの名無しさん
18/10/28 19:45:20.34 1gIkUjQ9.net
自分だけはバカじゃないという前提

472:デフォルトの名無しさん
18/10/28 19:45:50.75 rXYAu0j5.net
それが低学歴知恵遅れの程度

473:デフォルトの名無しさん
18/10/28 19:46:34.49 rXYAu0j5.net
マジでキミラって低学歴知恵遅れ自覚がないの?

474:デフォルトの名無しさん
18/10/28 19:49:16.31 rXYAu0j5.net
こんなのが偉そうに講釈たれてんのがこの板だからな
相当に低学歴で
相当に知能が低い
まずコイツラをこの板から排除しないと板が正常化しない

475:デフォルトの名無しさん
18/10/28 19:53:41.93 MrnoigLK.net
米国で上位1%が富の独占をしている大きな理由は、労働者をスキルや成果で大きく選別しているからだ。
しかしながらそうでもしないと、ドラクエ10の下請けのように、コードの質が大きく落ちてしまう。
俺はドラクエ一筋なんてのはむしろゴミなコードを入れてしまう『有害な』働き者なのだ。
それは中小企業のデスクワークによくありがちな、要らない書類ばかり作って俺は仕事ができるみたいなものだ。
提案広場でよく『そう思わない』される理由
URLリンク(dragon-quest.me)
このゲームすぐ持ち物いっぱいになるな
URLリンク(dragon-quest.me)
【ドルボードGP】おいwデスルーラ作戦晒すなやwwwww
URLリンク(dragon-quest.me)
でも月額千円では、下請けプログラマーの選別なんて出来っこないだろう?
>このゲームすぐ持ち物いっぱいになるな
ゲームの仕様について意見を出すと、必ずといっていいほどに『そう思わない』で真っ青。
つまり準廃プレイヤー=下請けプログラマーには、ゲームの仕様を変える能力が欠如しているのだ。
アルバイトの賃金が低いのはスキルを必要としない単純作業だからで、労働者にスキルを求めるのであれば、
アルバイトよりも高い賃金を上乗せして払わなければならず、更に成果に応じた報酬も必要となる。

476:デフォルトの名無しさん
18/10/28 19:56:46.74 vBzuIBdi.net
constとか書いてるからさ。
作ってみりゃわかるけど、const付けて~とか事実上無理。
子Windowの値を親Windowに反映させる時点でグローバル変数が出て来るし、代入不可避。
(別々のコールバック関数が必要)
const~で済んでりゃMFCや.netは出てない。

477:デフォルトの名無しさん
18/10/28 20:12:41.22 rXYAu0j5.net
低学歴知恵遅れにはムリ
それがコタエ

478:デフォルトの名無しさん
18/10/28 20:16:59.94 1gIkUjQ9.net
他人に対してバカしか言えないやつって頭が悪い可能性が高い

479:デフォルトの名無しさん
18/10/28 20:17:58.05 rXYAu0j5.net
しっかり低学歴知恵遅れの理由を書いてあるからな
残念なことに

480:デフォルトの名無しさん
18/10/28 20:50:15.29 MrnoigLK.net
登り棒してたらチンポがシコシコしてきた、小学生時代にそういう経験したか?

481:デフォルトの名無しさん
18/10/28 21:05:42.65 tuMGnEVB.net
>>456
素人露にすんなよw

482:デフォルトの名無しさん
18/10/28 21:12:11.91 GjeNS8O7.net
>>446
>一切ムダがない
ほとんど無駄話ばっかしやがって
なに言ってやがるw

483:デフォルトの名無しさん
18/10/28 21:44:33.61 MrnoigLK.net
>>472
>ほとんど無駄話ばっかしやがって
>なに言ってやがるw
俺はもとよりパソコンに向かって独り言ブツブツ言って、チンポがシコシコしてるだけだが?

484:デフォルトの名無しさん
18/10/28 21:54:03.67 GjeNS8O7.net
局面が変わると融通が効かない複合型データ構造を元にscopeを持たせるから
データ構造のinstanceが依存ネットワークのhubみたいな役割を果たしてしまう。
private/protectedでメンバごとのscopeを人間が制御しようとしても、
一旦中に隠したものを、別の場面では外に見せなきゃいけなくなったりして
少し規模が大きくなると急激に複雑さをます。
また内部scopeからは幅広くすべてがglobal変数みたいに丸見え
局面に応じたscopeやextentの管理がしにくい
カプセル化1つとっても


485:これだけ欠点があるよ



486:デフォルトの名無しさん
18/10/28 22:00:04.44 GjeNS8O7.net
でもカプセル化の一番の弱点というか欠点は
人間が把握しやすい階層的で入れ子なextent, scope管理としにくく
非階層的でランダムグラフ的な依存ネットワークを形成して
かつ本来状態が不要なところまでもinstanceを状態変数みたいにして
getter/setterで頑張って状態管理しちゃおうとしてカオスに向かうこと

487:デフォルトの名無しさん
18/10/28 22:02:38.88 9S8iKrwU.net
何言ってるのかさっぱりわからんかった
オブジェクト指向のメリットの説明はできたん?

488:デフォルトの名無しさん
18/10/28 22:02:55.82 L1fR1kUz.net
a.foo()
foo(a)
どちらもaを渡してfooを呼んでいるのに
a.fooの方はグローバル変数と言うらしい

489:デフォルトの名無しさん
18/10/28 22:04:11.51 GjeNS8O7.net
継承にいたっては目も当てられない
コードの実装レベルの類似性に基づく共有のための手段として利用されがちで
論理的な構造、モジュラリティーを破壊し
クロスファイルで静的依存ネットワークを形成する。
その静的コードから動的にどのような依存を持ったインスタンスネットワークが
形成されるのかもはやカオスとなる
あフォトしか言いようがない

490:デフォルトの名無しさん
18/10/28 22:05:25.52 qArEjd5e.net
>>477
とりあえずそのfooの実装においてaがどんなふうにアクセスされるのか意識して
プログラムしてみたら?
少しはコードがマシになると思うよ。

491:デフォルトの名無しさん
18/10/28 22:12:05.45 1CEqWH54.net
>>476
とりあえず、インポートで名前がぶつかりにくい
ぶつかるのクラス名ぐらいだから

492:デフォルトの名無しさん
18/10/28 22:41:05.36 3n4eNDQn.net
>>478
継承元のクラスのコードだけを見てもコード変更の影響が推測できないのが本当に邪悪だよな

493:デフォルトの名無しさん
18/10/28 22:53:27.92 oBRWPPCT.net
>>464の意見は正しい
アホなやつほどシッタカレスに努力する
知ってることだけ言うんじゃなくて
知ってることを総動員して精一杯背伸びしたフワフワ文書を書き込むよね
初心者の子はカキコまんでいい
半年ROMれ

494:デフォルトの名無しさん
18/10/28 23:01:01.96 88TeNCm3.net
グローバル変数との区別もできないようなので
話すだけ無駄かと

495:デフォルトの名無しさん
18/10/28 23:05:48.86 1gIkUjQ9.net
リファレンスのドキュメントを継承元スーパークラスから継承したメンバ(フィールド、メソッド)を含めて全部書いてもらえればもうおれはそれ以上は望まない
それだけでいい。。

496:デフォルトの名無しさん
18/10/28 23:06:03.23 9S8iKrwU.net
そもそもオブジェクト指向のメリットだけ説明すればいい

497:デフォルトの名無しさん
18/10/28 23:08:22.68 9S8iKrwU.net
自分が使ってる技術のメリットも説明できんやつはサルだろ
キーボード折って便所掃除でもしてろ

498:デフォルトの名無しさん
18/10/28 23:10:16.04 1gIkUjQ9.net
いちいち表現が大げさで過激なのは芸風?

499:デフォルトの名無しさん
18/10/28 23:26:53.50 1CEqWH54.net
>>484
inheritedで一覧出てくるのはあるよね

500:デフォルトの名無しさん
18/10/28 23:43:18.92 rXYAu0j5.net
オレの正確無比でムダのないワルクチに耐えられないのは分かる
低学歴知恵遅れが射精できる今の板の状態はゆゆしき問題
まずコイツラに射精させないようにしないといけない
著しい低学歴知恵遅れのオマエ含めてな
低学歴知恵遅れに強いストレスを与え続けて排除することが板の正常化につながるということは
もうだれもが気付き始めてる
もう後戻りはない

501:デフォルトの名無しさん
18/10/28 23:55:19.05 Ho+tawR1.net
射精くらいさせてやれよ、基本的人権にかかわるぞ
つかお前の書くレスもチンポちゃんレベルのゴミだな

502:デフォルトの名無しさん
18/10/29 03:33:54.12 cH/HmFkL.net
今時継承とか使わないし
マジ包含だし

503:デフォルトの名無しさん
18/10/29 06:35:34.63 aSZfpFql.net
継承は、サブタイピングの目的では使わないけど
差分プログラミングの目的では使う


504:っしょ ケースバイケースだよ



505:デフォルトの名無しさん
18/10/29 07:25:07.42 PWKZ4BcT.net
>>478
>継承にいたっては目も当てられない
>コードの実装レベルの類似性に基づく共有のための手段として利用されがちで
戦神のベルトが倉庫を圧迫。仕分けましょう【DQ10】
URLリンク(okirakudq10.com)

506:デフォルトの名無しさん
18/10/29 07:34:29.07 PWKZ4BcT.net
299 その名前は774人います (ワッチョイ db8e-7PZ0) sage 2018/10/24(水) 06:21:12.94 ID:U7GhzgwH0
ドラゴンクエストテン
~目覚めし5つの倉庫整理~

507:デフォルトの名無しさん
18/10/29 07:37:42.87 PWKZ4BcT.net
187 その名前は774人います (バットンキン MMe3-9smq) 2018/10/28(日) 20:26:05.00 ID:+SX2t0AiM
新規さんに俺から質問。
仮にオフラインのゲームであれば「拾った」ことを検知して、プレイヤーの手にそれを持たせるなどの処理をかけば目的が達成できます。
(もちろん、ゲーム的に意味を付けるならもっと色んなことを書かないとダメですが)
しかし、オンラインゲームの場合、その「拾ったオブジェクト」はサーバおよび全クライアントで表示されています。
そしてその位置を動かした場合。誰の位置を信頼したらいいでしょうか。
サーバ側? でも、位置のアップデートはたった今拾ったプレイヤーの位置や行動によって変更されます。
URLリンク(edom18.hateblo.jp)
『キラキラマラソン金策』やってますか? 儲かるキラキラアイテムがアストルティアのあちこちにありますか?
ドラクエ10 キラキラの復活時間に仕様変更!
URLリンク(serious-takacchi.blog.so-net.ne.jp)
キラキラオブジェクトの復活時間、意識してますか?

508:デフォルトの名無しさん
18/10/29 07:48:44.66 PWKZ4BcT.net
正式名称は分からないが、死亡ラグとは症状としては既に死んでしまっているが自分の視点ではまだ動けている状態となる。
俗に言う「赤ピン」と呼ばれる症状が長く続くことでダメージ判定が遅れてやってくる。
他のプレイヤー視点では既に倒れている。しかし、遅れているので自分では分からないためいきなり何もないところで死ぬ。
また、デスマッチなどでは既に死んでいるため、自分が動けてもリスポンされていたりして無敵時間が無くなり、
復活した瞬間に倒されることもある。自分がいつ死んでいるのか分からず突然死んで突然画面が切り替わってしまう。
その結果キルログを注視してしまいゲームを楽しめなくなってくる。
国内のゲームではこの「赤ピン」という症状が発生し、移動以外の全ての行動が遅れて同時にやってくる。
射撃も投擲も全て赤ピン状態が解除された瞬間に行われるが、射撃の弾丸は飛ばず音だけ重なって発生する。しかし、
投擲は投げたはずが飛ばす、赤ピン状態が解除された瞬間に投擲開始するため、
銃を構えていても突然投擲してしまい味方を巻き込んだり自爆したりしてしまう。
URLリンク(gamingpcs.jp)
プログラミング言語の性能差
主な言語とスループット
言語 スループット 特性
C/C++ 100 静的言語ネイティブコード
Java 1~10 静的言語VMバイトコード
Ruby/Python 0.1~1 動的言語
オンラインゲームのサーバではC/C++が最も使われ

URLリンク(www.wata-lab.meijo-u.ac.jp)
メインとなるのはC++で書かれたゲーム関連のプログラムなんですけれども、他にもWebですね、
こちらはJavaで書かれていますし、他にもToolsとかスクリプトとか、実はいろいろなゲームがデータベース
に接続します。この時にある処理を全ての言語で同じように実装していくというのは非常に冗長なので、
Oracle側にSQL言語で書かれたAPIを実装して、どんな言語からでも、全くその実装のことが分からなくても、
同じ処理が呼び出せるという手法を取っています。
URLリンク(gigazine.net)

509:デフォルトの名無しさん
18/10/29 08:05:48.40 PWKZ4BcT.net
俺にとっての『オナニー』はするしないではなくて気がついたらしていた、オナニーはそこにあったのだ!

510:デフォルトの名無しさん
18/10/29 08:08:02.95 PWKZ4BcT.net
328 その名前は774人います (バットンキン MMe3-9smq) 2018/10/28(日) 21:03:44.64 ID:+SX2t0AiM
>>327
>桁直しは直すのは簡単。直ったか確認するのがすげーめんどくさい(金かかる)。
オブジェクト指向によるアプリケーション開発は、変更されない箇所を軸に、
頻繁に変更されるであろう箇所をクラスに抽出するプログラミングスタイルです。
例えば、店舗がどんどん増えていくファーストフードのシステムを開発することになったとしましょう。
店舗が増えていくということは、そこは「頻繁に変更される箇所」なのでクラスに抽出して設計する必要があります。
そうすると近い将来起こる「店舗が増える変更」に対して柔軟に対応できるようになります。
URLリンク(qiita.com)

511:デフォルトの名無しさん
18/10/29 08:12:33.59 QZvcvvpv.net
半角さん、いろんなところで論破されて、ついには相手に低学歴と言う機能しか無くなってたんだな

512:デフォルトの名無しさん
18/10/29 08:36:03.61 WYy8uN+t.net
win32apiでは無理なんだーというのは論破なんですかね

513:デフォルトの名無しさん
18/10/29 08:51:11.68 PWKZ4BcT.net
>>474
>private/protectedでメンバごとのscopeを人間が制御しようとしても
集約と汎化、制御と独立の使い分けが大切なんだよな。

514:デフォルトの名無しさん
18/10/29 08:58:50.49 PWKZ4BcT.net
>>475
>でもカプセル化の一番の弱点というか欠点は
チンポは独立した生き物、とは考えられないか?

515:デフォルトの名無しさん
18/10/29 09:05:50.09 PWKZ4BcT.net
>>366
>多重継承によってクラス間の依存度が高まることでデバッグが難しくなってしまうのが問題の本質なんだから
シコシコするチンポは不随意筋だが、オシッコをするときのチンポは随意筋だろ?

516:デフォルトの名無しさん
18/10/29 09:09:30.28 PWKZ4BcT.net
2013-05-17 00:04
チンコの随意筋と不随意筋
URLリンク(d.hatena.ne.jp)

517:デフォルトの名無しさん
18/10/29 09:34:03.09 532STKfj.net
>>492
差分にこそ使うなよ

518:デフォルトの名無しさん
18/10/29 09:42:25.11 532STKfj.net
>>498
単に同じ種類のデータが増えるのは変更とは呼ばんだろ

519:デフォルトの名無しさん
18/10/29 19:05:03.88 nnLR5iCS.net
DBがカオスなのでオブジェクト指向でいくら頑張っても無駄

520:デフォルトの名無しさん
18/10/29 19:43:48.51 aSZfpFql.net
>>505
なんで?

521:デフォルトの名無しさん
18/10/29 22:31:26.97 PWKZ4BcT.net
「りっきーのなんでもおコタえしまショー!」 当日のプレイバック
URLリンク(hiroba.dqx.jp)
質問 11
アイテム・装備欄がキツキツなのに 
春イベでナスの衣装券5ワクをくれたり しかも人に渡せなかったり。
この件に関して 開発は何を考えているのか 教えてください。
【回答】 齋藤力
アイテム枠の軽減についてはできる限りのことをしたいと思い 
日々スタッフが総力戦で取り組んでいるというのが正直な現状です。
一方で 新しいアイテムが まったく増えないようなゲームにもするわけにはいかない思っております。

↑これに対するありがたいお言葉

いま目の前にあるもんをちゃんと使ってそれを面白くするほうが先
URLリンク(i.imgur.com)
宮本
いま、若いデザイナーがゲームをつくってる時、
面白くないから、ついつい新しい材料を追加して
面白くしようとするんですよ。
実は、いま目の前にあるもんをちゃんと使って
それを面白くするほうが先やのに、
新しいものを持ってくるという。
岩田
新しい材料をどんどん増やして
面白さを導き出そうとするんですね。

522:デフォルトの名無しさん
18/10/29 22:34:06.97 PWKZ4BcT.net
>>366
>多重継承によってクラス間の依存度が高まることでデバッグが難しくなってしまうのが問題の本質なんだから
随意筋   不随意筋
  ↘   ↙ 
   チンポ

523:デフォルトの名無しさん
18/10/29 23:32:40.68 LL+W6ENh.net
随意筋←implements─チンポ─implements→不随意筋

524:デフォルトの名無しさん
18/10/30 00:22:04.00 t1FWEUWr.net
関数型言語のやり方がそれなりに普及しちゃったんで、全てオブジェクト指向でプログラムを書くメリットはそんなに残ってないんだよ
オブジェクト指向が唯一の抽象化の手段になってる言語ばっかりだった時代はもう過ぎ去ったんだよ

525:デフォルトの名無しさん
18/10/30 00:32:22.39 J+0nEgfQ.net
オブジェクト指向に対比するものは関数型なんだろうか?
オブジェクト指向や関数型は「抽象化」なんていうすごいことを
本当にしているんだろうか?
オブジェクト指向の「抽象化」は似たメソッドがあったら
スーパークラスを設けて継承、
「抽象化」とはそんなものなんだろうか?

526:デフォルトの名無しさん
18/10/30 00:35:20.31 J+0nEgfQ.net
インチキマンセーなオブジェクト指向よさらば

527:デフォルトの名無しさん
18/10/30 00:52:27.86 WPZpU4UL.net
何かswiftでpostする時クッキーオブジェクトなるものを複数使って
ただデータ投げたいだけなのにクソ面倒臭い段取り組んだけど
関数型というかクロージャ使うというもう1つの別案が出来てからこういうのでいいんだよ感はかなりあった

528:デフォルトの名無しさん
18/10/30 00:56:16.44 iPJEDoz1.net
スーパークラスとか、何でもかんでも詰め込まれた四次元ポケットみたいになってるだけの場合もあるからな
抽象化はスーパークラス生成の必要条件ではない

529:デフォルトの名無しさん
18/10/30 05:10:38.28 8OzYaVjS.net
ビジターパターンとか考えると糞だと思うーん!!
パターンマッチグーあればこんな紛らわしいパターンはいらなくてグーなのにな

530:デフォルトの名無しさん
18/10/30 06:18:44.10 2OC/bUyM.net
パターンマッチングがなければ?
悪いのはパターンではなくて、言語だろう?

531:デフォルトの名無しさん
18/10/30 07:36:22.58 LiqPRKTy.net
ああ、>>517はビジターパターンの利点をまるでわかっていないな。
ばーか

532:デフォルトの名無しさん
18/10/30 09:46:44.93 t1FWEUWr.net
横からでスマンがビジターパターンの利点って何?ExpressionProblemに対処できるってのはもう利点にならないよ

533:デフォルトの名無しさん
18/10/30 11:42:53.14 M87fl2aa.net
「助けてー!ドラえもーん!!」
それはのび太ーパターン。

534:466
18/10/30 16:39:31.71 m+t0SJNK.net
>>485
大規模開発で構造化プログラミングよりは責任分担し易いってだけ。
でも給料払う側にも貰う側にも、コレが最重要。
Linux作者や関数型言語や論理型言語信者はオブジェクト指向なぞ不要と言ってる。(のは、その個々が開発力あるから?)
>>500
コールバック関数が引数固定な以上論破は無理だろ。
他の事例なら関数型言語みたく引数増やせば良いじゃない戦法もあるが。
それだって限界ある。
(関数型言語もマルチスレッドにオブジェクト指向より向いてるだけで、銀の弾丸では無い)

>>492
そう。
ケースバイケース。
ただ、それが分からないまま使う奴も多いのがね。
案外複雑だから。
親クラスのprotectedが子クラスのprivateとか。代数重ねると新入社員には無理。
そういう言う人間の限界も含めた譲位。
クラスライブラリからの継承とか、本当一部だけが継承で有効。

535:デフォルトの名無しさん
18/10/30 16:58:47.55 bp+Jjz8r.net
継承した時点で密結合になるので特に外部作成のクラスは継承せず包含しましょうは基本
ほとんどのケースはパブリックインターフェースを使用して事が済むので

536:デフォルトの名無しさん
18/10/30 18:33:42.29 +RULmJtu.net
>>522
リーナスはC++を嫌ってるだけで、オブジェクト指向については否定してないぞ

537:デフォルトの名無しさん
18/10/30 18:41:52.81 6OfBsZVT.net
抽象化苦手な人ってどうしても居るからね

538:デフォルトの名無しさん
18/10/30 19:03:28.13 aG1tKkvM.net
>>524
いや相当否定してるぞ。
ただlinuxのファイルシステム回りはオブジェクト指向的だし、
その辺りについてはlinusも必要性を言ってた気はする。

539:デフォルトの名無しさん
18/10/30 19:14:04.91 aG1tKkvM.net
>>525
実際は抽象馬鹿で具体的なテスト内容を思いつかない馬鹿のが問題だけどな。

540:デフォルトの名無しさん
18/10/30 19:18:11.16 XuNoXE89.net
>>527
具体的に言うと?

541:デフォルトの名無しさん
18/10/30 19:23:17.43 6OfBsZVT.net
抽象化を理解してるレベル帯ならSOLIDも理解してるだろう
これができてる人はテストが非常にエレガントだ(何故なら設計がエレガントだから)
抽象化が出来ない人の方がテストよくわからんと嘆いてるね
話を聞いてみると組み合わせ爆発を起こしてパンクしてしまうんだと

542:デフォルトの名無しさん
18/10/30 19:27:37.65 RlVgLquL.net
>>526
明確にオブジェクト指向を否定してるコメントなんかあったか?

543:デフォルトの名無しさん
18/10/30 19:27:39.02 XuNoXE89.net
オブジェクト指向を理解してないやつはSOLIDも理解してない

544:デフォルトの名無しさん
18/10/30 19:30:03.47 ZgZ/9CmG.net
>>530
C++を否定するってことは、オブジェクト指向を否定してるってことなんですよ?

545:デフォルトの名無しさん
18/10/30 20:03:29.74 bp+Jjz8r.net
c++はマルチパラダイム云々なので
何でもアリ言語やぞ

546:デフォルトの名無しさん
18/10/30 20:08:42.36 RlVgLquL.net
>>532
それはない

547:デフォルトの名無しさん
18/10/30 20:10:28.83 0wy2mEm7.net
>>532
お前の母ちゃんを否定するってことは、女を否定するってことなんですよ

548:デフォルトの名無しさん
18/10/30 20:14:21.32 aG1tKkvM.net
>>530
URLリンク(srad.jp)
ほとんどの部分はc++に対するヘイトだけど
OO言語について語ってる部分がオブジェクト指向の否定と思う。
だいたい言ってることは一理あるわ。
少なくともここでの議論よりかは意味がある。

549:デフォルトの名無しさん
18/10/30 20:16:11.62 ZgZ/9CmG.net
> OO言語について語ってる部分が
それどこ?

550:デフォルトの名無しさん
18/10/30 20:57:56.92 IL+nqSpb.net
Linusがオブジェクト指向を否定する理由の一つがまさに>>536
C++やオブジェクト指向の否定とも読めるが
それはKernelというコンテキストの中での話だ
egrep "オブジェクト|C++" としたときに
Kernelというコンテキストを隠蔽しているのだ
C++は本気で嫌ってるのかもしれんが
オブジェクト指向に関してはどこまで否定的なのか読めん

551:デフォルトの名無しさん
18/10/30 21:09:06.98 ZgZ/9CmG.net
ということで結論はLinusはオブジェクト指向を
否定してないってことでいいかな

552:デフォルトの名無しさん
18/10/30 21:23:48.92 rGP4zqaC.net
>>536
相当否定してる、から一転

553:デフォルトの名無しさん
18/10/30 21:53:48.89 bOd1i88g.net
>実際の問題が特別なデータ記述で関連付けられるとは私は考えない。
>貴殿はその類のデータのためのライブラリルーチンを欲しくない。
>つまり�


554:A貴殿はデータとその他の種類のデータ両間で相互作用するコードを欲しいのだ。 オブジェクト指向の欺瞞の心臓 初心者から上級者までおそらく全員が思ってること すばらしい



555:デフォルトの名無しさん
18/10/30 21:54:42.59 IL+nqSpb.net
>>539
私見だが6割程度は否定してると思う
コンテキストが一つのオブジェクトに依存している範囲のみ
オブジェクト指向は使える、と考えているのでは?
> だが、OO言語は、オブジェクトが重要であり、オブジェクトに関連付けられたメソッドを持つべきだという手段を考える傾向にある。まさに馬鹿げた話だ。一つのオブジェクト(又は、ある型のオブジェクトの当り前なコレクション)が本当の関心事ではない。
> 関心すべきは、異なる型の異なるオブジェクトが相互作用し、ロッキングルールを持つ等々の時なのである。その時点で、重要なのは一つのオブジェクトではもうないのだから、"オブジェクトインターフェイス"を隠蔽しようとするのは絶対に間違っている。
> だから、私はデータの記述が重要であることに賛成であるが、同時に、最も記述が本当に重要である事柄は、いかにデータが矛盾無いか、一貫性の必要条件があること、ロッキングルールがあること(そして、一つのデータオブジェクトのためでないことも)等々である。

556:デフォルトの名無しさん
18/10/30 22:00:25.32 UtoqQUYR.net
なんか分かりにくい日本語だな、もっとマシな言い方はできなかったものか

557:デフォルトの名無しさん
18/10/30 22:14:27.78 xkGCjv5u.net
半角先生の超訳をお願いします

558:デフォルトの名無しさん
18/10/30 22:14:59.00 bOd1i88g.net
実際に言ってることがおかしい気がする
>重要なのは一つのオブジェクトではもうないのだから、"オブジェクトインターフェイス"を隠蔽しようとするのは絶対に間違っている。
ようするにまだるっこしいインターフェース介さずに
手順をすっとばして中直接いじらせろって言ってるんだろ?
遅いから。
コンパイラがバグるから。
基地外

559:デフォルトの名無しさん
18/10/30 22:19:26.57 UtoqQUYR.net
あんまりOOPの欠点の核心を突いていない
ような文書も散見される希ガス

560:デフォルトの名無しさん
18/10/30 22:21:27.12 GV6qK/VB.net
複数のオブジェクトが相互にかかわる煩雑なメソッドを
そのうちの一つのオブジェクト内に押し込めようとしているのは間違っている
それによって矛盾や一貫性やロッキングルールが失われるのはよくねえよ

561:デフォルトの名無しさん
18/10/30 22:22:00.26 UtoqQUYR.net


562:デフォルトの名無しさん
18/10/30 22:27:42.15 UtoqQUYR.net
ぴったり産業の意訳で結構分かりやすくなったが
行間あいてるし
デモなんかやっぱOOPの極端に目立つ欠点の一側面を述べてるだけじゃん感があるな

563:デフォルトの名無しさん
18/10/30 22:31:36.48 bOd1i88g.net
>だから、私はデータの記述が重要であることに賛成であるが、同時に、最も記述が本当に重要である事柄は、
>いかにデータが矛盾無いか、一貫性の必要条件があること、ロッキングルールがあること(そして、一つのデータオブジェクトのためでないことも)等々である。
>私は、それらを本当に容易にコンパイラへは書けないと思う。結局、どうしても自分でそのコードを書かざるを得ない。

それを達成してくれるのが隠ぺいだろ
メンバ変数間の整合性は公開メソッド使ってる限り保たれるはず
最終的にはマシン語自分で見ないと安心できないような世界の人のいうこと

564:デフォルトの名無しさん
18/10/30 22:39:26.06 bp+Jjz8r.net
カーネル作ってる連中からすりゃそりゃそうだろ

565:デフォルトの名無しさん
18/10/30 22:43:09.18 GV6qK/VB.net
複数のオブジェクトを隠蔽したオブジェクト内でどこかで不具合があったらどういう状況で起こってるのかわかりづらいし
どこで誤作動が起こってるか見当がつけにくい
中のオブジェクトが他のオブジェクトでも隠蔽されていたらまあ悲惨
関数だとシグネチャーでどのオブジェクトを使ってるかややわかりやすいんじゃないかな

566:デフォルトの名無しさん
18/10/30 22:44:00.50 GV6qK/VB.net
オブジェクトじゃなくて構造体か

567:デフォルトの名無しさん
18/10/30 22:46:26.39 M87fl2aa.net
おいおいLawrence Krubnerとかいうクソザコがとんでもないこと言ってるぞwww
今をトキメくオブジェクト指向に楯突くとか身の程知らず過ぎwwwww
URLリンク(www.smashcompany.com)
「オブジェクト指向の強みだと思われているほとんどの要素はオブジェクト指向固有ではなく、オブジェクト指向固有の強みなど、実際には一つもない」

568:デフォルトの名無しさん
18/10/30 22:59:09.30 M87fl2aa.net
【悲報】Oscar Nierstraszとか言うクソザコ、身の程知らずにもオブジェクト指向批判の記事を書いたためにコメント欄で5年に渡って叩かれ続けるwwwww
URLリンク(blog.jot.fm)

569:デフォルトの名無しさん
18/10/30 22:59:51.90 sh92d/1G.net
私が心配する最も大きな問題はコードではなく、コードと開発の"フロー"だ。
いいね
やっぱり超頭いい人って違うね

570:デフォルトの名無しさん
18/10/30 23:12:40.53 sh92d/1G.net
一つのオブジェクト(又は、ある型のオブジェクトの当り前なコレクション)が本当の関心事ではない。
関心すべきは、異なる型の異なるオブジェクトが相互作用し、ロッキングルールを持つ等々の時なのである。その時点で、重要なのは一つのオブジェクトではもうないのだから、"オブジェクトインターフェイス"を隠蔽しようとするのは絶対に間違っている。

これだよ
オブジェクト同士の相互作用が複雑なんだろ?

571:デフォルトの名無しさん
18/10/30 23:28:38.97 M87fl2aa.net
オブジェクト指向は、オブジェクト指向にしかない問題を作り上げそれを解決するという産業を作り出し金を稼いでいる
URLリンク(harmful.cat-v.org)
しかしそれってある意味立派なことではないだろうか?
プログラマの雇用をC++を作ることで守った人みたいに。

572:デフォルトの名無しさん
18/10/30 23:50:44.94 UtoqQUYR.net
金まき上げる層にとってはそうかもしれないが
OOPに苦しめられている開発者のことも忘れないでください

573:デフォルトの名無しさん
18/10/30 23:53:00.63 H/liFP07.net
AというオブジェクトからBというオブジェクトにアクセスする場合
よほどの理由がないかぎりBからAにアクセスすることは避けないといけない
できるだけコンポジションにするべき
この場合、AがBを内包するようにする

574:デフォルトの名無しさん
18/10/30 23:56:18.20 UtoqQUYR.net
A<->B 相互参照は避けろって
どうした、熱でもあるのか当然のことなぞ書いたりして
いい子だから射精して早めに寝なさい

575:デフォルトの名無しさん
18/10/30 23:58:33.02 sh92d/1G.net
AとBを内包するCを作り中ではAとBに殴り合いの喧嘩をさせる
生き残った方も潰す

576:デフォルトの名無しさん
18/10/30 23:59:09.37 sh92d/1G.net
Cも潰す

577:デフォルトの名無しさん
18/10/31 00:00:14.64 THFaDY1P.net
オレはこのことを前スレでも書いている

578:デフォルトの名無しさん
18/10/31 00:00:53.21 onaYxvxm.net
そしてカオスすら残らないと
やめちゃえOOPなんか

579:デフォルトの名無しさん
18/10/31 00:05:48.76 mbSgQcga.net
オブジェクト指向で以下をモデル化せよ
> いい子だから射精して早めに寝なさい

580:デフォルトの名無しさん
18/10/31 00:24:22.78 THFaDY1P.net
class cneat {
 public:
  void erodouga_miru(void);
  void erohon_miru(void);
  void mousou(void);
  void shikoshiko(void);
  bool is_dopyu();
  void fukifuki(void);
  void poi(void);
  void neru();
};
int main() {
  cneat neat;
  while (neat.is_dopyu()) {
   neat.shikoshio();
  }
  neat.neru();
  return 0;
}

581:デフォルトの名無しさん
18/10/31 00:24:35.09 u+rWqfhJ.net
>>564
スレの趣旨は
オブジェクト指向は「クソ」か否かなので
オブジェクト指向のノウハウ・イロハ的レスは
すれ違いだな、ご愁傷様

582:デフォルトの名無しさん
18/10/31 00:29:25.58 THFaDY1P.net
オブジェクト指向では
ニートが射精しそうかどうかなんかに
いちいち関心もつ必要はない
射精するまでシコらせればいい

583:デフォルトの名無しさん
18/10/31 00:32:22.47 u+rWqfhJ.net
正論だ同意する >>566

584:デフォルトの名無しさん
18/10/31 00:33:37.25 u+rWqfhJ.net
>>569
半角さんは
オブジェクト指向のメリット・デメリットは何だと思う?

585:デフォルトの名無しさん
18/10/31 00:42:00.02 THFaDY1P.net
コレは何度もいってる
オブジェクト指向は適切に扱えば道具にすばらしいメソッドを与える
オブジェクト指向は道具自体ではないが
この板にいるような低学歴知恵遅れが使えば
キチガイに刃物になる

586:デフォルトの名無しさん
18/10/31 00:43:02.43 u+rWqfhJ.net
…Orz
だめだこりゃ

587:デフォルトの名無しさん
18/10/31 01:04:51.95 hTEse2SW.net
まず、プログラム言語の前に日本語なんとかしろよ定期

588:デフォルトの名無しさん
18/10/31 01:15:31.31 iWiU55Kl.net
適切に扱えばという前提条件が満たされうる確率を考慮すると、オブジェクト指向にはメリットがないと相当の確信を持って言える

589:デフォルトの名無しさん
18/10/31 01:22:08.87 +I7YAfIe.net
>>572
これ手続き型と関数型とオブジェクト指向のメリットやんけ

590:デフォルトの名無しさん
18/10/31 01:25:10.88 u+rWqfhJ.net
それを言っちゃぁ、おしまいよ。
でもなんか有効活用する規範みたいなものの登場は無理なんだろうかね
これだけ広まっちゃって、みんなだまされ続けてきてもう今から後戻りは難しいんだし
たとえば局所的なクロージャーのような使い方に限るとか

591:デフォルトの名無しさん
18/10/31 01:36:22.13 u+rWqfhJ.net
ITの分野ってのはさ、
AIだの第五世代だのΣだのGRIDだのDNNだの機械学習だのイジングだのファジだの大航海だの
バズワードを伴うインチキがどうやら流行しやすい分野らしく、
また、それによって国プロを初め一時的に投資を引き出して
短期間に市場が出来て消えてを繰りかえしながらも
長期的視野で見ると日本のITは凋落傾向を続けている。
でもそういった中でC++やJavaを中心としたオブジェクト指向は、
奇しくも20年以上の流行と社会的普及を経ていまだ跋扈している
このように都市伝説のような非科学・工学的インチキノウハウは
ホント歴史に残る珍しい社会現象だと思う

592:デフォルトの名無しさん
18/10/31 02:31:10.48 Crbi6MGa.net
>>538
>C++やオブジェクト指向の否定とも読めるが
『チンポ』は随意筋なのか不随意筋なのか、独立生物なのかそうではないか、 Linus博士の見解を聞きたい。

593:デフォルトの名無しさん
18/10/31 02:46:53.27 Crbi6MGa.net
チンポは独立した生き物なんだって、ビートたけしもそう言ってたろう?

594:デフォルトの名無しさん
18/10/31 07:46:28.93 aJeiKaad.net
>>578
文章うまいね
俺も同じ感覚だけどうまく表現できないよ
オブジェクト指向のメリットより、
言語の敷居を低くしたJava、C#やベターCとしてのC++他の言語にとって代わられることはないだけだと思う
オブジェクト指向言語であろうがなかろうが、
エレガントなデザインパターンというのはあって、
平均的な日本のプログラマには創造できないし、使うだけなら便利だろう

595:デフォルトの名無しさん
18/10/31 07:48:26.68 aJeiKaad.net
最近のバズワードはRPAかな
マクロ以上に負の資産になりかねないのに、日本のお偉方には輝いて見えるらしい

596:デフォルトの名無しさん
18/10/31 07:53:58.26 aJeiKaad.net
俺はインスタンスハンソル、ウィンドウハンソル、デバイスコンテキストハンドルを
上手に隠蔽できなかったMFCを見たとき、
クラスモデリングのハードルの高さを感じた
マイクロソフトさえ四苦八苦するデザインを
日本の一般プログラマができるわけがない

597:デフォルトの名無しさん
18/10/31 08:03:38.00 Crbi6MGa.net
>>427
>メモリアクセス減らしつつグローバル変数減らす苦肉の策+責任分担
グローバル変数ってのは、気軽に削除したり改変したりも出来ないからなぁ。
このゲームすぐ持ち物いっぱいになるな
URLリンク(dragon-quest.)


598:me/dq10/28435/ サーバー側でグローバル変数をいじると、プレイヤー側(クライアント)の画面表示がおかしくなるし。



599:デフォルトの名無しさん
18/10/31 10:29:45.97 H6K6+zdq.net
>>578
は?
ハンセン病とか
ロボトミーとか
魔女裁判とか
オイルショック→トイレットペーパーとか
マジでやっちゃった系なんていくらでもありげなこんな世界

600:デフォルトの名無しさん
18/10/31 11:53:54.81 YDfKwgHn.net
そもそも完全にオブジェクト指向だとしても、メソッドという存在は必ずしも必要では無いと思うが、素晴らしいメソッドってなんだろう?
素晴らしいメリットの打ち間違いなら、またポンコツ煽りマシンですらないって事?

601:デフォルトの名無しさん
18/10/31 11:54:28.82 SLDQJ2w1.net
>>583
まずいのは、そのウィンドウハンドルすらも隠そうとする輩がいること。
オブジェクト指向うんぬん言ってる奴は大抵そんな連中しかいないだろ。

602:デフォルトの名無しさん
18/10/31 12:23:19.24 BVdvL0XC.net
>>587
MFCがやりたかったのは、
キーとなるハンドルでグループ化して、
そのハンドルをメンバ変数にして引数からなくすっていう作業ゲーのノリではないの?
長らくさわってないので間違ってるかもしれんけど

603:デフォルトの名無しさん
18/10/31 12:26:55.00 BVdvL0XC.net
どっちにしてもドキュメントビューアーキテクチャと相まって、ちっとも生産性は上がらなかった
マイクロソフトの独壇場だからどうしようもないけど、今でもMFCの縛りはあるのかね?>現役の開発者

604:デフォルトの名無しさん
18/10/31 12:28:48.87 +6FJ+kHd.net
win32api直接叩いた方が遥かに楽だとは誰も思うまいw

605:デフォルトの名無しさん
18/10/31 12:31:49.75 BVdvL0XC.net
20年前は、オブジェクト指向がうんたらっていう輩はいなかったな
実際に手を動かして、マイクロソフトでさえこんなゴミを作るんだーって
冷めた目で自動生成されたメッセージマップを見てた
いろいろメリットを説明したがる人って、
本当に職業としてプログラミングに関わってるの?

606:デフォルトの名無しさん
18/10/31 12:34:47.92 BVdvL0XC.net
メッセージループだって、最後にdefaultのdispatcher呼べばいいだけだろ?
それだけの制約を守らせたいだけで実装継承なんかしなくていいよ
純粋仮想関数?可読性落とすなよ

607:デフォルトの名無しさん
18/10/31 12:39:13.05 gqtAU0ur.net
>>583
あれはWin32APIにドップリ浸かってると逆に使い易いらしい。(使いたい機能毎にAPI纏めた感じらしい)
ライブラリ設計の違いだが一般受けしなかったのに、企業で強制されて嫌われ者になった感じ。(VC6時代が最盛期)
あの頃が一番(個人用途で)Delphiが輝いてた。

608:デフォルトの名無しさん
18/10/31 12:42:39.00 BVdvL0XC.net
>>593
そうだよDelphiのクラスライブラリのほうがはるかにいけてた
MFCが勝つんだから、プログラミング言語すら政治の世界なんだなってみんな言ってた

609:デフォルトの名無しさん
18/10/31 12:52:19.59 wG8+54SG.net
mfcでooを語るとか勘弁してくれよ
あれはただのapiラッパー

610:デフォルトの名無しさん
18/10/31 13:13:41.67 qAfaFUSH.net
apiラッパーを超越してるからしまつが悪い
ドキュメントビューのウィーザードから始まるフレームワークだよ
ダイアログベース程度なら被害は少ない

611:デフォルトの名無しさん
18/10/31 13:15:25.54 gqtAU0ur.net
>>595
言いたくは無いよ?
言いたくは無いけど、デスクトップアプリで保守でOSやランタイムのバージョン気にしないで作れる環境って、事実上それしか残ってない。(最早スタティックリンクでファイルサイズが~何て気にする必要ない時代)
もう辞めたけど、大学(海洋系)のシュミレータとかデスクトップで実現出来るパフォーマンスは当時MFCしか無理だった。
今なら他の手段もあるだろうけど、すでに作っちゃった以上はそれで保守される。
(本当に、何であの当時Delphiが業務で広がらなかったのかと)
まあいいじゃん、最近のトレンドはAndroidやiOSだ。事実上のHTML5で、オブジェクト指向と言ってもプロトタイプがメインだ。
最早古きゆかしきオブジェクト指向は虫の息だよ。
まともなオブジェクト指向話題にするならTypeScriptかも知れんね。

Javaもそうだよ。
作っちゃった以上は長い目で見れば新規だけど、当面の保守費の方が中小には楽というか、また新規開発する体力無いのが殆ど。
(オラクルも、そういうのを見越してると思う。若干馬鹿な気はするが)

612:デフォルトの名無しさん
18/10/31 15:19:01.55 Crbi6MGa.net
 何を考えて学園をつくろうと思ったのか?
りっきーさんコメント:
「アスフェルド学園」は 冒険者のみんなにこれまでのアストルティアでは実現できなかった
新しい体験を味わってほしいという気持ちから開発をスタートしたものなんだ。魅力的な仲間を育てて共に
成長していく体験やあらゆるとくぎを使いこなせるオールマイティなキャラクターを作り上げていく体験だね。
今あげた2つの例をはじめとして、遊びとしては楽しいけれど数多くの人が同時に遊べる世界として実現が難しい。
そういった遊びを実現するために別の切り離された世界をつくったというのが学園を作った大きな理由なんだ。
URLリンク(www.tentama.net)

613:デフォルトの名無しさん
18/10/31 17:22:38.37 hTEse2SW.net
>>597
そういえば何もかも消え去ったな

614:デフォルトの名無しさん
18/10/31 21:22:02.84 5Yfq+loR.net
>>591
オレのところで一番のOOP伝道者は、ほとんどソフトウエアを作成できなかった
サンプルプログラム程度のものでもデバッグにえらく時間がかっていて足手まといだった。
でも結構な数のOOP信者を調教するのに成功し、一時職場では大OOPブームとなった。
J2EEの失敗がまだ表面化する前の、みんなOOPに夢見ていた頃の話。
OOPブームがピークを過ぎた頃、ISO9000やCMMIの伝道者に鞍替えしたので
開発部門から品証部門に移されて、いまは他人の書いたドキュメントの抜けチェックとかやってる
後出しじゃんけん的揚げ足取りやインチキが上手いので、表面的には何か品証の仕事を
しているように一見みえているよ

615:デフォルトの名無しさん
18/10/31 21:24:19.69 GBbwoAdu.net
揚げ足は取られた方が悪いにきまっとるんやがw

616:デフォルトの名無しさん
18/10/31 21:26:06.17 5Yfq+loR.net
ま、マジか、、、
「前向き」に開発に集中してと取り組んでいると
脇が甘くんるのはしょうがねーだろうに

617:デフォルトの名無しさん
18/10/31 21:34:07.64 GBbwoAdu.net
言い訳すんな無能w

618:デフォルトの名無しさん
18/10/31 21:40:39.52 5Yfq+loR.net
 うるせえエビフライぶつけるぞ!
     ,.、,、,,、、..,_/i
    '、;: ...: ,,:.:'.‐'゙' ┘
     ヽ(´・ω・)ノ 「・・・・」
       |  /
       UU

619:デフォルトの名無しさん
18/10/31 21:47:03.83 o0DzM9PU.net
                                l;:;:;:;:;:;:;:;:l;:;:;:;:;:;:;:;:`丶、;:;:;:;l
                               ,l;ィ'----┴―--、、;:丶、!
                             ,ノ7 '"^   ^`'   ,ィ'三ミ、_〉   
                            {:/, ニ丶  ,r,=-、 ヾ:::::::ミヾ
                            〃ィ'。`>ソ { ィ'。`'ァ::..  !::::::ミ:l   
                             l:! `~´/ ,l、  ̄´   ,. }:::::三<
                          .   ll   (、 っ)     : ,l::::シ久'l   
                   .i\       _,..、、,、,.、、,._、     ,:' f::/ン ノ/
                   i‐- `.',:'''´:゙:. :.,: ,: ,.:. . ,.:、 ミァ ,)    {,ツ>-‐'′
                    ̄  ̄ ゙'‐..: ;..;;.;_ ::. :.,':.、.: .: ' : ヽ   ,_ソ/
                              丶、__, -―''"/,/
                               ,} ヽニニ  =彡シ,ンヽ,
                              ,/(`=- r‐ ''" / ,/丶、
                            .ノヽヽ、_;__,∠..ィ"-―ュ、

620:デフォルトの名無しさん
18/10/31 22:12:01.27 YbcMdBkp.net
staticおじさんの時代が来る~

621:デフォルトの名無しさん
18/10/31 22:14:19.91 qQf9WOcW.net
>>600
linusがもっとも排除しようとしてた連中の性質だな。
結局そういう連中は
object->run()
と書いときゃごまかせると思ってんだよ。
そのrunの実装をどうするかが本質だっつーのに。

622:デフォルトの名無しさん
18/10/31 22:18:25.70 smQ7taqR.net
あまりまっとうなことを書くと、
信者もアンチも近寄れず、荒らしに会うという罠

623:デフォルトの名無しさん
18/10/31 22:22:34.70 smQ7taqR.net
なんか日本のITの構造が良くないよね
学はあるけどITのセンスがないstaticおじさんが元請けのプロパーとして君臨し、
その配下で中途半端にオブジェクト指向をこじらせた派遣が
好き勝手に作ってるんだもの

624:デフォルトの名無しさん
18/10/31 22:26:57.30 smQ7taqR.net
ときどき降臨するベテっぽいカキコ摩る人たちの意見が正しいなあと
ちょっと思えるくらいにはなった気がするけど、
外国で流行ってると言われると思考停止する自分もいやだわ

625:デフォルトの名無しさん
18/10/31 22:29:10.15 5Yfq+loR.net
他のOOP厨の例では、30代前半くらいのJavaとC#好きな
ソフトウエアの研究者が数名いる。
彼らは人にOOPを広めるような活動はしなかったが、
学生時代から親しんできて慣れているのか、あるいは地頭がいいのか、
ある程度まとまった量の研究目的の実験的プログラムを
OOPで作っていた。
集中して新規に作っているときは、入り組んだ関連性でも
一断面に集中できるのか、OOPで結構コード書いていた。
他人が見返したら分かりやすいプログラムであったかは、なんともいえない。
(研究のコードはあまり見せたがらないから)

626:デフォルトの名無しさん
18/10/31 22:29:23.59 wG8+54SG.net
金のハンマーで料理とか釣りしてるバカがいるだけの話よ

627:デフォルトの名無しさん
18/10/31 22:33:06.57 o0DzM9PU.net
>>611
それが普通だからな

628:デフォルトの名無しさん
18/10/31 22:37:18.48 5Yfq+loR.net
他には、、、
若い研究者がpythonのkerasで強化学習の研究コードを書いた事例がある。
kerasは継承でカスタマイズして強化学習アプリを作るFWだけど、その継承を
上位レイヤまでズット引きずって、アル程度規模のあるアプリを力ずくで書いて
研究のため継ぎ接ぎしていったもんだから、
他のFWの継承や複合的big instance、instance間の関連性、継承による
深い依存の嵐でぐちゃぐちゃになり、もう何がなんだか分からないコードの
山になっていた。
頭のいい研究者なんだけど、ソフトウエアの方法を選択するセンスは
いまいちだったかもしれない

629:デフォルトの名無しさん
18/10/31 22:45:24.15 o0DzM9PU.net
>>614
えぇ!?大卒なのに!?って言ってやれw
やっぱ関係ないよなぁ。学歴は

630:デフォルトの名無しさん
18/10/31 22:55:03.62 5Yfq+loR.net
OOPとuml流行期にそれを煩った(ソフトウエアのセンスがいまいちない)PMの率いた
ネットワークアプリケーション開発、C++で約45000stepの事例も
どちらかというとOOPの適用失敗例だったかな。
PM自ら薀蓄をたれてC++の持つOOPの機能を駆使して実装することに
血道をあるよう指示し、似たmethodがあればどんどんスーパークラスを
設けて差分プログラミングを実践し、そのためにC++にはjavaのinterfaceが
ないからといって完全仮想関数を多用し、、、、、、、
privateメンバが後で外から参照必要だと分かればgetter/setter追加し、、、、
singletonで実質最外部変数を設けてやり取り継ぎ接ぎし、、、、
そのうちプロジェクトが遅れぎみになり手が足りないというので、人が注入されたが
もう他人があとから見てもそのコードが何をする働きのものか、どのような構造のものか
もはや俯瞰できず、こういう状態に陥るとドキュメント化しにくいのでドキュメントは省かれ、
分からないことがあれば聞いてくれれば教えるよ、と開き直られ、かけた人数の割には
全然はかどらなかった。
できたソフトウエアはかなりひどい代物だったが、
まぁ、報告書書けば検収上がる○プロだったので、一回実験したあとは特にソフトが
使われることもなく何とか丸め込んでいたようだ。

631:デフォルトの名無しさん
18/10/31 22:55:35.78 5Yfq+loR.net
>>615
Doctor出だよ。

632:デフォルトの名無しさん
18/10/31 22:57:45.31 5Yfq+loR.net
あんまり書くと特定されかねないから
ほどほどにしとくわ

633:デフォルトの名無しさん
18/10/31 23:08:59.41 qQf9WOcW.net
結局、オブジェクト指向が有効なのは
ある程度扱うオブジェクトの粒度が粗いレイヤーでの話だと思う。
複数のオブジェクトが複雑に相互に絡み合ってるところはlinusの話にあるような状況になるということじゃないか。
んでもってその粒度の閾値をメンバーでうまく共有するのが難しいからソフトウェア開発ってのは難しいんだろう。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch