オブジェクト指向を教えてくれ!★2

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/04/27(火) 15:02:28.94ID:mH9VXFld
オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。

・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)

・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)

・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?

・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1615881962/
2021/08/12(木) 14:50:14.65ID:Cjb3AJ9v
っていうか、21世紀にもなってオブジェクト指向の本質が分からんとか言ってるタイプの人が
どういう人だかよく分かるよねw

オブジェクト指向の意味するところなんて何も難しくない。
当たり前だ、オブジェクト指向が重要なのはそれが人間の思考に親和的だからなんだから。
2021/08/12(木) 16:17:40.25ID:GeyAERvY
>>333
ほう、では聞くがオブジェクト指向の本質とは何かね
335デフォルトの名無しさん
垢版 |
2021/08/12(木) 16:26:36.64ID:Jv7mG6fo
>>334
>ほう、では聞くがオブジェクト指向の本質とは何かね

チンポ【が】シコシコする、まさにこの発想ね!
2021/08/12(木) 17:32:06.45ID:GeyAERvY
>>335
黙れぶっ殺すぞ
2021/08/12(木) 17:40:52.13ID:GeyAERvY
二度と俺の前で下品なことを言うな、不愉快極まりない、こっちは真面目に議論してるんだバカ野郎が
2021/08/12(木) 17:41:48.29ID:GeyAERvY
あーチンコ痒いわーおすすめの塗り薬教えて
2021/08/12(木) 17:43:48.58ID:LQwXlujn
NGワード:本質
2021/08/12(木) 17:52:29.39ID:GeyAERvY
>>333
オブジェクト指向の本質とチンチンの痒み止めは何か答えよ
341デフォルトの名無しさん
垢版 |
2021/08/12(木) 18:19:06.32ID:HkfEGEyR
メモリだとかポインタだとか参照だとか、
VMやインタプリタ的には、
変数も配列もオブジェクトの最初と最後の
アドレスを、値が同じでもその二つに分けて
常に管理している
生存は上のネストに使えない場合のみ
ドット演算子やアロー演算子は、
元オブジェクトと要素オブジェクトを繋ぐのみ
メモリ管理的には元と要素の二つの管理だから
上のオブジェクト管理技術に似ている、または
同じ
2021/08/12(木) 20:11:11.45ID:V8+unqW1
>>334
礼の用は和を貴しと為す
343Mb
垢版 |
2021/08/12(木) 21:06:20.30ID:a2nsWCdu
>>332
> 賭けてもいいが、君自身自分が何を言ってるのか理解してやしないだろw
おれが理解しているのかどうかを誰が判定するのか知らないが、
英語だと「空」は「Relations(関係・相関)」で、
実在は「オブジェクト」以外に「エンティティ」「サブスタンディングス」
という表現がある。
データベースを使うような大きなプロジェクトだと、「ER図」と
いうのが出てくるので、「おれはそういうのは認めない!」とか
喚いていると、仕事をしくじると思うぞ。
344デフォルトの名無しさん
垢版 |
2021/08/12(木) 21:14:29.57ID:a2nsWCdu
>>342
> 礼の用は和を貴しと為す
「和志を貴ぶ」のほうを推したいな。
「医心房・房内編」で、「和志(ラポール)」「安心(リラックス)」
「定気(「やる/される」という心理的な構え)」が重要だ、と
説かれている。
345デフォルトの名無しさん
垢版 |
2021/08/12(木) 21:17:27.64ID:a2nsWCdu
つーかエロゲの広告が画面に出てると、
娘の前で開きづらいんだよなぁ(T_T)。
2021/08/13(金) 10:33:07.33ID:UQXwRNun
チンポをシコシコするのか
チンポがシコシコするのか
かわエロ後輩に聞いてみたい
347デフォルトの名無しさん
垢版 |
2021/08/13(金) 10:44:08.03ID:sJTiJVnI
>>346
チンポは自我を超えて自我乗っ取りパワーを有している!

>意志の大きさとかではなく、生理と同じように『おちんちん乗っ取りパワー』にも重さがある。
2021/08/13(金) 11:51:11.58ID:pIseU7da
オブジッ上
349デフォルトの名無しさん
垢版 |
2021/08/13(金) 19:54:17.39ID:qYxunMq5
>>346
珍宝とみるか魔羅とみるかという観念の違いだな。
「オブジェクト志向言語」というネーミングが失敗だった、
という意見もあって、「メッセージング主導言語」と
名づけておけばよかった、という意見もある。
350デフォルトの名無しさん
垢版 |
2021/08/13(金) 20:11:48.49ID:qYxunMq5
>>341
> メモリ管理的には元と要素の二つの管理だから
> 上のオブジェクト管理技術に似ている、または
> 同じ
確かにそうだ。
ただ、オブジェクト志向だと、「実行時にチェックしてくれる」という点で、
(コンピュータ・リソースに関しては負担になるものの)
>>333
が言うように、
> オブジェクト指向が重要なのはそれが人間の思考に親和的だからなんだから。
という点で、プログラムを書くときに楽だ、というのが大きいと思う。
昔は「コンピュータ・リソース」が貴重だったので
「ヒューマン・リソース(人的資源)」がないがしろにされていたワケだが、
いまどきはコンピュータ・リソースが余りまくっていて
人的リソースが不足してて困っているので、
「コンピュータ・リソースをじゃぶじゃぶ使って、人間(プログラマ)は
楽しよう」というのがオブジェクト志向なのだと思う。
机上デバッグに三日使うよりは、テスト実行を千回やったほうが楽だ、
っつーのが、根幹にあると思う。
351デフォルトの名無しさん
垢版 |
2021/08/14(土) 13:31:37.12ID:Kjr+S4As
真面目な話、
「オブジェクトチンポシコシコ隔離病棟」
https://mevius.5ch.net/test/read.cgi/tech/1619499726/l50)で、
「何が当該人物をそうさせたのか?」を議論して、
メンヘラ板かなんかに送り出す(かつ、精神科の治療を受けさせる)
のが誠実な対応ではないかと思うんだがどうだろうか。
オブジェクトは、
クラス定義というものがあり、
・静的に定義されたもの
と、
・new されたもの
があって、「メッセージを投げると、内部状態が
変わる∨内部状態のメッセージが返ってくる∨
連鎖的に他のクラスやオブジェクトにメッセージを投げて、
new したりメッセージングしたりということをする」ので、
C 言語のグローバル変数みたいに「何がどこに影響を与えるか
わからない」ことを防ぐために内部状態の隠蔽をしているだけの
シンプルな概念だと思うが。
352デフォルトの名無しさん
垢版 |
2021/08/14(土) 22:14:14.04ID:El2A9tuO
チンポがシコシコするぜ!
353デフォルトの名無しさん
垢版 |
2021/08/14(土) 22:29:27.59ID:Kjr+S4As
>>352
精しくはこちら
『オブジェクトチンポシコシコ隔離病棟』
https://mevius.5ch.net/test/read.cgi/tech/1619499726/l50
354デフォルトの名無しさん
垢版 |
2021/08/16(月) 21:09:10.68ID:v41p+Te1
よって我々はモノに着目している場合ではない。機能に着目すべきなのだ。インターフェイスとは機能を
ユーザー側の視点から記述したものだ。これによって機能を構成するものの中でユーザーが知る必要のない情報(実装)を隠蔽するのである。
各コンポーネントが自分が知る必要のあることだけを知ることで、現代の複雑かつ大規模なソフトウェア開発が可能になるのである。
https://qiita.com/hush/items/33da14ddf45f45b5ef65

210 デフォルトの名無しさん 2021/07/30(金) 00:45:15.42 ID:T4chNKrF
>>208
> チンポはオシッコを出したりオシッコを止めたりする機能が備わっている。
…… まぁ、放っといたほうがいいんだろうが、ひとこと。
「オシッコを出したりオシッコを止めたりする機能」は前立腺とか
外尿道括約筋の機能であって、チンポの機能ではないと思うが。
2021/08/16(月) 21:44:27.52ID:Hs68msvN
>>349
OOはオブジェクトを整理する言語かと思ってた
メッセージジング主導言語ってどういうことだろ
356デフォルトの名無しさん
垢版 |
2021/08/17(火) 13:27:55.36ID:phcnfjEw
>>355
相手がいなけりゃ投げられないだろ?
動的な class は実体がなければ投げられないので、
まず new して「クラス定義という設計図」から、
「実際に動く実体としてのオブジェクト」になってから
メッセージを投げるんだよ。
こんなもん、平安時代の陰陽師だって知ってたぞ。
まず「式(クラス定義)」に従って
「形代(かたしろ)」に呪(リソース)を入れて、
そうやってできた「式神(使役神)」を
「打つ」(システム内で利用可能にする)だけだ。
難しいこっちゃない。冷静に考えれば、
だいたい同じ結論に至ると思う。
もちろん解釈には違いはあるだろうが、
それは「他人にどう説明するか」の話であって、
最終的には「どういうふうにコードで表現するか?」の
話でしかない。
「とりあえず動けば勝ち」なんだから。
2021/08/17(火) 13:40:25.96ID:RFnENn6b
>>356
思い出した。

こういう衒学趣味丸出しの意味不明な文章に酔ってる奴、
昔のJava界隈にはいっぱいいたねw
2021/08/17(火) 21:37:33.31ID:FOI2vCqX
デフォルトコンストラクタのありがたい例って何ですか?
参照の場所だけ準備して何もしないとうれしいという場面が思いつかないのですが
359デフォルトの名無しさん
垢版 |
2021/08/17(火) 22:01:21.06ID:PmoLxbwT
デフォルトコンストラクタがない時って、動作できるか?
2021/08/18(水) 00:07:38.92ID:T3eK7ore
インターフェースの空っぽメソッド実装とかがようわからん
361デフォルトの名無しさん
垢版 |
2021/08/18(水) 11:22:29.52ID:wv2V9IdH
>>360
インターフェイスとは機能をユーザー側の視点から記述したもので、チンポはチンポということ。
362デフォルトの名無しさん
垢版 |
2021/08/18(水) 13:19:08.95ID:wv2V9IdH
『チンポ』という三文字はそれだけでは無意味たが、チンポがオシッコを出したり止めたり、
チンポがシコシコして人格をおちんちんに乗っ取られてしまったりと、そこからあらゆる意味が生じる。
363デフォルトの名無しさん
垢版 |
2021/08/18(水) 13:23:08.65ID:wv2V9IdH
>>357
メッセージングとは具体例を挙げれば、トイレでチンポからオシッコを出したりオシッコを止めたりすること。
364デフォルトの名無しさん
垢版 |
2021/08/18(水) 16:37:12.37ID:XbsD54oj
>>360
言語によるけど、Java だと多重継承ができないので、
「こういうメッセージが来たら、こういう型の値を
返せ」という約束事がインタフェース。
だから、実装はしなくていい。
抽象クラスだと、複数のインタフェースに対応してて、
とはいえデフォルト実装とかはサボッているので、
継承して実クラスを定義しようと思うと
足りないメソッドは実装しないといけない。
2021/08/18(水) 17:34:59.49ID:mq7j6UtS
>>360
分からないのはたぶん意味論(何の意味があるか?)を考えているから。
意味論を考えるのは無意味だ。

エンジニアが考えるべきなのは「何に使えるか」
それを知るのは実際の用例を見るのが100の説明を聞くより早い。
実例を見ずにそれを理解できるのは特別頭がいい人だけ
366デフォルトの名無しさん
垢版 |
2021/08/18(水) 18:38:28.79ID:NT9VogPV
プログラムの意味論はプログラムと数学の関係を研究するものだよ
なんの意味があるかを意味論とはいわないよ
367360
垢版 |
2021/08/18(水) 20:46:53.20ID:Sk2jJRm7
>>361
あらがとう排尿機能とか射精機能かな

>>364
多重継承とか抽象クラスとかまだまだ意味不

>>365
どう使えるかというか、コントローラーのボタンとか
ユーザーインターフェースとしてインプリメントして使いたいんだけど、書き方が分からない。
368デフォルトの名無しさん
垢版 |
2021/08/19(木) 08:42:33.53ID:qaty0bPV
>>367
> 多重継承とか抽象クラスとかまだまだ意味不
オブジェクト志向は実装レベルの話が主なので、
実行順序依存なのかイベント駆動なのかという
ところから考えたほうがいいと思う。
> どう使えるかというか、コントローラーのボタンとか
> ユーザーインターフェースとしてインプリメントして使いたいんだけど、
> 書き方が分からない。
言語によるが、そういうイベント駆動の場合、
各機能がバラバラにあって全体の流れがわかりづらい。
ペーパープロトタイピング(要するにお絵描き)で、
個々のアイテムにどういう操作が行われたときに
何をするかを整理し、
「いま、何がどうなっているか」(状態フラグ)を網羅し、
こふたつを表にして(「デシジョンテーブル」といって、
アセンブラや C で制禦系のプログラムを書く時代からあった古い手法だ)、
それを参照しながら分岐条件の先を埋めてゆくというのが
うちら年寄りの手法だ。
最近になってもっと楽なコンセプトとかツールがあるかもしれないので、
開発環境に詳しい人に話を聞いてみるのもいいかもしれない。
セガのゲームプログラマーだった平山尚さんの本なんかは
評判はいいらしいが、やたら厚いんだよな。
途中まで読んだが「本を読むよりコードを漁ったほうが楽そうだ」と
思って諦めた。
2021/08/19(木) 15:48:49.10ID:rGMWolva
平山尚のセガ本は、
C++・オブジェクト指向・3D プログラミングの3つを、1冊で説明しようとした本で、
日本の賞も取ってるけど、

漏れら、10言語以上やってる者から言わせると、その試みは失敗している

例えば、概念・プログラミング自体を最初に、C++で学ぶ必要はない。
最初は、Ruby とか簡単な言語で学んでおいてから、C++へ転向した方が簡単

C++, 3Dも、個別の本で学ぶ方がよい。
セガ本は、3つとも中途半端で、勉強にはならない
370デフォルトの名無しさん
垢版 |
2021/08/19(木) 17:13:31.41ID:qaty0bPV
>>369
その
> セガ本は、3つとも中途半端で、勉強にはならない
つーのが問題なんだよなぁ。
昨今の若者に、Knuth の
『THE ART OF COMPUTER PROGRAMMING』から
はじめろ、つーのは無理がありそうだというのは
> 漏れら、10言語以上やってる者
の世代にしてみれば、ちょっと無理な気がする。
ジャッキー・チェンのカンフー映画の時代じゃ
ないからなぁ。
ミヤギさんじゃないけど、「えっくす・おん、えっくす:おふ。
しふと・いん、しふと・あうと。どんと・るっく、はんど!
るっく・おん、すくりーん!!」みたいなのは、
GUI や スマホ全盛の現代では、どうだろうかと思う。
キーボードが打てなくて辞めてく新人がいる時代だからなぁ ……
371デフォルトの名無しさん
垢版 |
2021/08/19(木) 17:16:45.10ID:qaty0bPV
スマン。
「ぶっちゃけ始めるのにいい言語て何 part6 」
https://mevius.5ch.net/test/read.cgi/tech/1628771431/
と、ごっちゃになっていた。
372369
垢版 |
2021/08/19(木) 18:23:01.55ID:rGMWolva
セガ本は、C++・オブジェクト指向・3D の3つを、1冊で説明しようとした、平山尚の自己満足。
こういう本で分かる人は、いない

小学生に、大学生の教科書をやらせているような感じ

小学生なら、Ruby とか簡単な所から、
ファイル操作・テキスト処理、オブジェクト指向などから始めなければ、無理

今まで、3つの事を1冊で学べる本は、世界中で無いよね。
だから、僕が書きました

と言うのは、単なる自己満足の発表会。
誰も、この本では学べない

小学生に教えるには、猿並みにものすごく簡単な所から、始めなければならない
373デフォルトの名無しさん
垢版 |
2021/08/19(木) 18:32:41.93ID:m3tJTxvg
>>372
>小学生に教えるには、猿並みにものすごく簡単な所から、始めなければならない

ならば「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
374デフォルトの名無しさん
垢版 |
2021/08/19(木) 21:08:38.31ID:qaty0bPV
>>372
> C++・オブジェクト指向・3D の3つ
「その原理をウエイトレスに説明できないのであれば、
それはウエイトレスではなく、その原理に問題があるのだ」
アーネスト・ラザフォード。
すなわち、C++・オブジェクト志向・3DCGのうち、
少なくとも一つは間違っていると思われる。
2021/08/20(金) 00:11:47.52ID:Lkecw4GA
秀和システム『ゲームプログラマになる前に覚えておきたい技術』
買いましたし、お世話になるどころか、まだ作れてません

前半C++:コンピュータに司令を出す書き方を学ぶ
中盤オブジェクト指向:振る舞いとアルゴリズムの方法
後半3D:描き方見せ方、データ保存やエラー対策その他

で、Unityだと

まず3D仮想空間から始まって
あらゆる全てがゲームオブジェクトで成り立ち
C#のスクリプトでコンピュータに司令を出す方法を書きましょう
と逆を辿る
376デフォルトの名無しさん
垢版 |
2021/08/20(金) 00:58:19.30ID:yVpE+f82
オブジェクト指向は何度も出てるけど「人間側の便宜のために
できるだけロボットのように命令に従う”物“(オブジェクト)に
命令を与える型にしましょう」から始まってるから

・命令で動くオブジェクトを組み合わせて大きなものを組み立てる。
・オブジェクトの中ではどのように命令を処理しているか。

というまったく別のトップダウンとボトムアップのアプローチがあって
普通の形の(既存の)「プログラムの勉強」だと下からやって
「最近はオブジェクト指向というのもあります」で終わっちゃうんだよね。
ユニティとかSwiftPlayGroundとか「オブジェクト指向環境で始めるプログラミング」だと
環境で「オブジェクトがあります、命令を与えるとこうなります
命令は中でこう処理されています…」って上から下に教えてく形になるのだけど。
377デフォルトの名無しさん
垢版 |
2021/08/20(金) 17:25:45.17ID:T5ICWOLv
>>372
> 小学生に教えるには、猿並みにものすごく簡単な所から、始めなければならない
3DCGというのは、光学系(カメラのレンズとか)の設計に使われる
「光線追跡法」というものの逆の「視線追跡法」というのが使われていて、
そのモデリングには図形の論理演算とかメタボール・アルゴリズムとか
テクスチュア・マッピングとかが使われている。
このあたりから真面目に教えていたら、小学生にはなんも面白くない。
とはいえ小学生にも手軽に使える CG 作成ツールがあるかどうか、
という話にはなる。
だったら、LOGO のタートル・グラフィクスあたりからはじめるのも
ひとつのアプローチではないかと思う。
378デフォルトの名無しさん
垢版 |
2021/08/22(日) 07:54:20.75ID:0Cz6ueFz
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html

第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
379デフォルトの名無しさん
垢版 |
2021/08/22(日) 13:53:24.82ID:l91cVjvi
>>378
おまいは大川隆法の信者か wwww
380デフォルトの名無しさん
垢版 |
2021/09/05(日) 18:02:15.25ID:q6bsFI1P
https://mobile.twitter.com/migimagari42/status/1431666280969297925

ちん
@migimagari42
某食われるパンの替え歌で

勃起のちんぽが ちんちんちん♪
エッチな巨乳 ぶるるんるん♪
パイパン♡ ツルマン♡ズブ濡れマン♡
ちんぽが大好き パンパンパン♡
アンアンかわいい 喘ぎ声♡
シコシコ擦るよ おちんぽを♡
チンポが ギンギン! たんじろう
それイけ♡ ぼくらの 杏子さん♪
https://twitter.com/5chan_nel (5ch newer account)
2021/09/06(月) 07:15:34.02ID:FfG+5nxw
まずは作業者というクラスを作る
そしてチンコというクラスを作る
作業者とチンコはメッセージをやり取りをしながら業務を行う
382デフォルトの名無しさん
垢版 |
2021/09/23(木) 11:55:02.38ID:1TSTqED5
クラスAのプロパティをクラスBから参照するときに
どのオブジェクト指向言語でもクラスAを事前に実体化する必要がありますか。

その場合、クラスBのブロック内で実体化を行うステートメントを
記述するのは正しいやり方でしょうか。
2021/09/23(木) 14:42:18.17ID:SEFMI9R1
クラスライブラリいくつ覚えれば仕事になるの?
2021/09/23(木) 15:06:24.74ID:+1CY5Q9Y
使うやつ全部
2021/09/23(木) 15:29:01.45ID:YlCU9yCm
>>382
>クラスAを事前に実体化する必要がありますか。
クラスAとクラスBの依存関係の種類次第

Bのインスタンスの生存期間とは関係なくAのインスタンスが独立して存在していて
且つBのインスタンスは常に有効なAのインスタンスへの参照が必要な場合は
Aのインスタンスを事前に生成する必要がある
2021/09/24(金) 04:27:32.27ID:5RECe5Rp
>>382
どうせネタだろうけど。

そんなの考えるだけ無駄。
そもそも「プロパティにアクセスするためにインスタンス化する」
などという状況はありえない。

そんなのは売上高を知るために企業を興すと言っているのと同じアホな倒錯だw
2021/09/24(金) 11:00:46.86ID:Al9wBdUS
>「プロパティにアクセスするためにインスタンス化する」
誰も言ってないことを持ち出して意味のない批判をするのは倒錯したアホw
2021/09/24(金) 20:21:22.48ID:S1b7rQAS
>>385
こういう依存関係の感覚って1年生で身に付けるべきものだと思うんだけど
数年やってても身についてない人多いよね
2021/09/25(土) 23:05:55.03ID:eMNy88mX
>>383
自前で作ってもええんやで
390デフォルトの名無しさん
垢版 |
2021/09/28(火) 22:31:02.43ID:mkxQja70
>>382
クラスとはちょっと違うかも知れないけど、VBAは標準モジュールというのがあって、それで作成すればインスタンスを作成する必要がない。というかインスタンスが作成出来ない。

あと、こんな例出さなくても
VB.NetなんかもSharedで宣言した奴は別にインスタンスを作成しなくても使えるんじゃなかったっけ?
2021/09/28(火) 23:06:07.60ID:CtuWEcAo
皆さん類(class)と実例(instance)の違いをちゃんと把握しましょう
392デフォルトの名無しさん
垢版 |
2021/10/03(日) 07:15:15.05ID:FX/m517v
AddAplusB(A,B)

は共有のサブルーチンで一個あってそこにAとBを送れば戻り値が来るだけで
それをいろんなモジュールが使いまわすのか、それはPC内に一個あればいいのか
多くのネットワークからアクセス集中するから各所で必要なのか
それとも、これ自体が戻り値の数値を保持する機能を持っていて
ライフタイムの間、外から書き換えられては困るものなのか…などなど
「その言語の考え方」と「プログラムでの実装」で
サブルーチンだよ関数だよひな形クラスだよインスタンスだよが
入れ替わるのでそのあたりを掴んでおかないと大変なことに。
2021/10/04(月) 10:59:48.55ID:T6a47w3J
>>390
モジュールはC#で言うstatic class
394デフォルトの名無しさん
垢版 |
2021/10/20(水) 19:30:20.83ID:/lgW6vvi
YAGNI (You Ain't Gonna Need It) 直訳は「そんなモン要らんって!」
YAGNIの原則は「機能は実際に必要となるまでは追加しないのがよい」とすること。後で使うだろうという予測
の元に作っても、実際に使われるのはほんの一部。ソフトウェア実装において「予期しない変更」は常につい
てまわり、できるだけ設計をシンプルにするべき。現実の問題に集中して余計なモノを足さない。
それがヤーグニ。
https://jabba.cloud/20180119204314
395デフォルトの名無しさん
垢版 |
2021/10/20(水) 19:35:12.28ID:VyYhhIkP
ヤーグニは少尉だからそんなに偉くない。
396Mb
垢版 |
2021/10/21(木) 16:00:56.43ID:JKBkOCuC
オブジェクト・オリエンテッド言語は、
かつては「算体主導言語」と訳されていた。
本来ならば、「メッセージング」を基本にした
プログラミングにおけるパラダイム、という
コンセプトがあるんですけど ……
システム開発の現場で、いきなり
言われても困るよね?
2021/10/22(金) 03:20:48.16ID:OMPuRiy7
>>394
それは元々考えた人が何を意図していたかはともかく、
そういう風に教条主義的に考えるのも間違っていると思うよw

つまり、変更の可能性や拡張性なんか考えるな、と理解するのは間違っている。
そうではなく、コストを意識しろという意味だと理解した方がいい。

必要になる可能性が極めて低い変更に今高いコストを払うのも馬鹿だが、
今のちょっとの時間の節約のために普通にあり得る変更を想定しないのもやっぱり馬鹿だ
2021/10/22(金) 08:21:37.68ID:vM8ZVLKX
いやそれはそんなレベルの高い話では無いよ
> 余計なモノを足さない
だけが主張
> 普通にあり得る変更を想定しないのもやっぱり馬鹿
拡張性を考慮しなくて良いという話ではなくそれは当たり前とした上で
「求められても居ない蛇足を勝手に付けるな」という話
アレも要るかも知れない。コレも要るかも知れない。と、仕様や要求の無い機能をゴテゴテと盛り沢山にして使い勝手が悪くなり本末転倒みたいなバカな真似をしないでくれ。という主張
親切心も押し付けや考え無しでは仇となる
399デフォルトの名無しさん
垢版 |
2021/10/22(金) 13:33:36.08ID:Jk7oLMFs
>>398
>仕様や要求の無い機能をゴテゴテと盛り沢山にして使い勝手が悪くなり

【PC】「Chromebook」の世界出荷台数が前年同期比75%増--Canalys [ムヒタ★]
https://egg.5ch.net/test/read.cgi/bizplus/1627865731/

PCはChromebookに買い替えた。Windowsみたいに余計な機能が無くてシンプル。
400Mb
垢版 |
2021/10/22(金) 14:15:57.58ID:ti2XTd85
>>398
「KISS」コンセプトには賛成する。
「単純にしろ! 馬鹿者め!」っつーことだよな。
「キープ・イット・シンプル! ステューピッド」
というコンセプトには、基本的に(個人的には、
全面的に)同意する。
2021/10/22(金) 16:06:40.51ID:WVguHJg3
>>397
むしろお前さんみたいに変更の可能性や拡張性を教条主義的に言う奴が多いからYAGNIが言われるわけで…w
2021/10/23(土) 12:55:36.67ID:Vr2VQptT
ポリモーフィズムとか継承を使えているエンジニアなんて2割ぐらいしかいなくね?
このコードをコピペしてくださいとか、DIできてなくて一部システム変わるたびにコードも全部変わるとかザラでしょ
403Mb
垢版 |
2021/10/23(土) 13:11:01.27ID:sCVE0pd7
>>402
> ポリモーフィズムとか継承を使えているエンジニアなんて2割ぐらいしかいなくね?
二割もいるのか!! 5 % 以下だと思っていたんだが ……
リテラシーが向上してるのかな?
2021/10/23(土) 18:04:59.77ID:7e9V8Ufm
>>403
あれっ、恵まれてたんか?
エンジニア9人で3人がTDDしてポリモーフィックも実現できるレベルだったからそんなもんかなと思った
2021/10/23(土) 18:56:48.00ID:ySz1YIYr
どう見ても3割超えてるだろ…
算数もできないエンジニアw
406Mb
垢版 |
2021/10/24(日) 12:33:50.94ID:XB+g3pLb
>>405
単純計算だと三分の一だが、
母数が少ないので統計的に捉えると
どうだろうか。
「ランダムに抽出した九千人のうち、
三千人がポリモーフィックも実現できるレベルだった」
つーんならエビデンスになるだろうが、
それでも抽出に偏りがあるという疑惑は拭い得ない。
たぶん、>>404 は恵まれた職場にいるように
思う。
2021/10/24(日) 20:26:48.22ID:WmGWLr+1
>>406
頻度的にやるとそうなるのは分かるし、理想的な話ができてないのは理解してる
ベイズな推計ということで許してください
甘すぎる初期値だった
エンジニアレベルのヤバさを学べて助かりました
2021/10/25(月) 12:37:11.36ID:S5NrZ3MV
そんなに難しいものなのか?
ハード屋さん的にはごくシンプルなものに感じるが。
409Mb
垢版 |
2021/10/25(月) 14:02:37.70ID:KAqnC0Vx
>>408
確かにハード屋さんにとっては、とてもシンプルな
話なのだ。
だけど、ソフトウェアの初心者には、現今の
「マルチタスク」「マルチプロセス」「マルチスレッド」
とか、「セマフォ」「ランデブー」とかいった概念は、
実体として体感していないので、なかなか理解できないのだ。
昨今のプログラマは「動くコードを吐ければいい」(もちろん、
それがハッカーの存在意義だ)という教育を受けているので、
コンピュータ・サイエンスの方面の知識は、「触れたくないもの」
だったりするらしい。
とても悲しい。
2021/10/26(火) 20:55:28.75ID:gkAeXjyd
肝心なコードは見えなくして生産性を向上させる指向だろ?
今やCOMをくっつけるだけで機能を継承できるようになった
うまいこと考えたものだ...違ったら/すまそん
411Mb
垢版 |
2021/10/27(水) 18:01:44.39ID:RnAKlkdr
>>410
合ってる。
ただ、静的オブジェクトと動的オブジェクトの違いみたいな
面倒臭い部分はあるわな。
あと、命名規則のややこしさとか、いろいろと面倒臭い部分は
あるんだけど、まぁ大規模プロジェクトでもないかぎり、
あんまり気にしなくてもいいように思う。
412デフォルトの名無しさん
垢版 |
2021/10/27(水) 22:03:16.26ID:/jlUgH1V
オブジェクト指向でなんだか基本的なことな気がするけどわからないことがあるんですが

@C#やC++等でモデルビューコントローラー的な実装をする想定
Aモデルのデータレコードは多種なので派生クラスで構成する
Bビューでモデルを参照する方法
A.データレコードをダウンキャストして中身を見るのはオブジェクト指向に反する
B.データレコードクラスにビュー処理のメンバ関数を追加?
モデルにビューを参照させたくないためのMVCなのでこれもオブジェクト指向反する

なんか根本的に間違ってるんですかね
413デフォルトの名無しさん
垢版 |
2021/10/27(水) 22:17:15.66ID:I3WW5ROx
ビューでモデルを参照するのでなく
ビューでデータを参照する
2021/10/28(木) 03:56:59.95ID:HRV2k6W8
>>412
何を言ってるのかさっぱり分からんけど、
モデルのベースクラス(あるいはインターフェイス)から
ビューが必要なデータを取得できず、いちいち「実体」が何かを意識して
ダウンキャストする必要があるのなら端的にモデルのベースクラスあるいはインターフェイスの
設計が腐ってるだけじゃないの?
2021/10/28(木) 09:47:32.53ID:XVuwIiyB
CがMにくっついてるのは判るが
VがMにくっついてたりするからな
護ってない人は多い
416Mb
垢版 |
2021/10/28(木) 16:05:20.46ID:oLqDK3NN
そもそも、「オブジェクト・オリエンテッド」
(オブジェクト志向)と命名されたのが間違いだったと
いう意見もある。「メッセージング主体言語」あたりが
適当だったんじゃないかい、という意見もある。
(昔は、「算体志向言語」という言葉もあった。
「数学セミナー」とか「bit」とかのバックナンバーを
漁ってくれ)
いわゆる「オブジェクト志向言語」というのは、それほど
ややこしい概念ではないので、そんなに身構える必要は
ないと思っているけどどうか。
2021/10/28(木) 16:42:55.69ID:2CE4NzLf
なんで急に一人だけ的外れなこと言い出すのか不思議
みんなの議論について来れないんなら黙ってれば?
418デフォルトの名無しさん
垢版 |
2021/10/28(木) 17:01:40.41ID:JSUbgG5I
オブジェクト指向そのものは簡単
APIに見当が付けられない程の
学習不足が問題
これは例え話で極端だけど
sound関連にgraphic探すとか
419デフォルトの名無しさん
垢版 |
2021/10/28(木) 18:08:21.86ID:xl5sJvpK
>>416
>いわゆる「オブジェクト志向言語」というのは、それほどややこしい概念ではないので、

ならば「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
420412
垢版 |
2021/10/28(木) 18:30:46.65ID:0bG2eCvc
>>414
設計が悪いとは思うのですが具体的に何がおかしくてこうなっているのかよくわからないです…
具体例はこんな感じです

namespace Model {
class DataRecord {
public:
virtual ~DataRecord() {}
//こっちにstd::string GetPrintfString()=0;みたいな関数を作るべき?
//しかしデータによってどういう表示をするかはViewの方で選びたい
};
class DataRecordString : public DataRecord {
std::string value;
public:
DataRecordString(const std::string& value):value(value){}
const std::string& GetValue()const { return value; }
};
class DataRecordInt : public DataRecord {
int value;
public:
DataRecordInt(int value):value(value){}
int GetValue()const { return value; }
};

class Model {
std::vector<std::shared_ptr<DataRecord>> dataRecords;
public:
//TODO これだとvector自体はconstに出来てもvectorの要素は変更できてしまうのも問題…
const std::vector<std::shared_ptr<DataRecord>>& GetDataRecords()const { return dataRecords; }
};
}
421デフォルトの名無しさん
垢版 |
2021/10/28(木) 18:31:28.63ID:0bG2eCvc
>>420
続き

class View {
public:
void DisplayModel(const Model::Model* pModel) {
for (auto dataRecord : pModel->GetDataRecords()) {
//ダウンキャストしないと中身がわからない
if (const auto dataRecordString = dynamic_cast<Model::DataRecordString*>(dataRecord.get())) {
printf("dataRecordString:%s", dataRecordString->GetValue().c_str());
}
if (const auto dataRecordInt = dynamic_cast<Model::DataRecordInt*>(dataRecord.get())) {
printf("dataRecordInt:%d", dataRecordInt->GetValue());
}
}
}
};
422デフォルトの名無しさん
垢版 |
2021/10/28(木) 19:09:00.84ID:t5V0CZ4D
pythonの場合modelが__str__や__repr__を持ってると考えると理解しやすい
それに倣えばいい
2021/10/28(木) 20:13:35.60ID:oLqDK3NN
いまさらながら思うが、C++ って読みにくいよなぁ。
424デフォルトの名無しさん
垢版 |
2021/10/28(木) 20:21:18.17ID:JSUbgG5I
++が草冠に見えるからcクサと呼べば良い
構文、文法の話は分からない
2021/10/29(金) 17:30:09.50ID:LjeosUPc
「障がい者」や働けない人の気持ちを考えろ(怒)

しかし、リベラルを謳っている新聞社や政党の方が
弱い立場の人への、配慮がないのは何故なのか?
426デフォルトの名無しさん
垢版 |
2021/10/29(金) 21:19:56.82ID:ngxh7ZsC
>>425
手帖持ちの私としては、「障がい者」という表記が嫌いだ。
もともと、「障礙者」(「礙」という字は、「般若心経」にも
出てくる)のが、「礙」の字が漢字制限で使えなくなったせいで、
「碍子」の「碍」(俗字)という字を使うようになった。
ところが「碍」と「害」の字の話がややこしくなったので、
「日本碍子」は「日本ガイシ」に社名を変更したという経緯がある。
こういったことをこまめに指摘することができるのは、
おそらくこの板に集(つど)っている自閉系の人々が
主体だろうと思う。
要するに、
> リベラルを謳っている新聞社や政党の方が
> 弱い立場の人への、配慮がないのは何故なのか?
というのは、「マイノリティは票田(ひょうでん)にならない」
という「小選挙区制と比例代表制」というシステムに問題が
ありそうに思う。
「全国区」じゃダメなのかねぇ?
2021/10/29(金) 21:35:28.59ID:3TpWSL4x
お前の自分語りなんて誰も聞きたくないんだ
それを分かれよガイジ
言いたいことはお前のカーチャンに聞いてもらえ
428Mb
垢版 |
2021/10/29(金) 22:08:56.38ID:ngxh7ZsC
47都道府県で、小選挙区がどれだけあるのか
知りませんが、それぞれに「選挙民」がいらっしゃる
わけです。
でしたら、「一票の格差」なんてことは言わずに、
全国区で投票して「重みづけ」をすればいいだけの話じゃ
ありませんか?
全国の小選挙区それぞれに「重みづけ」をして、「票が余りそうな
選挙区から地方の選挙区に組織票が集まる」みたいなケースは
撥ねてしまえばいいわけです。
もちろん、「国民は馬鹿だから、そんな複雑な選挙制度は理解できない」
みたいな主張はあるとは思いますが、そういう人には
「だったらお前が馬鹿なんだよ」という話にはなりそうです。
「地方自治」というのはそういうもんじゃないと思うのですが、
こんどの衆院選の有権者数と投票数と結果について、
オブジェクト志向に基いてシステム分析した結果が
どうなるのか、という点については、誰かがやってみても
いいように思います。
429デフォルトの名無しさん
垢版 |
2021/10/29(金) 22:21:04.82ID:JYq59BE+
一行ずつご自分で具体的数値に置き換えて
現実的かどうか考えてください
さようなら
430デフォルトの名無しさん
垢版 |
2021/10/29(金) 22:21:16.56ID:AMa+oEYd
Javaの本だけど、スッキリわかるJava入門編の後半に詳しく載ってる
2021/10/29(金) 22:33:10.38ID:72pxJx0Y
>>429
なんかそんな難しいことあるか?
やれるかどうかといえばやればできるだろう
432Mb
垢版 |
2021/10/30(土) 00:24:12.43ID:weWqDpIj
>>431
具体的にやってみると、意外に面倒臭いんだなコレが。
東京都大田区の議会の派閥別のシャープレイ=シュービック指数とかは
けっこう面倒臭かったんだが、自民党の中で会派が割れたりとか
維新に移ったりしたので、非常に面倒臭かった。
あと、新型コロナ感染症の(第二波のときだったかな?)データを
解析したときには、北陸やらなんやら、あっちゃこっちゃで
シーソーゲームみたいなことになっていた。あれは、
ワクチン接種前だったので、実際の感染者数と
PCR の検査数の陽性者数の違いがわからんかった。
プログラムは書けるけれども、データが集まるかというのは
別の話だし、そのデータを入力するといるのも、また
別の話だ。
>>429 は放っておくのが慈悲だと思う。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況