1 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 22:00:53.85 ID:H4l7y46b.net] 最近の言語には採用されないことが増えている
608 名前:デフォルトの名無しさん [2024/01/18(木) 10:32:03.61 ID:YnZ4cQvx.net] オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋 このように時と場合によって真逆の性質を併せ持つことができる >>579 >さらに今は多くはの言語が非同期呼び出しをサポートしていて関数呼び出しで返ってくるのは 随意筋 不随意筋 ↖ ↗ チンポ >求める値ではなく 随意筋(本人)である場合と、 >FutureやPromiseが返って来る 不随意筋(他人)である場合がある。
609 名前:デフォルトの名無しさん [2024/01/18(木) 11:05:22.35 ID:YnZ4cQvx.net] 意味論上の原則として、メッセージ送信表現が何を意味するかは、メッセージを受けるオブジェクトによって決められる(SEO)。 この考え方の重要なところは次の二点だ。 メッセージはそれ自体でいかなる意味も持たない メッセージが何を意味するか(システムとして何を起こすか)はオブジェクトが解釈する https://qiita.com/ukyo-su/items/8c861f114809a96d1378 >>571 >それらマルチな環境で動いている独立したオブジェクト同士がメッセージパッシングをするところから始まっている 「オシッコがしたい」と自分がそう思っていても、体内に入っているうちはオシッコにはならない そうでは無くてチンポから尿を出すことによって、それはオシッコなのだと意味づけられる
610 名前:デフォルトの名無しさん [2024/01/18(木) 11:16:28.90 ID:YnZ4cQvx.net] 随意筋 不随意筋 ↖ ↗ チンポ チンポは本人の意思では動かせない別の生き物だが? >>580 >そんな感じでプリミティブな関数呼び出しを利用してなんでもできるじゃん × 俺.オシッコを止める 俺.オシッコを出す >それをメッセージパッシングとか名前だけ変える意味ないやろ ○ 俺.チンポに力を入れる 俺.チンポから力を抜く
611 名前:デフォルトの名無しさん [2024/01/18(木) 11:26:03.41 ID:YnZ4cQvx.net] 俺↔チンポ 相互作用ね! >>571 >それらマルチな環境で動いている独立したオブジェクト同士がメッセージパッシングをするところから始まっている https://mobile.twitter.com/ki45_nisiki/status/1581300043935494145 フローズンぺんぎん@とりゅー @ki45_nisiki 返信先: @LunRon5 さん どんなに教養と勉強で武装しようとも、自身が抱える性癖には逆らえん。チンポが脳や人格にオーバーライドして支配してくる欲求には逆らい難い…だからこそ最低限の慎みと矜持として2次元があるのではないか…デブでもおばさんでも勃起できる人にはこの苦しみはわからんっすね (deleted an unsolicited ad)
612 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 14:40:55.32 ID:ajk+/w34.net] 前も歴史的タイミングがわかってない人が居たけど 大学のデータセンターみたいなのがネットワーク通信できるようになって 処理を外部のコンピュータに委任する状況が当時の最新システムで始まった時に 従来の一つのアドレス空間で結局内部でステップ順に処理しているという プログラムの常識が通用しなくなって来たから 「もう独立した処理単位(オブジェクト)としてサブルーチンを捉えよう」という オブジェクト指向が始まったので、結局アドレスで〜というのはお門違い。
613 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 15:06:53.52 ID:Q62r0xAB.net] オブジェクト指向うんぬんはあるけど、状態管理まわりのアーキテクチャうんぬんの議論も最近よく見かける ReduxだのMVVMだのいろいろありすぎる まあ結局フレームワークで状態管理アーキテクチャを選ぶことになるんだろうが
614 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 16:11:16.24 ID:iUO1jvdw.net] >>595 なんで君はそんな嘘を吐き続けるの? オブジェクト指向の起源と通信は全く関係ないよ
615 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 16:43:01.66 ID:ajk+/w34.net] いろいろ不思議なんだよね 80~90年代のカプセル化や新しいプログラムパラダイムの話題 現代のswift playgroundやunityの実装まで全てがステップバイステップで プログラマがコントロール“できない”からオブジェクトに処理は任せるという思想で 近代プログラミングは成り立ってるのに、そこの歴史一切無視して ずーっとCとかアセンブラ脳なんだままっていったいどこで情報科学を学んだの?
616 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 17:09:23.81 ID:6/8H82z6.net] むしろデータ型の歴史を無視することで 変数の型を宣言しないことが可能となる 関数がアルゴリズムを隠蔽するのと同様に変数がデータを隠蔽できるようになる
617 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 17:24:03.18 ID:dJGuHi0H.net] >>596 誰もUIの話なんてしてないんだがバカか?
618 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 17:30:45.26 ID:Gjb5vx80.net] reactはコンポーネント指向とかいうので開発するんだっけか知らんけど
619 名前:デフォルトの名無しさん [2024/01/18(木) 17:35:59.19 ID:HYoD398u.net] オブジェクト指向の最高傑作は依存性注入という考え方だよね 自動テスト最高
620 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 17:51:12.10 ID:318qGf4h.net] >>588 じゃあなんで、提唱されてから40年は経ってるのに、我こそは真のオブジェクト指向言語だメッセージは通信で渡すぞオブジェクトはみなスレッドだってやつが現れないの?
621 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 17:59:18.46 ID:op9CkZw4.net] >>603 オブジェクトはスレッドだけじゃないからでは?
622 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 18:13:43.69 ID:318qGf4h.net] >>604 わいもそう思うんだけど、 >>571 が言うには元々のオブジェクト指向はオブジェクトが独立したスレッドで動いてるらしいんだよ だから、なんでそういう「本来のオブジェクト指向」の実装が未だに現れないんだろうねえ不思議だねえって話
623 名前:デフォルトの名無しさん [2024/01/18(木) 18:15:26.58 ID:YnZ4cQvx.net] コントロールできる場合とできない場合が併存するということね! >>598 >プログラマがコントロール“できない”からオブジェクトに処理は任せるという思想で 随意筋 不随意筋 ↖ ↗ チンポ
624 名前:デフォルトの名無しさん [2024/01/18(木) 18:29:06.41 ID:YnZ4cQvx.net] オブジェクト指向=人工知能 >>605 >なんでそういう「本来のオブジェクト指向」の実装が未だに現れないんだろうねえ不思議だねえって話 (第1章 はじめに 2頁) たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。 Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、 Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」 には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、 Fredはそれでも人間なのかと尋ねた。 『深層学習』 著者: Ian Goodfellow, イアングッドフェロー, Yoshua Bengio, ヨシュアベンジオ, Aaron Courville, アーロンカービル
625 名前:デフォルトの名無しさん [2024/01/18(木) 18:36:42.71 ID:YnZ4cQvx.net] >>131 >つまりオワコンとなったのは「クラスとその継承」 これは継承を使うしか無いでしょ? >Fredが電気カミソリを持っていたので、 Fred ↑ 電気カミソリ+Fred
626 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 19:21:45.75 ID:p4+mv2Ay.net] なんかすげえ伸びてるな なんの議論してるのかだれか要約して
627 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 19:44:08.60 ID:318qGf4h.net] >>609 わいは >>571 が言ってる「本来のオブジェクト指向」ってのがおかしいと思ってるから、smalltalkが「本来のオブジェクト指向」に則って実装されてないのはなんでなんって話をしてるつもり
628 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 20:07:42.87 ID:p4+mv2Ay.net] …🥺 とりあえずOOSCの超要約でも読むわ https://seesaawiki.jp/supersummary/d/OOSC 第35章 SimulaからJavaへ、そしてその先へ:主なオブジェクト指向言語とその環境 https://seesaawiki.jp/supersummary/d/OOSC/35
629 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 20:15:07.55 ID:IdJKbIqV.net] >>607 昔はエージェント指向というのがあってなぁ。 AIの台頭で復権するかもね。 >>608 オブジェクト指向でも継承じゃなくて集約使う状況じゃない? 継承とか基本的にコンパイラの実装上の都合(性能とか)をプログラムの設計に押し付けているだけだから、安易に使うべきじゃないよ。
630 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 20:30:12.28 ID:hMwUZ6n+.net] 各種プログラミング言語の継承とかってコンパイル時には解決してるものなんだからコードの可読性が上がるのなら使っていくべきもの 安易に使うべきではないっていうのは、 ・コンパイラ任せのプログラムを書くなってこと? ・コンパイル後でボイラーコードが増えてアホコードになるってこと? ・コンパイラに継承とかの解決をさせることが時間の無駄ってこと?
631 名前:デフォルトの名無しさん [2024/01/18(木) 20:33:43.77 ID:YnZ4cQvx.net] 「装備品」ということなら集約かな? >Cycは人間には電気の部品がないことは知っているが、 >Fredが電気カミソリを持っていたので、 <オブジェクト指向の集約について> クラスが他のクラスの組み合わせで構成されている関係を集約(aggregation)と呼びます。 例えば、学校は生徒を含み注文商品は商品を持ちます。 集約では、含んでいる側が消滅しても、含まれている方はなくなりません。 例えば、生徒が変化しても学校は変わりませんし、注文商品が消滅しても商品は消滅しません。 wtar00.seesaa.net/article/438834930.html
632 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 20:36:36.73 ID:318qGf4h.net] >>613 Vectorを継承してStackを作るようなヤツが現れないようにするためもあるぞ
633 名前:デフォルトの名無しさん [2024/01/18(木) 20:39:00.79 ID:YnZ4cQvx.net] Pythonは多重継承だが? >>612 >継承とか基本的にコンパイラの実装上の都合(性能とか)をプログラムの設計に押し付けているだけだから オントロジーは、情報の親/子関係を表現できます。RDFドキュメントの例でも触れましたが、 オブジェクト指向の継承と同じ概念と理解いただいてもよいと思います。そして、 オントロジーの「継承」の特徴は、次のようにオブジェクト指向と近いものです。 子は親の情報(=設定値)を引き継ぐ 多重継承ができる。(継承した全てのクラスの定義を漏れなく引き継ぐ) 継承の関係は、「subClassOf」と表現します。「子 is a 親」という関係です。 https://qiita.com/mininobu/items/bce0e0ad97ed17e0aff2
634 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 20:53:38.83 ID:IdJKbIqV.net] >>613 設計の初期の段階でクラス継承関係みたいな変更しづらい仕様を固めなくてはならないのは「早すぎる最適化」だということ。 継承関係の変更はえてして根底からの設計変更が必要になるけど、設計が熟成する前にクラスの依存関係を確定するのは非常に難しい。 adaptorパターンとかで影響を減らすことはできるけど、それなら最初から継承関係用のadaptorを用意したほうがいい。 c++のコンセプトをそのまま変数の型に使用できればずいぶん楽になるんだけどな。
635 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 21:03:06.30 ID:bwFEBIOM.net] モダンなプログラミング言語 Go、Rust、Zig、Nim、Julia、Elixirは クラスおよびその継承を言語仕様から排除している クラス継承は悪手であるとプログラミング言語界では結論が出ている
636 名前:デフォルトの名無しさん [2024/01/18(木) 21:07:29.23 ID:YnZ4cQvx.net] クラス継承が大事だつーなら、必ず多重継承も含めなければならなくなるからなw 随意筋 不随意筋 ↖ ↗ チンポ 人工知能や自然言語処理なら、文脈によって語の意味が変化するから、多重継承必須ね! 618 デフォルトの名無しさん sage 2024/01/18(木) 21:03:06.30 ID:bwFEBIOM モダンなプログラミング言語 Go、Rust、Zig、Nim、Julia、Elixirは クラスおよびその継承を言語仕様から排除している クラス継承は悪手であるとプログラミング言語界では結論が出ている
637 名前:デフォルトの名無しさん [2024/01/18(木) 21:14:26.20 ID:YnZ4cQvx.net] Javaみたいな多重継承をサポートしていない言語なら、継承そのものを殆ど使わないほうがいいと思う 随意筋 不随意筋 ↖ ↗ チンポ 継承を使う場合は、必ず多重継承をもサポートしなければならないのだから!
638 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 21:26:58.92 ID:XBwDmihy.net] さまざまなユースケースの必要なUIまわりくらいでしか継承はもはや必須じゃないよね システムまわりでは継承使うとかえって将来的に保守をしにくくなる
639 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 21:37:43.88 ID:iZjcVJFY.net] >>618 Rustはメッセージングもないけどな Rustはオブジェクト指向じゃないという大きな根拠
640 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 21:47:34.26 ID:/z/OLNb0.net] rustは継承に変わる実装としてトレイトがある。継承はレガシーなゴミ技術だよ。 ''' オブジェクト指向言語の問題は、暗黙の環境を常に持ち歩いていることだ。 欲しかったのはバナナだけなのに、あなたが得たのはバナナを持っていたゴリラと、ジャングル全体だった。 Joe Armstrong https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53 https://qiita.com/baby-degu/items/ae5777dad23ee6624ce2 '''
641 名前:デフォルトの名無しさん [2024/01/18(木) 21:48:59.95 ID:YnZ4cQvx.net] 集約 独立して存在できる何かのコレクションがある場合 P.29 こちらは空港と飛行機で例えられています。 コンポジションのようなAとBの強い結びつきはありません。 https://qiita.com/gatapon/items/5e3292f897ab4f817001 ドラゴンクエストX 【主人公と職業】 ・戦士 ・僧侶 ・魔法使い ・武闘家 ・盗賊 ・旅芸人 一般的に「オブジェクトの継承」が使われるが、この場合は「集約」でも代用可能だ 空港でどの飛行機を先に飛ばすかは、主人公がどの職業を選択するかに置き換えられる プレイヤーの意思でコントロールできるからだ >Cycは人間には電気の部品がないことは知っているが、 >Fredが電気カミソリを持っていたので、 装備品もプレイヤーが自分で選択可能だから、「集約」でも代用可能だ class チンポ extends クリントン{ super.不適切な関係; } しかしながらクリントンが自分のチンポをコントロールすることは不可能 クリントンは同じクリントンでも、人格とチン格は違うからだ
642 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 21:50:12.81 ID:p4+mv2Ay.net] 継承は開発者の手腕によって神にも悪魔にもなる きっちりとした仕様書とノウハウがあれば保守性に長けたプログラムがちゃんと出来上がるよ
643 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 21:52:27.18 ID:bwFEBIOM.net] >>622 Rustも他の言語と同様にメソッド呼び出しがあり 内部構造の秘匿もできるため オブジェクト指向
644 名前:デフォルトの名無しさん [2024/01/18(木) 21:59:50.46 ID:YnZ4cQvx.net] >>611 継承が必須だということなら、多重継承をサポートしていないJavaは欠陥言語となる 多重継承をサポートしていないということは即ち、他のやり方で代用できると考えていい 継承を使いこなしたいのであれば、Pythonのような多重継承をサポートしている言語をマスターすべき
645 名前:デフォルトの名無しさん [2024/01/18(木) 22:22:16.51 ID:k9qVbfct.net] >>623 引用オナニー要らないよw 変態プレイは一人でやってください
646 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 22:31:39.02 ID:p4+mv2Ay.net] >>627 継承の継承を使えりゃ十分じゃね? Kotlinやってるけど多重継承できなくて困ったことはない あと改善版継承のようなsealed classは優秀
647 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 22:45:13.36 ID:OdzmVMko.net] javaのやってる継承は継承もどき 本物の継承はpythonにしかできない
648 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 23:16:36.55 ID:BMLfw7Fm.net] ほんとはみんな継承をやりたいんじゃなくて、ポリモーフィズムと情報の隠蔽をやりたいだけなんだよね
649 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 23:31:00.54
] [ここ壊れてます]
650 名前: ID:jl137W3w.net mailto: >>603-605 Erlangとかあるけどね でもUnixなプロセスモデルに適合させようすると 変数とおなじアドレス空間にオブジェクトを置く よくあるタイプになってしまう [] [ここ壊れてます]
651 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 23:51:38.17 ID:6/8H82z6.net] 情報隠蔽は情報不足と見分けがつかない スクリプトに不足している情報を明示したいだけなのがGo、Rust
652 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 01:05:45.75 ID:Bxqp/mLl.net] >>633 まずはこの議論における基礎知識としてRustのトレイト(trait)を学習することをおすすめする
653 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 01:09:24.73 ID:dQ/RTsAV.net] >>632 そのへんも自分らが本来のオブジェクト指向を実装してるんだぜなんてことを言ってないことから、 >>571 の主張が出鱈目なのが分かっていいよね
654 名前:デフォルトの名無しさん [2024/01/19(金) 01:19:07.65 ID:5qNxVIXw.net] 「本来のオブジェクト志向」、体験するのが無理という難点がある まさか令和の時代にSmalltalk触れってわけにもいかないし
655 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 01:24:17.77 ID:dQ/RTsAV.net] smalltalkのスレッドまわりはjavaとだいたい同じだった記憶があるし「本来のオブジェクト指向」とはきっと違うはず
656 名前:デフォルトの名無しさん [2024/01/19(金) 08:10:41.28 ID:iTaoyDeQ.net] >>636 Smalltalkは多重継承をサポートしていないぞ?
657 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 08:49:00.44 ID:MC8t1NGB.net] クラス継承ですらデメリットが大きいためモダンなプログラミング言語では採用されていないのに クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ クラス多重継承を採用していない言語が正しい
658 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 09:04:50.86 ID:oSBLpXih.net] 継承は凡人には使いこなせなかった なので、機能として存在する意味がないし、下手に使うと有害なので廃止された
659 名前:デフォルトの名無しさん [2024/01/19(金) 09:30:06.32 ID:iTaoyDeQ.net] 多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。 >>639 >クラス多重継承なんてあまりにもダメすぎるため 最終的に,クラス階層は最上位クラスを含めた 最大8 階層から構成され,「伝統的な日本の絵画」 に属する用語に対応する 55 クラスと解説文中か ら抽出した139 クラスが配置された。ただし,そ のうち 32 クラスが複数の上位クラスをもつとい う多重継承が示された。例えば,「ngyc:絵巻物」 は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の 形式」の下位クラスである「ngyc:巻子」の 2 つの クラスを継承する(図 2)。こうした多重継承は, 本質属性をもつ基本概念と機能を表すロール概念 を分離することで,基本概念による属性継承に限 った階層関係に変更するという考え方もあり 10), 「ngyc:伝統的な日本の絵画」がロール概念で, 「ngyc:表具の形式」が基本概念と捉えることもで きる。しかし,本研究ではテキストからの情報抽 出に即して配置し,多重継承を許容した階層を導 き出した。 www.mslis.jp/am2019yoko/05_kobayashi.pdf 随意筋 不随意筋 ↖ ↗ チンポ
660 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 09:43:00.08 ID:sTJV5iPD.net] もう下品な比喩はいいからw
661 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 10:56:52.36 ID:HG/MrdYG.net] ガンダムで例えてくれ
662 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 11:09:31.72 ID:NQtmyzQy.net] 継承無くてもポリモーフィズムはできる それでいい
663 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 11:30:43.26 ID:HG/MrdYG.net] テンプレートおよびジェネリクスは禁止で それでいい
664 名前:デフォルトの名無しさん [2024/01/19(金) 11:37:19.74 ID:iTaoyDeQ.net] 「なぜPythonが人気なのか」を機能性・転職市場・将来性の3視点で調査 Python入門 2023年11月24日 https://www.sejuku.net/blog/108069 >>639 >クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ 流行とかパラダイムが全てでは無いにせよ、オブジェクト指向=人工知能ということなら、 自然言語処理における意味解釈は語のルーツを掘り下げるための「多重継承」がメインになる 随意筋 不随意筋 ↖ ↗ チンポ 文脈によって同一オブジェクトが真逆の振る舞いをするということね!
665 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 11:40:54.55 ID:arzVgFZ3.net] もう継承はゴミってことで結論出てるのになんでそんなに無くてはならないって拘るの?
666 名前:デフォルトの名無しさん [2024/01/19(金) 11:50:05.51 ID:iTaoyDeQ.net] >>647 最新調査でPythonが人気なのと、Pythonが多重継承をサポートしているのは、どう説明するのかな?
667 名前:デフォルトの名無しさん [2024/01/19(金) 12:04:44.60 ID:iTaoyDeQ.net] 集約と継承を使い分けることが大切ね! >>623 >欲しかったのはバナナだけなのに、あなたが得たのはバナナを持っていたゴリラと、ジャングル全体だった。 ジャングルーーーーーーーーーー ┃ ゴリラーーーー ┃ ┃ ┃ バナナ ┃ ┃ ┃ ーーーーーーー ┃ ┃ ┃ ーーーーーーーーーーーーーーー クリントンーーーーーーーーーー ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ーーーーーーーーーーーーーーー ┃チンポ┃  ̄ ̄ ̄ ̄
668 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 12:26:06.50 ID:SK8TlxrV.net] >>631 多態性・情報隠蔽ですら無くて、単にインスタンス間でやり取りするときのインターフェイスとプロトコルを確定しておきたいだけだよ。 継承みたいなコンパイラ都合のお作法はうざったいだけだし、インターフェイスとプロトコルを守っているなら多態かどうかもどうでもいい。結果的に多態になるけど、あくまで結果論。
669 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 12:31:42.38 ID:arzVgFZ3.net] >>648 pythonで複雑なシステムは普通の感性を持ってれば組まないし別にいいんじゃない? 継承がゴミだと言われる理由を考えてみて
670 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 12:38:25.66 ID:SK8TlxrV.net] オブジェクト指向がオワコンというのは正しくて、よりインスタンス間のルール管理に注力した契約プログラムとかに発展的解消してんじゃないのかね。
671 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 12:44:39.23 ID:arzVgFZ3.net] >>650 インスタンス間でやり取りするときのインターフェイスとプロトコルを確定(カプセル化)することがまさしく不要な情報の隠蔽なのでは? それでカプセル化したらポリモーフィズムに基づいてアクセスさせるか~みたいな感じでしょ?
672 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 12:45:36.30 ID:arzVgFZ3.net] そんでカプセル化したものを継承させるのはプログラムが煩雑になるからやめましょうよ、継承の実装を省くならクラスもいらないねってそういう話じゃん
673 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 12:52:25.37 ID:rg+QtK0B.net] >>646 多重継承の中でも型継承さえできれば十分ならインターフェースでよくね? それなら他の言語でもできるぞい✌
674 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 12:54:01.11 ID:SK8TlxrV.net] >>653 そう、そう。 実装の結果ついてきた結果論。 スタートはインターフェイスとプロトコル。
675 名前:デフォルトの名無しさん [2024/01/19(金) 12:54:57.24 ID:iTaoyDeQ.net] オンラインゲームのアップデートは「カプセル化したものを継承」では? >>654 >そんでカプセル化したものを継承させるのはプログラムが煩雑になるからやめましょうよ、 大型アップデート情報 バージョン6.5[後期] (2023/11/21 更新) https://hiroba.dqx.jp/sc/topics/detail/0e4f5cc9f4f3f7f1651a6b9f9214e5b1/ システムのアップデートは一般的に「継承」と自分は思うが、丸ごと作り直したほうが良いのかな?
676 名前:デフォルトの名無しさん [2024/01/19(金) 13:07:12.61 ID:iTaoyDeQ.net] 私見としてはオンラインゲームと言えども、大型バージョンアップ時は丸ごと作り直したほうがいいと思う ドラクエ10のバージョン7ということなら、すべてを再インストール化でもいい
677 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 13:15:20.79 ID:arzVgFZ3.net] >>657 オンラインゲームのアップデートってなに?もっと具体的に頼む バグ修正?新機能の追加?新キャラの追加? バグ修正や新機能はカプセル化の対応部分の丸ごと書き換え等いろいろあるだろうね 新キャラ追加はカプセル化したクラスモデルを継承して作り上げて、それをロードしてやれば、ポリモーフィズムに基づいて動いてくれるだろうね
678 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 13:17:20.00 ID:2+
] [ここ壊れてます]
679 名前:AapLKd.net mailto: さすがにアプデを継承と考えるのはややこしくなるからやめたほうがいい [] [ここ壊れてます]
680 名前:デフォルトの名無しさん [2024/01/19(金) 13:25:42.10 ID:iTaoyDeQ.net] >>659 >オンラインゲームのアップデートってなに?もっと具体的に頼む オンラインゲームというのは、リリース後も次々とアップデートを繰り返し、機能が増えていきます。 よって、一番最初の設計で、どれだけ未来の変化を予測して、準備しておけるかが大事になってきます。 後になって苦しまないために、最初は多少面倒でも、柔軟でわかりやすい、変化に耐えうる設計を心がけたいものです。 https://developer.aiming-inc.com/programming/design-battle-program/ オブジェクト指向を初めて勉強していたころ、クラスの継承は(個人的には)理解しやすかったですが、 インターフェースはいまいち利点が分かりづらい印象がありました。 そこで、デザインパターンのひとつ「Observerパターン」を取り上げて、 継承とインターフェースの使用法を見ていきます。Observerパターンは先ほどの一斉攻撃にも近いパターンになります。 https://qiita.com/kcpoipoi/items/e6c495e7a481e02847d8
681 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 14:00:28.63 ID:arzVgFZ3.net] >>661 うん、新キャラ新技はカプセル化の継承だね そんな表面層の部分を指して継承だ継承だ騒いでたの?
682 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 14:14:12.14 ID:arzVgFZ3.net] あ、継承をゴミと言ってるのであって、インターフェースやトレイトは存分に使うべきものだから 勘違いしてもらったら困るぞ
683 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 14:21:52.28 ID:arzVgFZ3.net] 新キャラ新技くらいならカプセル化の継承でもなくてインターフェースをただ実装するだけで済ませてるか>>661 自分の作品見てたら画面追加は継承を使ってたわ
684 名前:デフォルトの名無しさん [2024/01/19(金) 14:23:53.15 ID:2Txscu7W.net] >>663 継承自体はただの機能なので良いも悪いもない。 継承を理解していない人、不適切な使い方をしている人が存在するだけ。 どんな使い方をしても不具合が出ない機能なんて無い。
685 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 14:33:48.49 ID:arzVgFZ3.net] >>665 大いに同意 継承は基底クラスがよほど煩雑にならない程度なら使ってもよい ただ煩雑に組む輩等が多すぎたから継承を実装しないプログラム言語が生まれた それだけなんだ
686 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 14:51:07.26 ID:2+AapLKd.net] お勉強発表会はたのちいね
687 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 14:54:55.85 ID:arzVgFZ3.net] >>667 むちゃくちゃ楽しい
688 名前:デフォルトの名無しさん [2024/01/19(金) 14:59:58.61 ID:2Txscu7W.net] >>667 と暇人が申しております
689 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 17:41:08.81 ID:wxu2zgr7.net] >>665 継承は設計を初期の段階で固める「早すぎる最適化」だから避けるべき。 やるなら継承関係の実装だけ切り出したadapter用のholder templateを用意したほうがまだマシ。
690 名前:デフォルトの名無しさん [2024/01/19(金) 18:11:39.79 ID:Hi84WC+x.net] >>670 それは将来の変更可能性が低くない場合。 実際変更可能性が低いケースなんかいくらでもあり、その場合避ける理由にならない。
691 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 18:21:46.43 ID:9QtN1Vnk.net] >>670 つまりinterfaceで十分ってことだな
692 名前:デフォルトの名無しさん [2024/01/19(金) 19:20:32.13 ID:iTaoyDeQ.net] _w 、... ョ ┌┐ ィ ′  ̄+ ヘe、 j「. .¬气¬''..~''~ ,.ルw、.ーu、す ^^"~~l|~~^''' ォ′ .,. l| ┐ .√ j| _~+,.、. . .,/. ょ_/ 、j「 { `¬.. 〃 .、l| 、 .. ~^. ~ ` ~^ . ;. ョ __ . j| ~ラ¬¬+ |.  ̄.  ̄.. . オ |.. ォ ,、 k、 ,j〃. L_. _ェ ~'――'~. ^^^^^^ ̄´  ̄′  ̄ ̄
693 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 19:28:18.36 ID:r1TqRAYd.net] 一人で書き込みお疲れ様。
694 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 19:43:32.99 ID:SK8TlxrV.net] >>671 熟練の設計者が慣れた問題領域やるんでもなければ無理だろ。
695 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 19:52:40.51 ID:SK8TlxrV.net] >>672 だいたいインターフェイスで十分だわ。もっと機能強化したのが出てこないかね。 c++のコンセプトをインターフェイスに使いたいところ。
696 名前:デフォルトの名無しさん [2024/01/19(金) 20:09:04.02 ID:XrKZZkrv.net] >>675 超大型建築より普通の一軒家の方が数、つまりニーズが圧倒的に多い アプリは常にスケールする可能性がある、というのは理論的な話で実際スケールするアプリなんかほんの一握り。結局作ってそのままなんていくらでもある。変更が無いケースで熟練どうたらとか全く無関係。
697 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 20:34:16.00 ID:SK8TlxrV.net] >>677 普通の一軒家とか、問題領域の知識が無くて失敗する事例の宝庫だろ。あとになって大抵の人間は「コンセントが足りない」と言うしな。 変更しないままなのは「変更しなくていい」じゃなくて「変更は不可能に近いから不便・危険でも諦める」だからな。
698 名前:デフォルトの名無しさん [2024/01/19(金) 20:49:36.09 ID:XrKZZkrv.net] 結局継承で都合が悪いケースなんて極一部というのが現実。 ヤグニの原則に反して嬉しいのは客の金でただで勉強・実験したいエンジニアだけ。
699 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 21:05:02.67 ID:SK8TlxrV.net] >>679 まあ、いいんじゃない? 初期に設計したクソ仕様を客に「大したことはないから変更しない」と放置できるなら。
700 名前:デフォルトの名無しさん [2024/01/19(金) 21:27:25.19 ID:K5SD+kWD.net] >>672 インターフェースだけだとコピペ継承が乱立するんだよ そこでインターフェースのデフォルト実装等クラス継承と同じ実装継承を使うことになる でもクラス継承はとにかく悪だと思ってる人は実装継承のメリットとデメリットを正しく理解できてないから結局同じ問題を引き起こすだけ
701 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 22:05:02.77 ID:yy9dhl7c.net] >>681 インターフェイスと実装は永続性や影響範囲が違うんだから、密に関連づけるのは悪設計。 継承はさらに基底と派生の関係性もガチガチに固めるから、根元になる基底がクソ設計だとどうしようもない。
702 名前:デフォルトの名無しさん [2024/01/19(金) 22:20:13.70 ID:XrKZZkrv.net] >>680 5chで勝手にクソ仕様認定してるクソレスを気にする人はいないw
703 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 22:21:58.98 ID:sTJV5iPD.net] 顧客に設計なんか分からないから突き進むだろ
704 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 22:22:17.78 ID:EWU8L+d2.net] >>681 その点ではRustのtraitが最も良いね Rustのtraitでのデフォルト実装は各型のメンバーや固有メソッドを呼び出せないので実装継承の問題が起きない そのtrait(とそのtrait制約)のメソッドしか呼び出せないから移譲と合成の形になる
705 名前:デフォルトの名無しさん [2024/01/19(金) 22:54:39.62 ID:2Txscu7W.net] >>685 こういう感じで言語によって前提が違う場合があるから抽象的な議論の有効性はかなり微妙
706 名前:デフォルトの名無しさん [2024/01/19(金) 23:13:57.01 ID:k/iqMx14.net] >>685 はい残念 Traitのデフォルト実装も実装継承だからクラス継承のデメリットの大半を”継承”してる メリットとデメリットを理解して使い分けられるようにならないうちは結局のところ何使っても同じ
707 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 23:19:40.83 ID:EWU8L+d2.net] >>687 いいえ 説明したようにRustのtraitに実装継承はありません
708 名前:デフォルトの名無しさん [2024/01/19(金) 23:28:42.74 ID:2Txscu7W.net] 何で堂々と嘘つく? 嘘言った人謝ってください
709 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 23:32:10.71 ID:EWU8L+d2.net] >>687 はコードを書いたことがないのか あるいは意図的に嘘ついているのか
710 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 23:44:00.48 ID:jOoBVxG+.net] インターフェースは継承と違ってインターフェースもとのプロパティをオーバーロードして定義し直すから、継承のわけわからん隠蔽されてないプロパティでごっちゃごちゃにならないのがいい(java民)
711 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 02:15:01.44 ID:pJVjc8l1.net] オブシコくんどこいったん? インターフェイスは人間が理解しやすくするためのものだと力説しなよ
712 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 02:28:42.63 ID:9SMgv4xr.net] 疑似マルチスレッド君も反応ないんやけど、こないならQiita更新してくれよー
713 名前:デフォルトの名無しさん [2024/01/20(土) 03:07:14.53 ID:ppE6WkEJ.net] >>685 >>687 これはデフォルト実装が同じtrait内メソッドと結合することまで実装継承と言うか話なんじゃないかな 実装継承の定義をtraitに拡張する時に生じた無理が意味の拡散を産んで無意味な争いを招いただけというかなんというか
714 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 03:09:43.76 ID:ppE6WkEJ.net] 書き途中で「書き込む」ボタンを押しちゃった。てへ >>685 >>687 これはデフォルト実装が同じtrait内のメソッドと結合することまで実装継承と言うかという話なんじゃないか 実装継承の定義をtraitへ無理やり拡張する時に生じた意味の拡散ですれ違ってるだけに見える
715 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 05:41:23.80 ID:OqC8H1ED.net] >>694 そもそもはある具体型A(もしくはクラスA以下同様)の実装が別の具体型Bの実装として継承されることを指すよね 一方でRustのトレイトのデフォルト実装では具体型の実装は全く出て来なくて具体型とは切り離されているよね したがってある具体型の実装が別の具体型の実装として継承されることは起きないため明確かな
716 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 09:43:00.30 ID:tKcafxZR.net] 継承用の基底クラスを提供するのはライブラリやフレームワークで、フロント屋はその提供された基底クラスを継承して使う フロント屋は用意された基底クラスを使う以外はインターフェースやシールドクラスで継承もどきをやるだけで事足りてる
717 名前:デフォルトの名無しさん [2024/01/20(土) 10:27:27.05 ID:mMSNo4e1.net] staticおじさんが結局正しかったね。
718 名前:デフォルトの名無しさん [2024/01/20(土) 10:38:22.56 ID:WbtYcj4O.net] うん、知らんけど
719 名前:デフォルトの名無しさん [2024/01/20(土) 11:13:01.53 ID:ppE6WkEJ.net] >>696 いま思い出したことなんだけど。具体型の継承はできないと思うけど、traitをtraitに実装するということが出来る traitAにデフォルト実装を書いて、traitBに実装すると、traitBを実装した型はtraitAのデフォルト実装を引き継ぐ
720 名前:デフォルトの名無しさん [2024/01/20(土) 11:29:56.55 ID:ppE6WkEJ.net] trait TraitA { fn method_a(&self); } trait TraitB { fn method_b(&self) { println!("Method B called"); } } // TraitBをTraitAを実装するすべての型に対して実装する impl<T: TraitA> TraitB for T {} struct MyStruct; // MyStructにTraitAを実装する impl TraitA for MyStruct { fn method_a(&self) { println!("Method A called"); } } fn main() { let my_struct = MyStruct; my_struct.method_a(); // TraitAのメソッド my_struct.method_b(); // TraitBのメソッド(TraitAを実装するため自動的に利用可能) }
721 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 11:37:18.66 ID:ppE6WkEJ.net] Rustに多重継承は存在しないという場合、意味的にはフィールドを継承しないことと、 スーパートレイトを使用すれば、トレイトのデフォルト実装を別のトレイトに暗黙では引き継がないことを指すんじゃないかな かな、というのは、まあここら辺は人によって受け取り方が違うから議論しても仕方のないことなんだけど
722 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 12:00:42.41 ID:+uoYRouQ.net] >>700 >>701 それは実装継承ではないよ なぜならtraitは具体型ではなく、さらにRustの場合はデフォルト実装から具体型の固有フィールド(メンバ変数)や固有メソッドに一切アクセスができない つまり実装継承における問題が発生しない
723 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 12:26:39.60 ID:pJVjc8l1.net] 実装継承ではないのか、実装継承における問題が発生しないだけなのか、どっちなんだい?
724 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 12:38:21.50 ID:+uoYRouQ.net] >>704 両方 まず実装継承とは具体型の実装が別の具体型に継承されることだから該当しない 次に>>701 が例示している件に対して >// TraitBをTraitAを実装するすべての型に対して実装する >impl<T: TraitA> TraitB for T {} これは実装継承ではないだけでなく、類似しているように見えても、実装継承の問題と同じことは発生しない
725 名前:デフォルトの名無しさん [2024/01/20(土) 12:39:32.26 ID:BTn7foKi.net] 実装継承ができないと不便じゃない? リソース管理を一元化したくなったりとかしないの?
726 名前:デフォルトの名無しさん [2024/01/20(土) 12:40:39.50 ID:BTn7foKi.net] Rustにも実装継承はあるんじゃないかな
727 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 12:53:48.29 ID:UT8XEnd7.net] >>706 Rustでは異なる型の間でコードを共有一元化するためにトレイト制約を使ってジェネリックにコードを書ける そのコードは特定の型に対して一切書かれていないため実装継承とならないだけでなく実装継承と類似の問題も発生しない >>707 Rustに実装継承はない
728 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 12:58:32.97 ID:S3QqAIL4.net] ジェネリックで書いてコンパイラに整合性を取らせる うむ、完璧だ
729 名前:デフォルトの名無しさん [2024/01/20(土) 13:04:04.37 ID:BTn7foKi.net] Structの合成があるじゃないか 実装継承の問題が発生しないのはわかったけど 実装継承の便利さが失われてたら元も子もないじゃん リソース管理を一元化したくなったりとかしないの?
730 名前:デフォルトの名無しさん [2024/01/20(土) 13:08:56.68 ID:BTn7foKi.net] オブシコは機能とデータを一緒に管理することだけど それができないRustは不便なのでRustは滅びます
731 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 13:16:14.55 ID:UT8XEnd7.net] >>709 Rustはそのためにトレイト制約がありコンパイラは整合性を必ず確認できる >>710 Rustではトレイト制約を伴うジェネリックコードにより異なる型間でも安全にコードを共有化できる >>711 Rustでも型(データ)に対してメソッド(機能)を実装できる
732 名前:デフォルトの名無しさん [2024/01/20(土) 13:18:48.25 ID:BTn7foKi.net] >>712 データにメソッドを生やして継承もできるん?
733 名前:デフォルトの名無しさん [2024/01/20(土) 13:20:04.95 ID:BTn7foKi.net] オブシコにおいて実装の継承は正義です Rustに正義はあるのかを問うています
734 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 13:34:19.14 ID:UT8XEnd7.net] >>713 やりたいことの本質は異なる型の間でのコードの共有一元化でしょう Rustではトレイト制約を用いて特定の型に依存しない形でコードの共有一元化ができます >>714 オブジェクト指向に実装の継承は必要ありません
735 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 13:35:44.30 ID:JKkFvgES.net] 誰かさ、適当な文法で単一のC言語ソースファイルを出力するトランスレータ作ってくんない? 仮想関数テーブルとかRTTIとかそれならなんとかなるだろ?
736 名前:デフォルトの名無しさん [2024/01/20(土) 13:36:27.03 ID:BTn7foKi.net] じゃあオブシコはオワコンかも知れませんね
737 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 13:44:22.78 ID:tKcafxZR.net] さすがRust有識者だ😳 トレイトへの理解度が高い
738 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 14:51:20.08 ID:pJVjc8l1.net] 継承はすべてのオブジェクトに共通のデータと手続きを強制するからな 途中で一部しか共通してないオブジェクトの存在が判明したら、 クラスツリーをがっつり再設計しないといけなくなる こんなものをオブシコに入れちゃったやつの罪は深い
739 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 15:05:28.23 ID:UvH2GUkc.net] >機能とデータを一緒に カリー化された関数を部分適用すればいい じゃあ何故カリー化と部分適用はオワコンではないのか 無意味だからだ 意味を見出せないから終わったという判断もできない
740 名前:デフォルトの名無しさん [2024/01/20(土) 15:06:09.94 ID:ppE6WkEJ.net] 能力の高いプログラマーしかプロジェクトに参加しないこと前提ならば継承の副作用は目立たないけど Javaのような大規模開発向けの言語に継承を入れたのは間違ってたなあ Javaの仕様を考えた時は、親クラスは能力の高いエンジニアが書くという前提だったんだろうね
741 名前:デフォルトの名無しさん [2024/01/20(土) 15:25:38.27 ID:WbtYcj4O.net] >>719 再設計は不要 はい光速の論破
742 名前:デフォルトの名無しさん [2024/01/20(土) 15:56:26.55 ID:BTn7foKi.net] 大規模開発向けにはRustを採用すべきだ
743 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 16:02:56.24 ID:JKkFvgES.net] アスペクト指向との統一解ってことなのかな ろくに勉強してないんだけど
744 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 16:28:12.97 ID:JKkFvgES.net] もともとアスペクト指向の提唱者たちが言い始めたことだからね どんなに上手くクラスツリーを設計しても何らかのコードを横断的に埋め込みたくなるニーズがなくならないって
745 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 17:05:53.11 ID:pJVjc8l1.net] >>722 つまんねーのに無理すんな
746 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 23:20:19.94 ID:ppE6WkEJ.net] Rustは学習コストが重すぎるからねえ スタックフレームとか、ライフタイムとか、そこら辺の知識は普通のPGには余計だろう Rustのスクリプト言語版が出たら流行るかなー
747 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 00:07:59.00 ID:bASnz3O7.net] RustじゃなくてもGoくらいでちょうどいい
748 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 08:12:46.78 ID:yW5L0zfB.net] >>723 お前Rustのことわかってない上にプログラムできないじゃん つかとっとと埋めてしまえよこんなスレタイだけでキチガイがわくスレ 真面目に語りたい人ならマ板でやる
749 名前:デフォルトの名無しさん [2024/01/21(日) 11:29:38.85 ID:oaoSrz7+.net] >>729 俺のことは関係ない、俺は世の中のことを言ってる そんなことも読み取れない認知能力チンパンジーの分際で 俺様に文句言うなんて100年早えわ お前はRustだけ頑張ってろアホンダラ 俺は日本の未来を考えとく
750 名前:デフォルトの名無しさん [2024/01/21(日) 11:31:12.83 ID:oaoSrz7+.net] Rustの未来も俺が決める Rustはもっとオブシコ頑張ったが良い Rustは学習コストが高すぎると言われている これはオブシコで解決できるはずだ
751 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 13:06:59.82 ID:JVSLhHIM.net] Rustってそんなに学習コストが高いか? C++11以降のがトチ狂ってると思うんだけど
752 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 13:40:55.67 ID:FqjwRk5K.net] スマポより生ポのが気持ちいい だからわたしは生ポインタ
753 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 15:09:59.21 ID:LGH4j5ie.net] >>705 >まず実装継承とは具体型の実装が別の具体型に継承されることだから該当しない これは間違い 実装継承とは文字通り「実装」が「継承」されること <== この意味を理解できるかどうかが重要 実装継承における問題というのはこれも文字通り「実装」が「継承」されることによって起きる 継承元が具体型扱いかどうかは関係ない >>704 >実装継承ではないのか、実装継承における問題が発生しないだけなのか、どっちなんだい? Rustのトレイトデフォルト実装は実装継承の一種でもあるし、実装継承ににおける問題も発生する C++等一部の言語で発生する実装継承における問題の一つが発生しにくいようになってるだけ
754 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 21:44:12.50 ID:r/H1GIpX.net] >>734 Rustに実装継承はない Rustのトレイトのデフォルト実装では、いわゆるメンバ変数やメンバ関数にアクセスできない したがってRustでは実装継承と同様の問題は発生しない
755 名前:デフォルトの名無しさん mailto:sage [2024/01/22(月) 00:42:25.64 ID:CM1Sn+EA.net] トレイトはインターフェースとも継承とも違う新しい考え そこを誤解してはならない
756 名前:デフォルトの名無しさん mailto:sage [2024/01/22(月) 02:11:51.31 ID:d/h6/f8z.net] >>735 実装は継承してるけれども実装継承ではない? 「募ってはいるが募集はしていない」より酷くね?
757 名前:デフォルトの名無しさん mailto:sage [2024/01/22(月) 02:24:04.21 ID:WDLNMI9J.net] >>737 Rustに実装継承はない Rustのトレイトのデフォルト実装からは、いわゆるメンバ変数やメンバ関数にアクセスできない メンバ変数やメンバ関数にアクセスできる部分はトレイトのデフォルト実装から分離されている その部分はトレイトを実装するときに各型で個別に実装する したがってRustでは実装継承はなく問題も発生しない
758 名前:デフォルトの名無しさん mailto:sage [2024/01/22(月) 12:41:11.25 ID:SpT9Xs4x.net] 実装継承は派生側に開放する部分と基底側で閉鎖する部分の管理が難しいから、やはり「早すぎる最適化」になりがち。 開放/閉鎖の原則を守るためには基底側と派生側のインターフェイスとプロトコルを厳密に管理する必要があるけど、そこまでサポートしているオブジェクト指向言語てあったっけ?
759 名前:デフォルトの名無しさん mailto:sage [2024/01/22(月) 12:43:36.23 ID:SpT9Xs4x.net] >>736 トレイトてこのこと? まずは認識合わせをしないとな。 ja.m.wikipedia.org/wiki/%E3%83%88%E3%83%AC%E3%82%A4%E3%83%88
760 名前:デフォルトの名無しさん [2024/01/22(月) 15:21:25.58 ID:eIK4O4RB.net] 最新鋭のRust言語と同等の最小コンパイル単位でよければもっとクリーンなオブジェクト指向言語があり得たって話で、 残念なことに30年前のハードウェアでやんなきゃいけなかった 仮想関数の方がデフォであるようなC++ 文字列じゃなくて関数ポインタの配列のインデックスであるようなObjective-C ガベコレの無いJava こだわる人は今からでも作ればいい ソースを一気に引数に取って単一のC言語のソースファイルを出力するトランスレータを作ればいい
761 名前:デフォルトの名無しさん [2024/01/23(火) 22:17:38.84 ID:3AfREKFo.net] オブシコプログラムの難しいところってオブジェクト同士の連携が オブジェクトに書かれるところだと思うんだよ 全体のフローがよくわからなくなる オブジェクトには自律的に他のオブジェクトと連携することをやらなくさせて コーディネートする処理を関数型や手続き型で書くのがいんじゃないかね 昔はオブジェクトが知性を持ってるかのように書くのが良いオブシコだと言われてたけど スパゲティ製造工場にしかならんかった
762 名前:デフォルトの名無しさん mailto:sage [2024/01/23(火) 22:19:52.82 ID:lLzKFCPg.net] ObjectiveCの[]←こんな奴でメッセージ送ると幸せになれるよ
763 名前:デフォルトの名無しさん [2024/01/23(火) 22:19:59.28 ID:3AfREKFo.net] フロー制御をオブシコでやりだしたら危険信号、これがぼくの経験から導き出された結論
764 名前:デフォルトの名無しさん [2024/01/23(火) 22:23:03.86 ID:PPNQFWhj.net] おしりがおまんこになっちゃうのがオブジェクト指向
765 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 00:11:12.99 ID:X/KtyNlm.net] >>738 基本的な実装継承の問題を理解してないから話噛み合わないね メンバ変数・メンバ関数の話はFragile Base Class Problem(FBCP)について言及してるつもりなんだろうけど メンバ変数やメンバ関数にアクセスできるかどうかはFBCPの根本的な発生条件とは関係ないよ 継承元のメソッド実装がオーバーライドされた継承先のメソッドを呼び出せるならFBCPは発生する 当たり前だけどFBCPは実装継承の問題のうちの一つであってすべてではないからね ちなみにトレイトのデフォルト実装も別のトレイトのメソッド経由でメンバ変数やメンバ関数にアクセスできる クラス継承でベースクラスのメソッドがオーバーライドされたメソッド経由でメンバ変数やメンバ関数にアクセスするのと同じ
766 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 00:14:41.63 ID:1XOdKji/.net] >>744 イベントループをブラックボックス化したのは 「次のイベント」の種類ごとに分岐する際にifならbool値、switchなら整数のようなものしか 使えない言語の問題をライブラリでなんとかしようとした結果
767 名前:セ [] [ここ壊れてます]
768 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 00:16:21.62 ID:X/KtyNlm.net] ついでに言っておくとRustのDeref/DerefMutも実装継承の一種なんだけどこっちはFBCPは発生しない
769 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 02:14:43.30 ID:fgSFyL+S.net] >>746 Rustには基底クラスが存在しないため FBCPも含めて実装継承に関する問題は発生しないよ
770 名前:デフォルトの名無しさん [2024/01/24(水) 12:30:29.92 ID:JqKAHMdE.net] 影響力ゼロの人がどれだけオワコンオワコン繰り返しても全く影響無い。
771 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 13:30:09.74 ID:1XOdKji/.net] それなら人の力ではなく天変地異の影響を主に想定したほうがいい
772 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 16:22:26.10 ID:XaeHtqc/.net] 妻がダイエットのために乗馬を始めたんだけど一ヶ月で10キロ痩せたよ 馬がね
773 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 12:58:37.96 ID:mbfTQf92.net] has a関係は被害者と加害者が別人で、責任の連鎖がある 鎖を切って悪い影響を0にする変更はしやすい is aは影響力を不変にする 責任の連鎖をなくして自分自身の責任とする
774 名前:デフォルトの名無しさん [2024/01/27(土) 19:38:08.87 ID:w8m8MtP7.net] 241 伝説の名無しさん sage 2020/10/13(火) 15:00:15.08 「胸がドキドキする」というのはいわば生理現象であり、抑えることはほぼ不可能だ。 月末のクレジットカードの支払額に、想像以上に可愛かったデリヘル嬢のおマンコにと胸を 突かれるのは悪いことではない。 翻って「チンポがシコシコする」というのは能動的な衝動であり、極めて不埒な責任転嫁である。 シコシコはチンポが勝手にやったことであり、決してチンポの持ち主の意向ではないという、どこぞの 政治家の「秘書が勝手にやったこと」のような言い逃れがしばしば聞かれ、あまつさえそれがまかり 通ってきたことは周知の事実である。 チンポからシコシコを奪取し、各人の掌に戻る日は果たしてやってくるのだろうか……。
775 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 22:55:15.08 ID:QdyqwSfC.net] 責任という概念自体に違和感を表明する者がよくいるが 馬クラスと動物クラスには責任の擦り合いや利害対立がなさそうなところが共感されるんじゃないか
776 名前:デフォルトの名無しさん [2024/01/27(土) 22:55:50.75 ID:BuZgAgXz.net] 令和になっても継承批判は聞きたくないね 手垢ついてるとかいうレベルじゃないぞ OOPには価値がない OOPのメリットとやらは無意味だ というふうな大きい批判が聞きたい
777 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 22:56:54.43 ID:BuZgAgXz.net] あ、>>756 は別に特定のレスにむけたレスじゃなくて ざっくりとした意見ね
778 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 23:08:28.46 ID:9xE1RMNT.net] オブジェクト指向は継承という一つの要素が終わっただけだしなあ 未だ現役すぎる
779 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 00:58:58.58 ID:stV8Z8Wq.net] 何らかの違和感の解消がオブジェクト指向のメリットだとするなら 元から違和感などなかった奴にとって無価値である
780 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 03:30:55.01 ID:z8UBzo+x.net] 5chになにを期待してんだかな
781 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 14:48:42.54 ID:EVWA08mD.net] >>756 概念的にはインターフェイスとコンポジションに発展的解消したから、オブジェクト指向はオワコンだろ。
782 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 14:56:56.93 ID:z8UBzo+x.net] インターフェイスもコンポジションも人間が簡易に理解するためのものだろ なめてんのか
783 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 15:18:10.03 ID:gBYyPSdU.net] >>761 それオブジェクトの継承が別の概念に変わっただけでカプセル化とポリモーフィズムは健在じゃん… もっとおもしろいこと言ってくれ…
784 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 16:44:30.08 ID:nAHL+G+L.net] オブジェクト指向プログラミングのコアコンセプトは「データと操作をまとめて一つの型として扱うこと」これだけ オブジェクト指向プログラミングではなくオブジェクト指向言語といった場合は ブーチの定義が普及したせいでカプセル化、ポリモーフィズム(基本はサブタイプポリモーフィズム)、継承の3点セットを基準にすることが多いが 言語機能としての継承はオブジェクト指向プログラミングに必須のものではないし ポリモーフィズムもオブジェクト指向言語特有のものではないので両方ともコアコンセプトではない
785 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 17:24:51.96 ID:EVWA08mD.net] >>763 オブジェクトのカプセル化はインターフェイスとデータを密結合するけど、インターフェイスによるカプセル化はデータと密結合しない。 オブジェクトのポリモーフィズムはオブジェクト同士が(継承関係とかで)密結合するけど、インターフェイスは継承関係とかの密接な関係を結ぶこと無しに(理想的には)ダックタイピングで多態できる。 まあ、そこまでのダックタイピングをサポートするインターフェイスとか知らんけど。 c++のコンセプトがそのまま型になったらいいんだけどなぁ。
786 名前:デフォルトの名無しさん [2024/01/28(日) 17:54:19.13 ID:uVCrPT47.net] オブジェクトという言葉と同じでカプセル化という言葉は人によって意味が違うので困る
787 名前:デフォルトの名無しさん [2024/01/28(日) 19:52:00.86 ID:cMZBK/kO.net] 70 名無しヒーリング 2021/04/26(月) 09:45:57.57 ID:jZDy/LpM 先生、実際にシコシコするのは
788 名前:`ンポでなく俺の右手だと思います。 ✖チンポがシコシコする ○ 俺の右手がチンポをシコシコする 71 名無しヒーリング 2021/04/26(月) 09:56:38.18 ID:jZDy/LpM あと、「胸がドキドキする」と「チンポをシコシコする」は比較対象になりません。 「胸がドキドキする」は「チンポがヒリヒリする」のように状態・感覚を擬音語で現しているのであって、 「チンポをシコシコする」は「胸をモミモミする」の様に人間や動物が対象に対して何かを行う行為の表現だと思います。 [] [ここ壊れてます]
789 名前:デフォルトの名無しさん mailto:sage [2024/01/29(月) 09:05:57.54 ID:MhZcn14S.net] くだらない比喩でいつまやってんだ?
790 名前:デフォルトの名無しさん [2024/01/29(月) 15:05:39.33 ID:oNy2vKqL.net] >>767 だからシコシコは男性器を擦る擬音で勃起のことではない 君は女性かな? それともシコシコが勃起を表す地方が日本のどこかにあるのか どっちにしろいくらがんばってもメジャーなコピペになれないのは大多数の人に表現がピンとこないのが原因だと思うよ
791 名前:デフォルトの名無しさん [2024/02/01(木) 21:11:10.96 ID:RS6y7MOu.net] PHPでアブストラクトやりまくってる これやってればいい ここまで来るのに2年かかったわ
792 名前:デフォルトの名無しさん mailto:sage [2024/02/04(日) 19:38:06.66 ID:/UMw8Y/Y.net] 再利用しようにもパーツに分解できない大きなプログラムのスパゲッティ化を防ぐために ひと塊のルーチンを“関数”として入り口出口を決めましょうがカリー化まで続く一方の流れで その塊をどうやって集団として機能に固めたり制御するのかを考えるのがオブジェクト指向 そういう上位レベルでの制御やメンテナンスの汎用的な考えから出てきた概念を 小さいレベルでのプログラムAの脚を車輪に付け替えるにはとか プログラムAの塊を継承してプログラムBにするのが“オブジェクト指向”なんだよ!って 鬼子でしかないC++最初に来ちゃったせいで現代に至るまで あれがオブジェクト指向だと思い込んでるおじいちゃんがですね…
793 名前:デフォルトの名無しさん [2024/02/04(日) 20:30:59.20 ID:owhn6I10.net] おじいちゃん構文丸出しでおじいちゃん批判ww しかも中身が間違いだらけとかwww
794 名前:デフォルトの名無しさん mailto:sage [2024/02/04(日) 21:58:45.40 ID:nqsMiwRK.net] インターフェース楽しいな~ 継承無しでコーディングできる~
795 名前:デフォルトの名無しさん mailto:sage [2024/02/04(日) 23:05:40.25 ID:iyTJzl7x.net] 塊って言いたいだけ
796 名前:デフォルトの名無しさん [2024/02/04(日) 23:11:46.13 ID:SuDI4pWX.net] >ひと塊のルーチンを“関数”として入り口出口を決めましょう これ現役引退してるような世代の方ですよね?
797 名前:デフォルトの名無しさん mailto:sage [2024/02/05(月) 10:19:20.77 ID:z455Qu8w.net] 役割で固めるってのを忘れてる
798 名前:デフォルトの名無しさん mailto:sage [2024/02/05(月) 11:38:56.86 ID:iuJxPrpx.net] 横断的関心事の意味が分からんと常々思っていたけど 役割で固めるのをやめるという意味なのかね 固めようと思ったことがない奴にとっては無意味なことだ
799 名前:デフォルトの名無しさん mailto:sage [2024/02/05(月) 12:31:22.93 ID:29NJAnme.net] 横断的にシコシコする役割の塊がオブシコである
800 名前:デフォルトの名無しさん mailto:sage [2024/02/05(月) 17:30:42.79 ID:UM+1T8m6.net] オブジェクト指向はモジュラリティを高めるために考え出されたものだが「どの抽象化階層のモジュラリティを高めるものなのか」という大前提を理解していないと何を見てもオブジェクト指向だと感じるようになる
801 名前:デフォルトの名無しさん mailto:sage [2024/02/05(月) 23:45:04.18 ID:29NJAnme.net] そりゃオブシコするぐらいだからモジャラリティは高いだろ
802 名前:デフォルトの名無しさん [2024/02/07(水) 14:59:43.29 ID:LJRNIYaK.net] 1. 簡単な言葉を使う 頭が良い人は、複雑なことや専門知識も「簡単な言葉」で説明することができます。 この能力は、深い理解があるからできること。相手が理解しやすいように情報を整理して伝えることは思いやりでもあります。 https://news.yahoo.co.jp/expert/articles/9bb7a62121796847a941127e3d5040008fedd464 クリントン大統領にどんな強大な権限が有っても、自らのチンポがしこしこしてしまうのは止められない! class チンポ extends クリントン{ super.不適切な関係; } クリントンの再定義、クリントンの拡張された人格ということだ!
803 名前:デフォルトの名無しさん mailto:sage [2024/02/13(火) 12:31:45.94 ID:1UgkqCq+.net] 世界一オブジェクト指向に忠実なメインクラスできたで class Main(): def do(): pass m=Main() m.do()
804 名前:デフォルトの名無しさん mailto:sage [2024/02/13(火) 15:11:48.80 ID:g/oXQBQp.net] オブジェクト指向はオワコン 継承はよくない文化
805 名前:デフォルトの名無しさん [2024/02/13(火) 17:38:57.37 ID:TeIoV+iR.net] Template Methodパターン便利ですよ
806 名前:デフォルトの名無しさん mailto:sage [2024/02/13(火) 18:33:53.66 ID:vbRTXFPD.net] has a関係は抽象度の低いクラスを参照することはマナー違反ではない is a関係は自分よりも抽象度低いクラスを継承したらマナー違反だよな
807 名前:デフォルトの名無しさん [2024/02/13(火) 19:00:08.50 ID:mLNp/E4P.net] 継承を理解してれば問題無い 理解していないけどら問題無く使える道具は存在しない つまり須く低レベルということ
808 名前:デフォルトの名無しさん mailto:sage [2024/02/13(火) 19:17:02.49 ID:022XTqy3.net] >>786 俺は使えるから問題ないんだが部下や上司に無能がいると困る 全ての言語で機能ごと消去するべき
809 名前:デフォルトの名無しさん mailto:sage [2024/02/13(火) 19:19:14.84 ID:cHpLMfgk.net] C/C++でいいところを無能のためにRustでわざわざメモリ管理を強制的に縛るのと一緒やね
810 名前:デフォルトの名無しさん mailto:sage [2024/02/13(火) 19:54:20.90 ID:XGO25OBO.net] オブジェクト指向って>>1 みたいな頭の悪い人でもプログラミングできるようにするためにあるんだよ 難しいのは>>1 みたいな馬鹿が>>1 みたいな馬鹿のためにオブジェクト指向に則ってプログラミングする行為であり、>>1 みたいな馬鹿がオブジェクト指向で設計されたコードを扱うのは難しくない オブジェクト指向がオワコンな訳が無い
811 名前:デフォルトの名無しさん [2024/02/13(火) 20:27:17.94 ID:mLNp/E4P.net] >>787 無能がいる限り何の解決にもなってない リスクが下がったと勘違いしてるだけ
812 名前:デフォルトの名無しさん mailto:sage [2024/02/13(火) 20:32:56.11 ID:VRA/nuAd.net] >>788 Rustを使えない無能がC/C++を使って穴を生み出し続けている現実を見ようぜ
813 名前:デフォルトの名無しさん [2024/02/13(火) 21:20:27.36 ID:mLNp/E4P.net] >>791 その無能がrust使ったところでろくなものは生み出せない 包丁で怪我する人がいるから包丁は悪、と言ってるのと同じ。 別に主張するのは自由だがそれで包丁が消滅することはない
814 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 03:16:18.02 ID:7f34VUqx.net] 頭の悪い人がプログラミングできるためってたまに見るけど疑わしいわ 頭の悪い人がちゃんと設計して、多態性を活用してるのを見たことがない ただメモリの自動解放とかライブラリに頼ってるだけで、 そういう利便性はオブジェクト指向とあんまり関係なくね?
815 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 06:53:24.91 ID:1rro2+lE.net] 知らないのか?今は転職ブームのせいで文系出身の頭悪いプログラマが大量発生してる そいつらのせいで言語が変わらなくては生けない時代になった
816 名前:デフォルトの名無しさん [2024/02/14(水) 08:07:28.98 ID:M2AyybwD.net] 言語が変わっても頭悪かったらどうにもならないよw
817 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 08:40:34.28 ID:y6T/tEC4.net] >>795 多少はマシになるやろ
818 名前:デフォルトの名無しさん [2024/02/14(水) 10:07:41.88 ID:M2AyybwD.net] >>796 無能じゃコンパイル通せないから動かせない つまり逆に悪くなってる
819 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 10:15:13.33 ID:Z6/Yikm0.net] >>797 無能が進捗管理で炙り出されるから全然マシ
820 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 10:46:51.26 ID:4THDuETy.net] >>797 本番段階でバグが出るよりマシ
821 名前:デフォルトの名無しさん [2024/02/14(水) 11:08:35.63 ID:t8DY/Tt9.net] コンパイル通すのが難しいと無能はコンパイル通ったからOKという感覚になるので一長一短 何事も良い面悪い面があるのに無能は片面だけしか見ない
822 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 11:22:35.02 ID:1xW2DpZI.net] >>800 最低限コンパイラの通れば多少見れるコードになってるので、有能がコードをレビューしやすい
823 名前:デフォルトの名無しさん [2024/02/14(水) 12:27:44.94 ID:M2AyybwD.net] >>798 それは言語の役割じゃない 全然マシでもなんでもなくて草
824 名前:デフォルトの名無しさん [2024/02/14(水) 12:31:09.06 ID:M2AyybwD.net] >>799 どっちでも一緒 納品できないのに「本番でバグが出るよりは良い」と言い張るのはアタオカ
825 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 13:02:59.82 ID:qQWVhIbb.net] 現実は納期というものがあるから効率重視でCC++使って適当に作れたほうがありがたいんだよなあ バグなんてある程度は知らんぷりしていい わざわざRustを使って完璧を求めるのは無駄
826 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 13:03:09.87 ID:OE64F1T2.net] 長所も短所も両方知っている知識人を理想とするのは 商売とはあまり関係ない理想だ 商売を重視しないのであれば長所も短所もわりとどうでもいい
827 名前:デフォルトの名無しさん [2024/02/14(水) 13:18:52.38 ID:U1pcKTg+.net] >>801 コンパイルを通しやすいかどうかとコードが見やすくなるかどうかに正の相関関係は無い 加えてコンパイルを通しにくくなればなるほどコンパイルを通すための手助けが当然必要になる 「身の丈に合った言語を」 by 萩豚
828 名前:デフォルトの名無しさん [2024/02/14(水) 13:20:42.45 ID:eD+V22zq.net] Rust習得できない馬鹿が書いたC++コードの保守、やりたくなさすぎる
829 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 13:57:57.05 ID:Z6/Yikm0.net] >>803 本番でバグとか酷い炎上案件。 クライアントにとっては悪夢ですなぁ。 納期遅れのほうがまだ見える分マシ。
830 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 13:59:03.81 ID:AmCG1+WQ.net] >>806 コンパイルできる人材を確保できるかどうかは中途採用ガチャしまくればいける コンパイルできねえやつは捨てる、それだけだ
831 名前:デフォルトの名無しさん [2024/02/14(水) 14:56:27.36 ID:8lIAACZZ.net] >>807 だれがあなたを頼るの?
832 名前:デフォルトの名無しさん [2024/02/14(水) 15:03:18.56 ID:8lIAACZZ.net] >>808 都合良く「納品はできる」妄想を前提として話を進められるならどうとでもなる 結局無能でもどうにかなるなんて全く現実的ではない、rust信者の詐欺的妄言なのでどっちでも一緒
833 名前:デフォルトの名無しさん [2024/02/14(水) 16:53:53.91 ID:ry67cZRi.net] >>809 技術者をまともに育成する術も評価する術も持たずガチャするしか脳の無い無能企業には有能なやつほど寄り付かない そうなると渋いと評判の某ガチャUR排出確率並み(0.3%)になるから100回回しても有能1人雇える確率は3割にも満たない 運良く雇えてたとしても数年以内に転職して抜ける確率は逆に8割以上 身の丈に合わない選択は破滅への近道
834 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 17:49:37.27 ID:kwXXlBt4.net] どこまでオブジェクト設計するべきかが良くわからん 例えばトランプゲームを作ろ
835 名前:うとした時のカードについて 数字込みの絵柄と表示用の画像くらいしか必要ないと思うけど わざわざCardクラスCardDeckクラスとかを用意する必要があるの?とか [] [ここ壊れてます]
836 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 18:11:12.61 ID:J37aOx7P.net] Deckが内包するデータはCardの配列のみだとしても シャッフルやドローなんかの操作を配列として外から行うより Deckとして備えてる方がシンプルに保てそう
837 名前:デフォルトの名無しさん [2024/02/14(水) 18:32:43.17 ID:xYPMwtK4.net] >>813 クラス以外のユーザー定義型がないならオブジェクト指向よりの作り方でなくてもCardクラスやCardDeckクラスくらいは作るんじゃない? それらにメソッドを生やしてゲームルールを実装していくのか それともそれらをデータとして扱う関数を別のところに書くことでゲームルールを実装していくのか それぞれ良い点悪い点があるので一度両方で作ってみるといいと思う
838 名前:デフォルトの名無しさん [2024/02/14(水) 18:36:07.49 ID:xYPMwtK4.net] >>814 DeckモジュールとかGameモジュールにドローやシャッフルなどのDeckを操作する処理をまとめておくってのでも別に不都合ないよね?
839 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 18:44:53.20 ID:OE64F1T2.net] enumがオブジェクトではない言語では迷うが すべてがオブジェクトだったらenum Cardでいいのでは
840 名前:デフォルトの名無しさん mailto:sage [2024/02/14(水) 19:19:39.63 ID:g/tbjQoZ.net] スートが切り札(トランプ)に変わるようなゲームでは 判定で「こいつはいまトランプだから」で例外処理するのか カード側で「いまトランプです」したらいいのかの設計の話だわな
841 名前:デフォルトの名無しさん mailto:sage [2024/02/15(木) 12:39:33.69 ID:q4O0G3u8.net] >>793 >ライブラリに頼ってるだけで そのライブラリに頼ってるだけを実現できるのがオブジェクト指向の功績だと思ってる 昔のWin32APIみたいなライブラリとインスタンス生成してからインスタンス.メソッド形式で利用するライブラリと比較したらライブラリの扱いに対するお手軽&簡単度合いがぜんぜん違う
842 名前:デフォルトの名無しさん mailto:sage [2024/02/15(木) 19:49:13.54 ID:b088ZsVf.net] いやwin32apiだろうがapiそのものがすでに「オブジェクト指向」だから 手軽とか簡単とかはオブジェクト指向とっくに通り越してそのように改良された結果ってだけ このスレ見てると「オブジェクト指向」が特別なナニカだと思ってる人も多くてアランケイも困惑するよw
843 名前:デフォルトの名無しさん [2024/02/15(木) 20:05:57.93 ID:Zy70aZMD.net] 「オブジェクト指向」が特別なナニカじゃないのであれば、「オブジェクト指向プログラミング言語」は「プログラミング言語」でよくなってしまう これまで「オブジェクト指向プログラミング言語」という言葉を使った人間はとんでもないガイジということになる
844 名前:デフォルトの名無しさん [2024/02/15(木) 23:20:24.51 ID:ibzEiIzs.net] 20年前のあれは何だった?どいつもこいつもオブジェクトだーと喚いてたくせに。屑どもが
845 名前:デフォルトの名無しさん [2024/02/16(金) 00:12:23.56 ID:L7DYjGhm.net] ここまでくると糖質っぽいな オブジェクト指向はオワコンと言い続けて何年経過してんだよw
846 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 06:40:28.27 ID:HTdB8AjD.net] オワコンにオワコンと言ってなにが悪い
847 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 08:47:18.11 ID:hfFr1EkU.net] オブシコオhル けど、脳汁が出るのは、なんでもアリなC++なんだよなあ
848 名前:デフォルトの名無しさん [2024/02/16(金) 08:49:55.02 ID:TCjahJiL.net] これこれ オウムみたいな感じ はなから議論をする気が無い オワコンオワコン繰り返して気持ちよくなるだけ
849 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 17:46:12.70 ID:/xV361+6.net] 非論理的=気持ちよくなる 専門用語を回避する現象?
850 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 23:46:53.13 ID:7B7dg9RO.net] 自分がオブジェクト指向で挫折したから あんなの一時の流行りでしかない!って喚いて溜飲を下げようとしてるけど そもそも理解しないで挫折してるから「あんなの」が永久に 90年代のC++の時の“自動車の車輪を付け替える”からアップデートしない
851 名前:デフォルトの名無しさん mailto:sage [2024/02/17(土) 01:14:52.71 ID:sBa/KHO/.net] アップデートという目標は分かったが現時点では違う目標を持つ者にとって ふつうに考えると目標を達成するためには目標を変更しないのが合理的 問題は、どうすれば永久に合理的であり続けるのをやめられるか
852 名前:デフォルトの名無しさん [2024/02/17(土) 11:49:08.21 ID:f/G7Vx68.net] オブシコで挫折してない人なんていません!!
853 名前:デフォルトの名無しさん mailto:sage [2024/02/17(土) 12:25:59.71 ID:hmS5aeTe.net] 俺がいる 中途半端ってぶっちゃけ怖いよね >>826 議論っていうか、使えと言われた言語・ライブラリ(SDK)使うんだからね結局 好き・嫌い、とかって雑談してりゃいいんだよ 俺は、継承を使いこなせるいい漢になりたいぜ
854 名前:デフォルトの名無しさん mailto:sage [2024/02/17(土) 13:09:34.49 ID:SNH81JMI.net] オブジェクト指向だろうがオブジェクト指向言語だろうが語りたいのならマ板でやれ 雑談どころかここで議論とか正気かよ。議論してもプログラム技術の役に立たないくらいわかるよな
855 名前:デフォルトの名無しさん [2024/02/17(土) 13:51:00.19 ID:f/G7Vx68.net] >>831 はっきり言う、お前はオブシコのことを何もわかってない >>832 お前もだ オブシコは挫折してからが始まりだ
856 名前:デフォルトの名無しさん [2024/02/17(土) 13:53:44.82 ID:f/G7Vx68.net] intではなくてMoneyだ Moneyを継承してYenを作れ stringではなくてAddressだ Addressを継承してPrefectureを作れ 本物のオブジェクト指向を経験しろ ぜったい挫折するから
857 名前:デフォルトの名無しさん mailto:sage [2024/02/17(土) 14:31:27.57 ID:JQbQK4DF.net] >intではなくてMoneyだ 当たり前 >Moneyを継承してYenを作れ 意味不明 オブジェクト指向で作るならYenはMoneyの一属性 >stringではなくてAddressだ 当たり前 >Addressを継承してPrefectureを作れ 意味不明 オブジェクト指向だから挫折したのではなく間違ったオブジェクト指向を学ぼうとしたから挫折したんだな
858 名前:デフォルトの名無しさん [2024/02/17(土) 16:18:56.35 ID:f/G7Vx68.net] ↑ オブシコ厨ってこんなシロートばかりなんですよ
859 名前:デフォルトの名無しさん mailto:sage [2024/02/17(土) 17:52:41.44 ID:chUgujl0.net] >>832 ムに置いときゃ、ムに資するネタがまじるけどね 俺は後から来たけど
860 名前:デフォルトの名無しさん mailto:sage [2024/02/17(土) 17:56:31.13 ID:oJgej1EK.net] >>835 MoneyにbaseCurrency問い合わせると“Yen”って返すように作るよなぁオブジェクトなんだから
861 名前:デフォルトの名無しさん mailto:sage [2024/02/17(土) 19:30:44.83 ID:2JOYf9WZ.net] >>832 迷惑だからマに技術ネタ誘導すんな。
862 名前:デフォルトの名無しさん [2024/02/17(土) 23:59:55.91 ID:RsjvkJW8.net] >>824 本当にオワコン化したものは話題にすらならんよ 今どきポケベルはオワコンなんてスレ建てる奴なんていないだろ? つまり、そういうこと
863 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 02:06:18.29 ID:jMiNlzvA.net] ポケベルを話題にした自分自身を否定するより オブジェクト指向にファイティングポーズする方がよっぽどポジティブじゃないか
864 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 06:52:31.86 ID:AGcN1oEW.net] APIやライブラリを一切使わず、自分自身で「処理をしてオブジェクトを返す部分」も作らずにどんなプログラムが作れるんだよ 現代でプログラム書いてるやつは意識しなくても使うしか無い手法じゃないか 使わずにHelloWorldすら書くのは超難しい
865 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 07:05:06.57 ID:BTJ6Zkap.net] システムコールだけでHello Worldやるの無茶大変だった思い出
866 名前:デフォルトの名無しさん [2024/02/18(日) 10:14:36.02 ID:5IBLHZNo.net] API使ってればオブジェクト指向とか頭になんか湧いてるだろ
867 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 10:16:24.04 ID:BTJ6Zkap.net] >>844 そんなこと言われてなくね?
868 名前:デフォルトの名無しさん [2024/02/18(日) 11:06:51.79 ID:18G3CSzu.net] 「APIそのものがオブジェクト指向」だと主張してるやつはいるね>>820
869 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 12:13:41.03 ID:RIbrKfRB.net] とりあえず1000行くらいベタ打ちでプログラム書いて 書いたのをリファクタリングついでにクラス分けして またダーッと書いてって繰り返せばいいよね?
870 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 12:17:44.83 ID:NoFg1fuK.net] >>847 今世紀に出てきた様々なプログラミング言語はほとんどがクラスをサポートしていない クラスは役に立たず害が大きいとの共通認識があるため
871 名前:デフォルトの名無しさん [2024/02/18(日) 13:06:18.47 ID:2M17hFnk.net] >>848 バカの一つ覚え
872 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 14:18:51.57 ID:jMiNlzvA.net] APIは今でも関数とグローバル変数 stdinとかstdoutとか グローバル変数が一番最初にオワコン化し、オブジェクト指向は二番目以降と想定された
873 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 16:50:37.61 ID:g+lvGDPK.net] オブシコで書かれたAPIとかライブラリってのならある。ってなら書いた COMとかね 原理的には、ラッパがあれば、避けることはできる
874 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 19:30:26.46 ID:K/iFT05J.net] これで動くOSあるなら分からんでもない OS.boot()
875 名前:デフォルトの名無しさん mailto:sage [2024/02/18(日) 20:19:38.98 ID:FiBYienL.net] 低レベルはまた違うでしょ ってだけではなんなので、ちょっとだけ手を動かしたよ https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Library/UefiBootManagerLib
876 名前:デフォルトの名無しさん [2024/02/19(月) 01:20:09.81 ID:nPOSkLxV.net] >>848 事実認識ができてない JavaScript、C#、Python、Ruby、C++、Java、Kotlin クラス扱える言語はいくらでもあるし、そもそもクラスや継承を使えない=オブジェクト指向じゃないって訳では無い クラスはお前みたいな馬鹿には使いこなせないからクラス以外でオブジェクト指向な書ける方法が模索されたんだよw
877 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 01:36:14.67 ID:1O4I6mF/.net] どの言語かに関係なく クラス継承でプログラミングするやつはバカしかいない
878 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 02:23:23.32 ID:T5tehfX7.net] 特定のルートクラスに縛られる継承はだいぶむかしにオブジェクト指向のあまり良くない実装として 仕様を残しながら使わない方がベターになってるわな 使うクラスをオブジェクトとして別個にクラスに組み込むコンポジションの方が主流 「継承というのがオブジェクト指向!」とかいつの時代のおじいちゃんだよ
879 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 02:37:07.20 ID:TafNbO5j.net] ↑2000年代で止まってるオッサン
880 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 07:21:21.34 ID:94Ygw4Cz.net] あの当時の人なら一度は、オレオレプロジェクトで継承を使いすぎた経験ってあると思うのね
881 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 08:07:57.52 ID:GOMVHdKw.net] 継承しまくって訳わからん事になるなら新しいクラスにした方がいいと思うけどなあ File -◯◯FileBase --◯◯FileStructure ---◯◯FileModel ----◯◯FileInstance みたいなのよりFile2を定義し直した方が遥かにマシ
882 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 08:13:47.31 ID:Y0uHI/e6.net] ファイル名なんかもそうだが File_20240219 のようなユニークIDつけておくといくら被っても困らない
883 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 09:09:06.20 ID:94Ygw4Cz.net] 重複(安易なコピペ)コードはちょっとでもいけませんってきつく言われて、 それを避けるように継承をテキトーに使いすぎた記憶はあるんだよね is-a 原則を守って、責任者が正しく設計しましょう
884 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 09:20:08.17 ID:94Ygw4Cz.net] 似たようなコードが出るなら、サブルーチンにすりゃよかったんだけどね あの頃は名前空間をあんまり使いこなせてなくて、なんでもクラスに押し込みゃいいと思ってた
885 名前:デフォルトの名無しさん [2024/02/19(月) 09:26:15.27 ID:5htgrxhu.net] >>855 と、継承すら理解できない素人が申しております
886 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 10:20:44.59 ID:stH4FHBR.net] Rustが重複コードは二度と書かないってポリシーだっけ 最初の一歩踏み出すのにとんでもなく時間かかりそう
887 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 10:25:51.91 ID:Xye0EN8a.net] 何をもって重複コードとみなすのかなぁ たまたま別の機能で同じコードになったとかは まとめると後で痛い目に遭うよな?
888 名前:デフォルトの名無しさん [2024/02/19(月) 10:35:06.92 ID:62DfF/9H.net] >>864 Rustは書かなきゃいけないボイラープレートが多いから重複コードも多い コピペ継承とマクロ継承がよく使われてる
889 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 10:54:32.58 ID:VWZKMKLS.net] c++ コンセプトをそのまま変数のインターフェイスに使えればなぁ、と思う事はある。
890 名前:デフォルトの名無しさん mailto:sage [2024/02/19(月) 11:18:30.32 ID:W0+AhDGC.net] >>864 Rustも他の言語と同様に重複コードがあれば関数として切り出すだけだよ その時に異なる型に対してもトレイト境界により安全にジェネリック化がしやすく多用されてるね >>866 Rustは継承ではなく合成と移譲をするためその宣言は増えるけどそれらを重複コードとみなすのはありえないよ
891 名前:デフォルトの名無しさん [2024/02/19(月) 18:18:36.14 ID:NzCkUvZW.net] >>868 どういう構造で作られているかは重複コードとみなすかどうかには一切関係ない 変更をロックステップで適用しなければいけないのならどういうものであれそれらは重複コード
892 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 00:04:11.84 ID:LUfJNkJd.net] スマポみたいな機能の重複回避には昔は継承を使った 今はジェネリクスを使う 昔の方法ではスタックのint型とヒープのInt型を統一できない
893 名前:デフォルトの名無しさん [2024/02/20(火) 02:06:05.00 ID:u4Uobn3a.net] すべての型に対して全て同じ実装でよければジェネリクスで良いが一部の型でカスタマイズが必要になるといろんな障害が出てくる
894 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 05:49:02.76 ID:/gOXQNrB.net] >>871 それは普通によく起こることだが全く問題ない その型ごとの差異の機能を合成するだけで対応できる もちろんジェネリクスのままでよい
895 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 06:10:00.38 ID:jusHGvnd.net] インタプリタならそれでいいんだけどね。。(個人の感想です
896 名前:デフォルトの名無しさん [2024/02/20(火) 10:28:59.91 ID:EDso4HRp.net] 一部の型でカスタマイズが必要な場合にジェネリクスを使おうとすると将来を見通したカスタマイズポイントを最初に確定しておく必要があって多くの場合現実的ではない 要はOCPを満たせないので変更に対して弱く保守性の低いプログラムになる 加えてRustではcoherenceの制限だったりspecializationやHKTが未サポートだったりで使える状況がかなり限定されている
897 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 10:53:42.40 ID:C9p4KSn1.net] >>873 Rustでも>>872 の「その型ごとの差異の機能を合成するだけでジェネリクスのまま対応」できるよ Rustは必要な機能のトレイト境界を指定することでコンパイル時点で静的にジェネリクスでも安全に呼び出すことが保証されるよ 呼び出し方法は静的ディスパッチによる単相化またはvtable利用の動的ディスパッチどちらも選択できるよ
898 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 10:57:44.32 ID:cggt5bnJ.net] そもそもRustが大規模開発にゃ向いて無い件
899 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 11:08:20.16 ID:C9p4KSn1.net] >>876 大規模開発もできるように作られたRustについて真逆のウソはよくないよ 既に大規模開発で採用しているGoogle Microsoft Amazonといった大手IT企業たちが 共同でRust Foundationを設立して資金を出して安定した環境でさらなる開発が進められているよ
900 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 11:10:21.09 ID:z4RtXIEV.net] それってまだ到達して無いって事じゃね?
901 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 12:20:44.40 ID:ShtLDmLT.net] 既にクラウドやCDNなどネットインフラは次々とRust製へ変わった ソース >【クラウド世界トップシェアAWS】 >https://japan.zdnet.com/article/35183866/ >Rustで構築されたAWSサービスの例としては、 >コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、 >「Amazоn Simple Storage Service(S3)」、 >「Аmazоn Elastic Compute Cloud(EC2)」、 >コンテンツ配信ネットワーク「Аmazоn CloudFront」、 >LinuxベースのコンテナーOS「Bottlerocket」などがある。 >【CDN世界トップシェアClоudflare】 >https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html >CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、 >同社自身がRust製のHTTPプロキシである「Pingora」を開発し利 用していることを明らかにしました。
902 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 13:22:34.01 ID:LUfJNkJd.net] 大規模開発以外はオワコンゆえに構造化プログラミングはオワコン というのがオブジェクト指向の原点なのでオワコン論法を今更やめられない
903 名前:デフォルトの名無しさん [2024/02/20(火) 13:26:48.23 ID:oBR9eIxF.net] >>877 そのどれもが大規模開発じゃ無いぞ 使われてるがチームは数名だぞ
904 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 13:36:25.43 ID:AU1Zrlfs.net] 数名で各ネットインフラをRustで開発できるなら今後はRustでいいな
905 名前:デフォルトの名無しさん [2024/02/20(火) 16:28:18.46 ID:ZAWp74Ua.net] 「うちは大規模開発でやってる」という発言が出ないで、他人の情報に反応してそういう結論に切り替えるってことは つまり自分らでは使ってないってことかいな
906 名前:デフォルトの名無しさん [2024/02/20(火) 16:45:43.34 ID:rm//dl54.net] できるできる詐欺が横行してるな
907 名前:デフォルトの名無しさん [2024/02/20(火) 18:35:02.11 ID:pzacWR0B.net] 大規模開発は人数揃えるのが何より大切だからな COBOLかJava以外ありえない
908 名前:デフォルトの名無しさん mailto:sage [2024/02/20(火) 20:51:51.45 ID:lRk+yPyb.net] 全部できるよ
909 名前:デフォルトの名無しさん mailto:sage [2024/02/21(水) 14:43:22.45 ID:Z35fBDP9.net] MVCで入力処理ってどこにおくべき? AIとかに聞くとCに置けって言ってくるけど 移植(ライブラリ変更等)時に描画系入力系を まとめてVに置いておくと楽だと思うんだけど
910 名前:デフォルトの名無しさん mailto:sage [2024/02/21(水) 14:46:34.08 ID:QZ7TjEE8.net] いまだにMVCとかやってるから海外のアプリに勝てないんだよな
911 名前:デフォルトの名無しさん mailto:sage [2024/02/21(水) 15:34:28.90 ID:C622TR9G.net] M: 変数 V: public関数 C: private関数
912 名前:デフォルトの名無しさん [2024/02/21(水) 16:02:41.28 ID:IVa7P8gb.net] >>887 MVCといってもクライアントサイドのMVCとサーバーサイドのMVCで考え方が違う また入力処理と言っても人によって指すものが違うので具体的にどういう処理を入力処理とみなしているか書かないとわからない さらに移植とライブラリ変更は一般的に違うものなので想定状況が伝わらない
913 名前:デフォルトの名無しさん mailto:sage [2024/02/21(水) 17:11:10.76 ID:RdIBo6ag.net] M: member V: virtual C: constexpr // 空目
914 名前:デフォルトの名無しさん [2024/02/21(水) 18:43:28.52 ID:1mshJDzd.net] Mutable Virtual C++
915 名前:デフォルトの名無しさん mailto:sage [2024/02/21(水) 20:19:29.17 ID:ryHNx0AS.net] 用語や形にこだわるより先に仕様通り動くもの作れ。くだらないこだわりで何も始められないのはただのアホ
916 名前:デフォルトの名無しさん [2024/02/21(水) 21:53:18.35 ID:gKvdV+n9.net] 唐突なストローマン論法で草 雑魚味が濃すぎる
917 名前:デフォルトの名無しさん mailto:sage [2024/02/21(水) 21:58:52.64 ID:1UKYnLzP.net] >>887 元々は移植性のためにモデルはそのまんま環境と切り離した処理そのものを ヴューは人間の目に触れる画面レイアウト周り、そしてコントローラーは それらを繋ぐインターフェイスとして実装という考え方なので ゲームをPC、コンシュマー、モバイルと移植します画面周りはVです 操作されるゲームの中身はMです、つなぐ部分はCです …ん?マウスと十字キーとタッチパネル対応はどこまでがCだ?ってなるけど AIに聞けばテンプレどおりそら「Cに分けなさい」言われるわな
918 名前:デフォルトの名無しさん mailto:sage [2024/02/21(水) 22:04:57.80 ID:Ufq19E/Q.net] ゲームとビジネスアプリとでは違って来るよな ゲームなら🎮や⌨はCだが、ビジネスアプリでは単にVの付属物だったりする
919 名前:デフォルトの名無しさん [2024/02/21(水) 22:11:27.33 ID:UHHgkSfj.net] うそやん マウス対応やタッチパネル対応はViewやぞ AIに聞いてもそう答えるぞ
920 名前:デフォルトの名無しさん [2024/02/21(水) 23:59:03.36 ID:anjrCapC.net] 「入力」の抽象度の違い ビューに依存した入力とそこから一段階抽象度が上がったビューに依存しない入力がある それを認識できてればどこに含めるか迷わない
921 名前:デフォルトの名無しさん [2024/02/23(金) 11:08:19.40 ID:SaGFiexu.net] https://twitter.com/mayappy0627/status/1725074809883898273 M a y a ♡🏳⚧ヽ(๑╹◡╹)v🏳🌈 @mayappy0627 「シスヘテロ男性が女湯に入りたい目的で嘘をついて診断書を取得し性別適合手術を受ける可能性がある」 という言説がいまだに流れている様だが 女湯入ってオカズ目に焼き付けてもチン◯ないからシコれませんのでね。つまり男性的快楽は得られないという結末の一つさえ想定できないんでしょうかね? 午後5:54 · 2023年11月16日 · (deleted an unsolicited ad)
922 名前:デフォルトの名無しさん mailto:sage [2024/02/23(金) 11:14:17.40 ID:GPv4EW4D.net] きんたま切り落とした時点で男性ホルモンは著しく減衰して性欲は無くなるよ🥲
923 名前:デフォルトの名無しさん mailto:sage [2024/02/23(金) 11:34:54.51 ID:QK/ZoJ33.net] class Man(Human): ... def do_chinko(): if (chinko is None): return None return finish() ...
924 名前:デフォルトの名無しさん [2024/02/28(水) 21:12:31.15 ID:igsDoIyP.net] >女湯入ってオカズ目に焼き付けてもチン◯ないからシコれませんのでね 人間に独立した人格が有るように、チンポにも独立したチン格が有る これは親クラスと子クラスの継承関係である チン格とはつまり「愚息」であり、自分にも他人にも成り得る これがオブジェクトの多態性と表現される オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋 このように時と場合によって真逆の性質を併せ持つことができる 随意筋 不随意筋 ↖ ↗ チンポ 自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね!
925 名前:デフォルトの名無しさん mailto:sage [2024/02/28(水) 21:59:59.89 ID:N6In+Wna.net] 機能するかどうかだけが問題で、欲求があるかどうかはあんまり関係無いよな
926 名前:デフォルトの名無しさん [2024/02/29(木) 17:11:51.40 ID:lYDtPhZw.net] オブジェクト指向では、オブジェクトの「機能」を意識することが大切ね! >>903 >機能するかどうかだけが問題で オブジェクト指向(OOP) は、データとそれに関連するメソッドを 「クラス」という単位でまとめて管理する開発手法です。 このアプローチにより、開発者は複雑な機能も再利用可能なモジュールとして効率的に構築できます。例えば、 新しい機能を開発する際、既存のクラスから必要なデータを取得し、必要に応じて新しい機能を追加することが可能です。 https://zenn.dev/cloud_ace/articles/29748ac0537c7f
927 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 17:34:03.72 ID:l9BYiy+8.net] モダンなプログラミング言語 Go、Rust、Zig、Nim、Julia、Elixirなどは クラスおよびその継承を言語仕様から排除しておりクラスは存在しない 各々の言語は全く異なる方針を採っている言語だがクラス排除だけは全てが同じ方針である クラスとその継承は悪手であるとプログラミング言語界では結論が出ている
928 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 18:33:41.13 ID:j2QgmuXb.net] むしろ、何段も継承されてわけわからん事になるのが嫌われてるだけなので swiftなんかはfinalつけてサブサブクラス禁止できるようにしてるな
929 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 18:44:02.92 ID:SAazNRBP.net] こんなスレで御託長文書くのはプログラム作れない人
930 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 18:55:21.40 ID:8i6X/khC.net] 悪手と言われると、極めたくなるんだよなあ
931 名前:デフォルトの名無しさん [2024/02/29(木) 21:12:27.90 ID:zvBPwraZ.net] >>905 クラスと呼ばれるものがないだけで メソッドを生やせる構造体も継承も Elixir以外のすべての言語に存在する 君が無知なだけ
932 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 21:41:50.06 ID:PlWfF7KT.net] クラスが存在しないことが最重要だからクラスを採用しない言語が増えてるんだよ クラスは間違った手法『具象型から具象型への継承』となる禁忌のクラス継承を伴うからね オブジェクト指向に必要なカプセル化は構造体などでもちろん可能だから オブジェクト指向にはクラスは不要だよ そしてインターフェイスや型クラスなどによる正しい手法『抽象型から具象型への継承』が代わりにあればよい モダンな各プログラミング言語はそれらの方針をとっている だからクラスが採用されてないんだよ クラスは悪
933 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 22:35:54.39 ID:8i6X/khC.net] 継承に親兄弟を殺された人がいるようだが 世界は残酷なのだ
934 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 22:42:52.64 ID:PlWfF7KT.net] 悪い→『具象型から具象型への継承』←クラス 良い→『抽象型から具象型への継承』←インターフェース・型クラスなど
935 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 22:58:22.40 ID:eayaXhXN.net] 要は個人開発レベル小規模webサイトレベルなら継承の類不要?つうかDIだけでは駄目なん?
936 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 23:10:15.09 ID:M4AFeBSO.net] 規模にかかわらず同じ 抽象型からの継承は問題ない クラス継承はダメ
937 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 08:38:11.92 ID:FDcCyCi3.net] >>914 「抽象型の仕様が安定している限り」な。 抽象型の改変が入ったらインパクトが大きい。
938 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 08:59:14.79 ID:PeOPXftI.net] そこでダックタイピング(の併用)だな うん、継承一本ってのは、人類には早かった
939 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 09:08:35.51 ID:JrOItvM9.net] クラス継承は具象型からの継承なので多重継承の問題が発生する悪い方法だが 抽象型からの継承は多数あっても合成となり良い方法 >>915 抽象型は各機能毎に細かく多数用意されて合成して使うためそのような問題が起きない 抽象型の改変とは機能を変えることになるため別の抽象型として並行して扱える
940 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 10:31:31.13 ID:Lv7uqw7J.net] >>917 なら設計の初期に細かく多数の抽象型を決めなきゃいけない、ということになるわな。 未来を予測できる天才でもなければ厳しいな。
941 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 10:32
] [ここ壊れてます]
942 名前::36.36 ID:YMlxHHtw.net mailto: まあ、たいていのクラス設計は 製造終盤になると跡形も無いんだがな [] [ここ壊れてます]
943 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 10:56:06.21 ID:67BTULI7.net] >>918 クラスはピラミッド型の階層構造となり改変で他へ影響が大きく出る問題があり クラスは具象型なのでそれ自体がメンバ変数(フィールド変数)を持ち途中階層のクラスも持つため改変が非常に大変もしくは崩壊となりがち 抽象型でメンバ変数(フィールド変数)を持たないインタフェイスや型クラスではその問題が起きない それら抽象型による各機能の合成をとるため改変する場合も他機能への影響が限定的となり問題を分離することができる
944 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 12:34:53.51 ID:JFzuIw6k.net] 人間が理解しやすくなればなんでもいいシコ
945 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 12:45:52.70 ID:FDcCyCi3.net] >>920 メンバ変数の無い抽象型であっても、分離できるのは実装部分でしかなくて、「機能ではなく型の種類&名前で縛られる」という設計の初期の困難さは回避できていないよ。 まぁ、インターフェイスとかトレイル(Rustの偽物は論外)とかでもモジュール境界とモジュール間連携の問題は解決できていないからなぁ。何かいいアイディア無い?
946 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 12:51:44.04 ID:9l2p08EB.net] IDEのリファクタリング機能があれば何でもいいよ
947 名前:デフォルトの名無しさん [2024/03/01(金) 16:38:06.02 ID:gwVYOw6C.net] >>905 バカの一つ覚え
948 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 17:27:04.12 ID:PeOPXftI.net] それが>>911 の人、何人かいるっぽい
949 名前:デフォルトの名無しさん [2024/03/01(金) 20:56:33.23 ID:KQ1HmSrc.net] 継承には感謝しかないです
950 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 21:29:01.44 ID:NM6ffmiH.net] クラス継承さえ使わなければ 継承は便利だからね
951 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 22:31:08.80 ID:qr8UCngy.net] メソッドだけ継承できればいいよ
952 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 07:16:17.19 ID:7IvxOyHp.net] クラスとかメソッド集合としての機能だけあればいい。 その代わりに外延性と集合演算をサポートしてくれ。そうすりゃ継承みたいなクソツールは要らなくなる。
953 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 11:56:05.36 ID:0RQhliLl.net] クラスとか継承とかに不満持つのは不思議なんだが、他人の作ったコードやライブラリをうまく流用出来ずに文句言ってるのか? 自分で作る分には言語の機能にあっても使わなきゃいいだけだろうに 他の人が理解できないからだ、ってのならその「他の人」に言え
954 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 12:17:52.47 ID:+4BUdsxu.net] 人間が理解しやすくしなよ
955 名前:デフォルトの名無しさん [2024/03/02(土) 13:55:18.96 ID:ILWRlrIw.net] >>930 他の人になんて言えば良い?
956 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 13:56:06.21 ID:pYjRDwip.net] >>930 クラス継承については全員が問題視している Javaの生みの親ですらJavaを作り直せるならクラスを除外すると明言している そして現実にモダンなプログラミング言語 Go、Rust、Zig、Nim、Julia、Elixirなど全てがクラスを除外している >Javaのユーザグループミーティングに出席した際、 >James Gosling(Javaの生みの親)がメインの講演者として招かれていました。 >すばらしいQ&Aセッションの途中に、こんな質問が出ました。 >「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」 >答えは「クラスを除外するでしょうね」というものでした。 >彼が説明したのは、本当の問題はクラス自体ではなく実装継承(extendsの関係)なのだということでした。 >インターフェースによる継承(implementsの関係)のほうが望ましいのです。 >できる限り実装継承は避けたほうがよいでしょう。
957 名前:デフォルトの名無しさん [2024/03/02(土) 13:58:52.73 ID:ILWRlrIw.net] ねえ!他の人になんて言えばいいの!?
958 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 14:38:32.67 ID:an2Rf2WF.net] 「俺は継承に親を殺された。絶対赦さない。絶対にだ
959 名前:」 [] [ここ壊れてます]
960 名前:デフォルトの名無しさん [2024/03/02(土) 14:43:33.20 ID:ILWRlrIw.net] 。°(´∩ω∩`)°。
961 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 14:47:09.39 ID:iW0xTm2n.net] >>933 どこからの引用なのかちゃんと書こうよ https://postd.cc/is-go-object-oriented/
962 名前:デフォルトの名無しさん [2024/03/02(土) 15:01:00.73 ID:OiLnCmP5.net] >>933 バカの一つ覚え乙
963 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 15:26:08.25 ID:5qddeDE5.net] >>937 丁寧な説明あって助かったありがとう 実装継承は問題があるためクラス継承を使うのは辞めた方がよさそうね そうするとクラス自体が不要なので今どきの言語にはクラスが無いわけなのね
964 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 17:53:44.47 ID:JmA8+V/x.net] 継承すると結合度が高くなり、基底クラスがいじりにくくなるから implements で名前だけ基底クラスで宣言した方がよい という経験則なわけね
965 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 18:23:50.25 ID:C5B9iefL.net] >>940 違うよ 基底クラスは一切使わずにインターフェース等を使う インターフェース等を備えていない言語ではやむをえないため抽象クラスで代替する
966 名前:デフォルトの名無しさん mailto:sage [2024/03/02(土) 21:21:19.79 ID:6JiP4UcJ.net] 15年ぐらい前はstaticおじさんが馬鹿にされてたけど今じゃオブジェクト指向がオワコン呼ばわりかぁ Lisp使おう()
967 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 00:19:19.60 ID:Ic67hcFY.net] 処理系も書かずに使おう(笑)
968 名前:デフォルトの名無しさん [2024/03/03(日) 12:51:43.47 ID:s0HRTEoD.net] オブジェクト指向に毒されてるpowershwll,python,ruby等も終わりかな F#に興味出てきたな
969 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 13:22:58.46 ID:4PUy8wCJ.net] あたりまえにオブジェクト指向使ってる現代でオブジェクト指向がオワコンって言うのはプログラム作らない人 ここの板のローカルルールくらい見ましょうね
970 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 13:49:21.97 ID:HJzrw6yi.net] やたらとオブシコしてたのからの回帰ってならわかる そういう意味なんだろうなと思う
971 名前:デフォルトの名無しさん [2024/03/03(日) 14:11:44.50 ID:0VvwZNDM.net] >>940 何でそんなこと言うん?
972 名前:デフォルトの名無しさん [2024/03/03(日) 17:32:00.15 ID:7AiWdEnV.net] https://twitter.com/i/status/1763848620204544172 オブジェクト指向にも同じことが言えます (deleted an unsolicited ad)
973 名前:デフォルトの名無しさん [2024/03/03(日) 17:33:19.72 ID:7AiWdEnV.net] オブジェクト指向を実践してない人ほど継承はダメだといっておられる 現実をまったく見ていない理論でしかないわけです
974 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 17:33:33.79 ID:m+AYakYE.net] 40年前に構造化プログラミング(いまあたりまえのプログラムをブロックモジュールに分ける概念)についてけなかった人とかも 理解しないまま「構造化プログラミングはオワコン!これからはオブジェクト指向!」ってそもそも構造化プログラミングの 発展系がオブジェクト指向だってわからずこのアホウみたいにウキャウキャしてたのかしら
975 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 18:10:26.26 ID:nBM3NOHP.net] >>949 正しく理解しようよ ダメなのはクラス継承 抽象型の継承はOK オブジェクト指向もOK
976 名前:デフォルトの名無しさん [2024/03/03(日) 18:26:34.56 ID:zJ/qFUNe.net] >>951 Pythonは文脈によって意味が変わる多重継承ね! 随意筋 不随意筋 ↖ ↗ チンポ
977 名前:デフォルトの名無しさん [2024/03/03(日) 20:11:50.76 ID:InukkrXD.net] ついていけない人間がたくさん出てしまうパラダイムは多くの人間が使えないので自明にオワコン
978 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 21:12:52.05 ID:vlko3Vgi.net] >>950 ありそうな話だなあ
979 名前:デフォルトの名無しさん [2024/03/03(日) 21:35:56.29 ID:9XAeTkis.net] >>933 Cの生みの親が作ったGoはともかく、Rustにクラスがなかったのはマジびびった。 Haskell覚えたときに、オブジェクト指向プログラミングの再利用性に疑問持って、 (実際にはしないけど)C++でクラス使わずテンプレートだけ使った方が再利用しやすいんじゃ…?とか思った。 そして最近、「スッキリわかるC言語」立ち読みしたら、C言語に(テンプレートとは違ってマクロっぽいが)ジェネリックっぽい機能が取り入れられてるみたい。 (使えないコンパイラがまだ多いのでLinuxのカーネル開発では禁止されてるみたいだけど) あと、デザインパターンも、関数型言語で普通にしてる事がいくつか書いてて、オブジェクト指向言語だと意識しないと出来ないんだと気づいた。 (例:イテレータ、テンプレート・メソッド、シングルトン、アブストラクト・ファクトリ、ストラテジなど)
980 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 22:06:17.23 ID:mVaeStz7.net] 広い意味のオブジェクト指向は今でも有用であって クラスを使ったオブジェクト指向が間違っていただけなので GoやRustなど新しい言語にはクラスが無いけど(クラスを使わない)オブジェクト指向ですよ
981 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 22:11:46.53 ID:JkCR2ZDo.net] >>953 おまえがオワコンなだけ。お前自身がついていけなくても、ついていけない人がたくさんいると思っていても 実際には多くの人がすでに実行してる。今やその辺の小学生でも https://www.nhk.or.jp/school/sougou/programming/
982 名前:デフォルトの名無しさん [2024/03/03(日) 22:27:37.47 ID:9RvqtVLq.net] >>957 俺は「ついていけない人間がたくさん出てしまうパラダイム」の話をしているのに、お前は勝手に「俺がついていけない人がたくさんいると思っているパラダイム」の話を始めたな 俺の話を理解できていないのか、理解した上で関係なくお前のしたい話を始めたのか知らんが、それで俺にレスをつけておいて俺にオワコンと言ってくるなんて、なんてガイジなんだ 回線切って首吊って死んでくれよな
983 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 22:50:31.38 ID:uAsMCupP.net] お前らさあ。。 次スレどうする?
984 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 23:01:06.99 ID:A1Y/Mibd.net] つまりプロトタイプベースオブジェクト指向のJSは一歩も二歩も先に行ってたってこと?
985 名前:デフォルトの名無しさん [2024/03/03(日) 23:05:08.39 ID:slB98rWU.net] >>958 おまえ生まれてから今までずっと 何言うてんねん
986 名前:デフォルトの名無しさん [2024/03/03(日) 23:24:09.12 ID:9XAeTkis.net] >>960 まあ、JSは手続き型言語の皮をかぶったLispと言われる事もあるので、 そうとも言える。 ただLLだったので大規模開発に向かなかったのかと。 関数型言語と論理型言語は大きなカテゴリーでは宣言型言語になるんだけど、 オブジェクト指向も宣言的なプログラミングは目指してるんだよね。 メソッドチェーンと関数合成は向きが逆なだけで、やってることは同じだし。 Rust初めて見たときはC系統の文法のだけど、だいぶ関数型言語に寄ったなと思った。 しかも組み込み系の雑誌「interface」でだいぶ推してるし…。(お題を解く連載が続いてる) 何事かと。
987 名前:デフォルトの名無しさん mailto:sage [2024/03/04(月) 00:00:46.80 ID:ndPj2VnY.net] >>962 >メソッドチェーンと関数合成は向きが逆なだけで、やってることは同じだし。 関数型のやり方によっては見た目は似せることができてもやってることは全然違う 関数型とオブジェクト指向で根本的に異なる部分
988 名前:デフォルトの名無しさん [2024/03/04(月) 00:42:55.59 ID:vyClhVzf.net] 言われてみれば。 同じは言い過ぎだったね。 print関数と関数合成なんて、オブジェクト指向な人から見たらイミフだろうし。 高階関数に関数合成した関数渡すのも、オブジェクト指向じゃ関数オブジェクト(?)にメソッドチェーン渡すなんて、見たことない。(できるかは知らない) 割とよく使うのに。 あと、オブジェクト指向型言語で関数型プログラミング取り入れました!って言って ラムダ式を強制するのがウザい。 関数型言語はセクションやら、それこそ関数合成使って、なるべくラムダ式を使わない様に進化してるっちゅーねん。
989 名前:デフォルトの名無しさん [2024/03/04(月) 20:55:11.38 ID:OBoWisFX.net] 「継承」についてだが、多重継承をサポートしていない言語ならなるべく使わないほうがよい
990 名前:デフォルトの名無しさん mailto:sage [2024/03/05(火) 14:40:45.25 ID:8Aciq0Ni.net] >>930 不満を解消するために行動しているというのは誤解 ある行動をしなかった理由を考えている なぜ継承しなかったのか
991 名前:デフォルトの名無しさん [2024/03/06(水) 15:26:14.40 ID:7MRZ6H51.net] >>965 逆だね あえて逆のこと言ったんだね
992 名前:デフォルトの名無しさん [2024/03/06(水) 16:32:28.41 ID:QczblYLZ.net] >>967 Pythonは多重継承だが?
993 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 17:05:29.94 ID:0Fz1GTqO.net] 銀の弾丸はなく適材適所なだけなのに なるべく使わないって判断放棄してへん?
994 名前:デフォルトの名無しさん [2024/03/06(水) 17:58:25.40 ID:RxG6QCQE.net] >>968 Pythonの話ちゃうやん
995 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 18:04:07.44 ID:OsGV2nia.net] >>968 おまえそのPythonでどんなアプリ作ったの? >>937 のリンク先から引用 >多重継承の問題の1つは、同一のメソッドが1つ以上の親クラスに存在しているときに、言語がどのメソッドを用いているのかが自明ではなく、あいまいだという点です。 これが絶対悪だというのはありえないにせよ、プログラム保守する上でこの問題はよく理解できるはず
996 名前:デフォルトの名無しさん [2024/03/06(水) 18:42:32.08 ID:T1kDuEf9.net] 人間に独立した人格が有るように、チンポにも独立したチン格が有る これは親クラスと子クラスの継承関係である チン格とはつまり「愚息」であり、自分にも他人にも成り得る これがオブジェクトの多態性と表現される オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋 このように時と場合によって真逆の性質を併せ持つことができる 随意筋 不随意筋 ↖ ↗ チンポ 自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね!
997 名前:デフォルトの名無しさん [2024/03/06(水) 20:32:09.54 ID:RxG6QCQE.net] >>972 継承関係無いやん
998 名前:デフォルトの名無しさん [2024/03/10(日) 16:41:48.65 ID:VoY5srQP.net] https://twitter.com/frozensholder/status/1766678736836149638 四十肩 @frozensholder 男はチンボで物を考え女は子宮でモノを考える。それが世界の理。 (deleted an unsolicited ad)
999 名前:デフォルトの名無しさん [2024/06/12(水) 21:54:40.54 ID:2UzQR7Po.net] オブジェクト指向を学ばなかった話 https://qiita.com/adaiimps/items/e04ae03371435aeffe87
1000 名前:デフォルトの名無しさん [2024/06/13(木) 11:22:06.13 ID:fHN6F3J2.net] >>970 の理屈だと Rust の trait もアウトだな
1001 名前:デフォルトの名無しさん [2024/06/13(木) 11:22:46.95 ID:fHN6F3J2.net] アンカ間違えた >>971 です
1002 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 14:45:53.11 ID:gxf+efas.net] メソッドの名前はまあ許せるが変数名の重複がアウトなんだよ どっちもアウトという極端なネガティブ思考はもう聞き飽きた
1003 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 14:47:27.54 ID:lNMgjwmg.net] >>976 RustやGoなどモダンな言語にはクラスはありませんから クラス継承の問題もありません
1004 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 22:17:03.25 ID:RzblDdiK.net] https://i.imgur.com/oWLfqqZ.jpg もうすぐ終了です
1005 名前:デフォルトの名無しさん mailto:sage [2024/06/14(金) 09:40:27.76 ID:5ngAi6Ey.net] もうすぐ終了です https://i.imgur.com/QiiT0Fx.jpg
1006 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 11:12:01.01 ID:EEfTRUen.net] 家族・友人に紹介で更に×5000円 https://i.imgur.com/iBtMtnJ.jpg
1007 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 12:58:11.00 ID:lECmuUtZ.net] 5000円ゲットに加えて家族・友人に紹介で更に×5000円! https://i.imgur.com/OVgPyJY.jpg
1008 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 15:08:08.53 ID:GQubfVD8.net] 即時3000円+2500円貰えます https://i.imgur.com/zIUDvjy.jpg
1009 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 15:45:17.28 ID:5YPEUVSI.net] スパムが梅に来てやがる ちょっと違うけどちょっと似たスレ探した 次ここ埋めよう オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net mevius.5ch.net/test/read.cgi/tech/1451927425/
1010 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 16:37:40.69 ID:vKjwZw7A.net] 振り返ればCOMが一番成功してた事実 やはりこれからもコンポーネント指向だな
1011 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 23:46:33.68 ID:cxiEzNVX.net] IUnknownは偉大 いまでも傑作のひとつだと思う
1012 名前:デフォルトの名無しさん [2024/06/17(月) 16:32:57.38 ID:prlYSpwu.net] うんこナウ
1013 名前:デフォルトの名無しさん [2024/06/17(月) 17:48:17.60 ID:Hy1KBFGr.net] 関数自体を関数に引数としてどう渡すかって話だよ。
1014 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 13:05:53.08 ID:T9hZbeKo.net] 今だけです https://i.imgur.com/fJ2Q9aF.jpg
1015 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 18:55:40.89 ID:HhVSQR1B.net] 終了までお早めに https://i.imgur.com/aIqXmDB.jpg
1016 名前:デフォルトの名無しさん [2024/06/25(火) 13:43:55.89 ID:ZtCD4zFU.net] ランサムωωω
1017 名前:デフォルトの名無しさん [2024/06/28(金) 16:44:13.15 ID:/Ex5ZKSC.net] うめますか?
1018 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 17:46:32.19 ID:DfHx9zhO.net] 次スレまだ?
1019 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 18:06:50.53 ID:tE6002zU.net] 次スレできなかったら >>985
1020 名前:デフォルトの名無しさん [2024/06/28(金) 19:59:08.35 ID:TzaR5aOj.net] 糸冬
1021 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 22:00:12.74 ID:7Ebl2CLD.net] 板違いの雑談したがるアホの気持ちが理解できない プログラム能力が小学生未満なのにム板で語りたがるアホども
1022 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 11:12:00.17 ID:yISeF17a.net] 板違いの雑談したがるアホの気持ちが理解できない 自治能力が小学生未満なのにム板で語りたがるアホども
1023 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 13:56:06.77 ID:44tg2Mvq.net] 999
1024 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 17:14:14.15 ID:n5ixZO2u.net] 終了しました
1025 名前:1001 [Over 1000 Thread ID:Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 307日 19時間 13分 21秒
1026 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています