カプセル化は愚かな考え

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/07/29(水) 17:17:58.13ID:u638n5uE
■危険性

かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。

大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。

ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
507デフォルトの名無しさん
垢版 |
2020/08/26(水) 02:35:11.86ID:4xdL/BMO
>>504
>これを使って、1時間の取り込みを数秒に短縮とか、あちこちで改善してきたので

これが見えんのかねw
誰に向かって言ってるのか
「あちこちで」だ
さらに言うと「確実に」だ
まぐれではない

1.そんなことは知ってるが、ゆえに、インデックスがDBエンジンの速さの理由かね?
 (言っとくが、ファイルコピーより遥かに速い)

2.何を言ってるのか分からんw
 ちなみに説明を省略したが、1時間もかかる要件なので、一時テーブルから本テーブルへの
 INSERT SELECTは、腕の悪いSEには無理な複雑さになることもある
 そのFROM句が一時テーブルなのに速いと言ってるんだよ
 というかその他のストアドでも多用するが、速い

あるいは言い方を変えると、インデックスの効いてない状態での速さでも十分速いと言ってる
普通のシングルタスク処理や、OS関連に比べると、とてつもなく速い
という意味
508デフォルトの名無しさん
垢版 |
2020/08/26(水) 02:36:30.08ID:4xdL/BMO
>>506
根拠はその後段に書いてあるはずだがw
まあ昔の記憶なので、ソースはないよ
雑談なので気楽に
2020/08/26(水) 02:38:40.51ID:gA2PDNl8
>  そのFROM句が一時テーブルなのに速いと言ってるんだよ

だからちゃんとアナライズしてどのようにデータを参照しているか調べましょうって
なにもしてないくせに、やってみたら速かったとか遅かったと素人かよw
2020/08/26(水) 02:40:06.77ID:gA2PDNl8
> (言っとくが、ファイルコピーより遥かに速い)

他人が検証できる方法とベンチマーク結果よろしく
主張だけしても説得力はない
2020/08/26(水) 02:40:47.00ID:gA2PDNl8
だいたいインデックスは検索にときに使われるといってるのに
ファイルコピーとか言ってる時点で頭悪いがw
512デフォルトの名無しさん
垢版 |
2020/08/26(水) 02:46:21.84ID:4xdL/BMO
>>511
頭悪いな
取込処理がファイルコピーより遥かに速いんだよ
その理由は?
インデックスがないから?アホかw
インデックスがあるよりはない方が速いのは当たり前だが、ファイルコピーより速い理由は?
513デフォルトの名無しさん
垢版 |
2020/08/26(水) 02:47:55.44ID:4xdL/BMO
>>510
それを言うならこのアホにだろw

483 名前:デフォルトの名無しさん 投稿日:2020/08/25(火) 08:15:35.41 qpVxWgT6
>>481
検索はインデックスが全てです
2020/08/26(水) 02:48:05.51ID:gA2PDNl8
>>512
まずファイルコピーより速いという証拠をだせと
話はそれからだろ

ウソを検証せずに話をすすめることで
事実であるかのように誤認させるテクニックは俺には通じない
515デフォルトの名無しさん
垢版 |
2020/08/26(水) 02:51:23.46ID:4xdL/BMO
>>514
自分でやってみろ
516デフォルトの名無しさん
垢版 |
2020/08/26(水) 02:55:06.46ID:oEB3gdtA
ストアドよりインデックスのほうが速いよってスレが無かったでしょうかね。
517デフォルトの名無しさん
垢版 |
2020/08/26(水) 02:57:46.43ID:4xdL/BMO
ありがちなインデックス教を説得するのは本題ではない

イベントログを解析したことあるか?
特にファイル監査
なんだあの大量のゴミ
不信なアクセスにどうやって気付くんだ
物凄い工夫して視認できるバッチ作ったけど

あれを単純なCSVにするだけでも各方面生産性が随分高くなる
2020/08/26(水) 02:57:58.67ID:gA2PDNl8
>>515
やってみるから、お前がやったことをいえ、

1. RDBMS
2. OS、バージョン
3. ファイルサイズ
4. 挿入先テーブルのスキーマ

お前が何も言ってないんだから、出来るわけなねーだろ
2020/08/26(水) 02:58:27.97ID:gA2PDNl8
> イベントログを解析したことあるか?
> 特にファイル監査

データベースの話なののこれだからなぁ
素人じゃんw
520デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:01:31.53ID:oEB3gdtA
> そしたら「ストアドよりインデックスのほうが速いよ」って。(゚Д゚)ハァ?
521デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:02:09.30ID:4xdL/BMO
>>519
ニワカか
「データベースの話」ではない>>477
勝手に変えるな
「関数型OS」とかいう話が多く出てたから、「DB型OSは?」という、OSの話
2020/08/26(水) 03:04:12.27ID:gA2PDNl8
DB型OS?そんなことばどこから出てきたんだw
検索してもないな
523デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:04:33.30ID:4xdL/BMO
>>518
1.SQL Server
2.任意
3.数十MB
4.任意
524デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:05:47.13ID:oEB3gdtA
私は逆にOS型DBのほうが興味ありますね。
525デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:07:11.25ID:4xdL/BMO
>>522
>>477
> OSについては、SQLの発想はありだと思う
(中略)
> なのでOS自体がDBでできてればなとは思う
526デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:10:39.69ID:oEB3gdtA
イマジネーションの欠如が深刻なんですよ。

つまり、石頭です。

昔は頑固おやじに代表されるように、年よりが石頭だったんですが、最近は若者なんですよ。

頑固おやじというものは、経験に基づいて保守的になっていたものですが、若者の石頭は、イマジネーションの欠如によるものです。
教わったものしかわからない、新しいものを創造できない。
2020/08/26(水) 03:11:54.02ID:gA2PDNl8
OSがデーターベースで出来てるって意味不明w
プロセス管理はどうするんだ?
メモリ管理はどうするんだだ?
528デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:13:47.18ID:oEB3gdtA
プログラマはよく「ggrks」と言いますが、ネットで検索して何がわかりますか?

私の職業では、ネットで検索してわかることなどありません。
出てくるのは宣伝文句だけです。

プログラマは検索してわかるほど簡単なお仕事ですか?
だとしたら、新しいものは生み出せません。

きっと中国人は、検索でわかることなどないと言うでしょう。
だから新しいものはすべて中国からやってくるのです。
529デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:17:12.45ID:oEB3gdtA
最近はよく「エビデンスを示せ」なんて言いますよね。
彼らに示して理解できますか?

彼らが欲するのは文献ですが、文献の中身は一切理解できないでしょう。
違いますか?

それでも、文献を編纂する立場の者にでさえ、気軽にエビデンスを示せなどと言います。
あなたに示して何が変わると言うのでしょう?
530デフォルトの名無しさん
垢版 |
2020/08/26(水) 03:33:08.83ID:oEB3gdtA
反論はありませんね。

DB型OSの良さが理解していただけたようで何よりです。
2020/08/26(水) 06:04:43.21ID:gA2PDNl8
まだデータベースのほうが速いって証拠だせないの?
一体どの環境だったらそうなるのかサッサ言えよ
DB型OSの意味もいわないしw
ねぇねぇプロセス管理は?メモリ管理は?
2020/08/26(水) 07:10:05.97ID:48xzUiDm
精神論ワロタ
533デフォルトの名無しさん
垢版 |
2020/08/26(水) 07:32:21.32ID:y5BtOBTb
>>155
>オブジェクト指向のコア概念メッセージングがなぜ提唱されたか察するに

オブジェクト同士は常に二人称で、「俺」←対話(メッセージング)→「チンポ」。
つまりチンポは独立し自ら考えて行動する別の生き物なのである。

この考え方に至ってからは、オブジェクト指向の理解もすんなり進みました。
上手くオブジェクトを定義して、上手く会話させてやるのがオブジェクト指向
での設計なんだなーと今でも思っています。
https://blog.mah-lab.com/2014/03/18/object-oriented/

チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650

<俺>
「 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。 」
<チンポ>
「 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。 」

まさに独立した人格を有したチンポという、もう一人の俺がそこに現れるのである!

【藤子・F・不二雄】「みきおとミキオ」現在と未来、憧れの入れ替わり生活!
https://www.google.com/amp/s/middle-edge.jp/articles/0izbO.amp
2020/08/26(水) 07:54:58.07ID:WbeMdUBd
DB ベースOSは、BeOSなど失敗の歴史。Windowsでもその計画は頓挫してる。
2020/08/26(水) 08:00:09.84ID:gA2PDNl8
頓挫と言うか試してみて良くなかったってことよね
2020/08/26(水) 09:09:25.88ID:3xqKZ5M9
ファイルシステムのデータ構造はB-Tree
B-TreeはDBのインデックスに使われるデータ構造
OSもDBも性能的には似たようなものじゃないかな
ファイル名にデータを格納するIsseiという伝説の検索システムを思い出した、DBより効率が良いとうたって叩かれていたなあ
537デフォルトの名無しさん
垢版 |
2020/08/26(水) 09:47:45.40ID:sEb98ISo
>>497
洋式トイレに座ってオシッコを出したり止めたりする時、チンポがどうなっているかを確かめる必要無い。
つまりカプセル化とはオブジェクトの独立性であり、チンポはそれ自体が独立した生き物なのであると。
538デフォルトの名無しさん
垢版 |
2020/08/26(水) 09:53:35.94ID:sEb98ISo
オブジェクト指向とは、「繋がっているけれども独立している」という意味である!

オシッコを出したり止めたりする時のチンポは繋がっているが、勃起する時のチンポは独立している!

違うか?

>>18
>オブジェクト思考って何?
>誰か説明して

では「チンポがシコシコする」という日本語表現は、文法的に正しいのか?

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

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

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
539デフォルトの名無しさん
垢版 |
2020/08/26(水) 10:01:20.43ID:GbuOebwM
ちんぽがしこしこ、そんな言語表現あるのか?

クリントンの「不適切な関係」
https://eigo-kobako.blog.so-net.ne.jp/2008-06-21

不適切な関係、そんな言語表現あるのか?

クリントン大統領も、チンポがしこしこしてしまったのか?

ちんぽがしこしこしてしまったのが、不適切な関係なのか?
540デフォルトの名無しさん
垢版 |
2020/08/26(水) 10:02:48.02ID:NYX2/iU2
// おしっこルーチン
俺.パンツを脱ぐ()
while (俺.オシッコ残量 != 0) {
俺.オシッコ残量 -= 俺.チンポ.オシッコを出す()
}
do {
俺.チンポフリフリする()
} while(count < MAX && 俺.残尿感())
俺.パンツを履く()
541デフォルトの名無しさん
垢版 |
2020/08/26(水) 10:34:17.49ID:NYX2/iU2
問題はチンポがオシッコ残量を知らないことだ
542デフォルトの名無しさん
垢版 |
2020/08/26(水) 10:47:15.80ID:4GZ9k+0t
>>540
>俺.チンポフリフリする()

「フリフリ」しているのは、腰であってチンポでは無いぞ?

腰をフリフリすると、慣性の法則で腰とは逆方向にチンポが動くということ。違うか?
2020/08/26(水) 11:16:35.08ID:goOahd89
>>536
>ファイルシステムのデータ構造はB-Tree

その比較はDBのレコード数分だけ1ディレクトリ内にファイルを作成して
それぞれの性能を比較することが前提になるんだけど
意味のある性能比較じゃないよね
2020/08/26(水) 11:21:37.10ID:rqf33yds
データベースに1GBものISOや動画を入れるのは遅い
まあ普通馬鹿げていてやらんがね
545デフォルトの名無しさん
垢版 |
2020/08/26(水) 12:22:26.28ID:DZmLrOoQ
「オブジェクト指向」について解説!

>>88
>こういう認識の齟齬を生みやすいこと自体が
>オブジェクト指向の欠陥
>まず分かりにくい思想があって
>その思想の解釈が人によってバラバラで

オブジェクト指向とは、繋がっているけれども独立しているということ。
例えばチンポは自分の体の一部であっても、チンポは自ら考え自分の意志で勃起してシコシコする。
546デフォルトの名無しさん
垢版 |
2020/08/26(水) 12:26:25.27ID:DZmLrOoQ
>>491
>純粋関数型以外の関数型言語(関数型をベースにしつつオブジェクト指向の機能を付け加えた言語等)も人気

オシッコの時のチンポは関数型、勃起や射精のときのチンポはオブジェクト指向、違うか?
547デフォルトの名無しさん
垢版 |
2020/08/26(水) 12:31:11.46ID:nY6YdJgd
>>476
> ・オブジェクト指向
>  ・メッセージ型 ←これも関数指向

オブジェクト指向のメッセージングは「関数指向」ということだが、オシッコはチンポの役割で、
オシッコを出したり止めたりするのはチンポ、チンポに力を入れたり力を抜いたりするのは俺。
548デフォルトの名無しさん
垢版 |
2020/08/26(水) 12:35:44.35ID:nY6YdJgd
>>105
>そもそもオブジェクト内に状態を持つこと、

チンポは随意筋であり不随意筋である!

>内部状態を操作すること自体がシステムがめんどくさくなったり
>不具合の原因なんだから、そんなこと自体極力やめた
>方がいい。という考え方。

ならばオシッコのチンポと勃起のチンポは別々に分けて考えることが大切だな!

511 デフォルトの名無しさん 2018/10/29(月) 23:32:40.68 ID:LL+W6ENh
随意筋←implements─チンポ─implements→不随意筋
2020/08/26(水) 12:40:14.09ID:RaglZ+rk
40歳童貞「さーて今日も5ちゃんねるで、オシッコ!チンポ!しこしこ!書き込みっと」

こんな感じなんだろうなw
550デフォルトの名無しさん
垢版 |
2020/08/26(水) 12:41:41.42ID:nY6YdJgd
『シコシコ』という擬音はどうでもよい。問題は、

自我    チンポ
↑      ↑   チンポ=自我
チンポ   自我

オブジェクト指向では、この三種類が考えられるということだ。
>チンポ=自我
散歩している時、自分もチンポも所在地は同一である。

https://i.imgur.com/j3uTk1K.jpg

夏目くんの場合は、チンポが自我を圧倒し、体が自然に滝川さんの股間に近づいていったのだ。

『笑ってごまかすな!!』

と言われても、夏目くんは何と言えば良かったのだろう?

    チンポ≫自我

『チンポが自我を超えてしまった』を簡略化して、チンポがシコシコする!

チンポがシコシコしていると(チンポが自我を超越していると)、息もハァハァになる。
チンポがシコシコしている(チンポが自我を超越している)と、顔もアヘ顔になる。
つまりその顔は『チンポの一部』つまりチンポの皮と同じということ。

博士号の肩書きがあっても、STAP細胞のそれは間違いであり科学者として失格。
チンポと自我の関係について、それが間違いということなら、俺も科学者を自称するのを止めよう。
しかしながらあの夏目くんは、笑ってごまかす以外に何と申し上げたら良かったのか。
551デフォルトの名無しさん
垢版 |
2020/08/26(水) 12:43:57.08ID:nY6YdJgd
>>549
「オブジェクト指向」について、他にもっと解りやすい説明が有るというなら、ここに書いてくれよ!
2020/08/26(水) 12:59:22.14ID:CC12ZgHh
>>551
俺が言ってるのは40にもなって
オシッコとかチンポとか、恥ずかしくないのかってことなんだがw
553デフォルトの名無しさん
垢版 |
2020/08/26(水) 13:08:08.30ID:3xqKZ5M9
>>543
そういうことなの?
僕はファイルシステム作ったことないし調べたことないから知らないけど
B-Treeはファイルシステムでファイル管理にだけ使われてるの? ディレクトリの管理は別であるってわけ?
ディレクトリの検索はファイルの検索よりも遅いの? どうなってるの?
554デフォルトの名無しさん
垢版 |
2020/08/26(水) 13:48:42.79ID:xeUirg9t
>>552
>俺が言ってるのは40にもなって
>オシッコとかチンポとか、恥ずかしくないのかってことなんだがw

ならそういうあんたが、オブジェクト指向について解りやすく示せ!
555デフォルトの名無しさん
垢版 |
2020/08/26(水) 13:55:09.22ID:3xqKZ5M9
カプセル化で困るときってトラブったときだよね
この内部のメソッド呼び出せたら調査やリカバリが簡単なのにって思うことはときどきある
副作用がないメソッドは原則公開でも良いかもわからんね
副作用がないようにメソッドを作る技術も大事
2020/08/26(水) 14:00:02.90ID:CC12ZgHh
>>555
もう少し具体的な例を挙げられる(マジレスすると無理だと思ってるw)

内部のメソッドが呼び出せないことで調査ができない場合を聞いてます。
答えられますか?
2020/08/26(水) 14:04:56.62ID:48xzUiDm
流石にそのくらい思い付けよ...
2020/08/26(水) 14:07:56.01ID:CC12ZgHh
いろんなことを思いつくことができる俺がないと言ってます。
反論があるなら受け付けますよ?
559デフォルトの名無しさん
垢版 |
2020/08/26(水) 14:08:16.42ID:NYX2/iU2
副作用ないならそもそもインスタンス化可能なクラスにする必要もない(?)
必要あってクラス化してるなら副作用抑えるといっても限界があるんじゃね
2020/08/26(水) 15:12:25.45ID:goOahd89
>>553
ディレクトリは直下のファイル名と内部IDとのマッピングリストをコンテンツに持つファイル
親ディレクトリから見れば他のファイルと同じ

NTFSだとMaster File Table(MFT)っていう固定長のデータ構造に
ファイル/ディレクトリごとに1レコードの情報が管理されていて
ファイルのレコードを見ればDiskのどこにアクセスすればのかがわかる

/foo/bar.txt にアクセスしたいなら
MFTのルートディレクトリのレコードにアクセスして
ルートディレクトリのインデックスからfooという名前のエントリを探してfooの内部IDを取得する
それを元にMFTのfooのレコードにアクセスしてそのインデックスからbar.txtの内部IDを取得
MFTのbar.txtのレコードにアクセスしてbar.txtの中身が保存されてるDiskの位置を把握して
そこからデータを読み込む

B-Treeはディレクトリの中に多くのファイルがあっても
O(log n)で検索(や追加や削除)ができるようにするため
561デフォルトの名無しさん
垢版 |
2020/08/26(水) 15:54:15.18ID:+lvOcjDi
>>531
触ったこともないようだなw
DBサーバーはサーバーゆえ、セッション管理は当たり前
メモリだけでなく一時テーブルも他セッションから見えない
アクセス権の設定もOSよりフレキシブルかつ堅牢
扱うものがファイルじゃなく重要な大量データなので、そこらへんはOSよりむしろ高性能
562デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:00:46.94ID:+lvOcjDi
そもそも「オブジェクト指向」言いたがるのは開発系にはいない
使ってはいても
むしろ腕がいいほど言わない
言いたがるのは手配師やPMなどの「営業系」
または本格的に開発しない「保守系」
563デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:11:18.17ID:pQkCIJWG
>>562
>そもそも「オブジェクト指向」言いたがるのは開発系にはいない

チンポは随意筋であると同時に不随意筋である!
2020/08/26(水) 16:16:41.70ID:GjEoDtBH
アラン・ケイ? SmallTalkってカプセル化てんこ盛りじゃなかったっけ? 自己増殖していくんだから、カプセル化しなかったらまずいべ。
565デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:16:49.73ID:3xqKZ5M9
>>560
超詳しいですね、ありがとうございます!
566デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:24:12.37ID:+lvOcjDi
>>543
面白い点だね

若い頃、ディレクトリ構造のようなマスタを発想したことがあった
階層が動的だと物凄く重くなる

泥臭いが有限、固定であることが速さの秘訣
型も可変長より固定長の方が速いのと同じ

DB内部では可変長も固定長のように扱うからファイルもメモリも容量がデカい
容量を犠牲に速度を上げてる
容量はさておき、固定の速さを利用する設計思想も「DB型OS」には重要

「DB型OS」では、「A¥B¥C」まで一気に「パス」という名の列に入ってるのか
「A」「B」「C」が「フォルダ1」「フォルダ2」「フォルダ3」という3列に入ってるのか
少なくとも、XMLのような階層表現や、リレーションで動的に無制限に階層を持つ構造にはしない方がいい
「フォルダ1」「フォルダ2」「フォルダ3」は泥臭いが、その方が速度も速く、実は可用性も高い
567デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:25:50.43ID:8+Mp20b2
>>134
>カプセル化とはなにか?超わかりやすく解説します!

俺が寝ている時も俺の知らない時に、パンツの中でチンポが勝手に夢精してましたということだな。
つまりオブジェクトは独立であり、チンポは独立した生き物であり、独立したオブジェクトカプセルなのだと。
568デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:28:13.87ID:4B4pOhxB
>>541
オシッコ残量はチンポではなくて膀胱の働きだからな。それは膀胱からのメッセージングによる。
569デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:30:47.98ID:3xqKZ5M9
へーここは勉強になるスレッドですね
570デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:33:12.61ID:+lvOcjDi
デルファイがクラス型オブジェクト指向だと知らんような素人が
「オブジェクト指向じゃないと駄目なんです!」とか力説するもの(某リクルートの姉ちゃん)

もっと言うと、「クラス型オブジェクト指向」でなく「オブジェクト指向」と言うならば、VBAだってそうだよw
VBAでも「クラス」を宣言できるので、「クラス型オブジェクト指向」としか言いようがないのだが、
継承機能がないので、百歩譲って「クラス型オブジェクト指向」からは除外する約束でもいいが
571デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:48:44.18ID:+lvOcjDi
ところでWindowsがオブジェクト指向なのかというと、設計思想はそうだと言い難い
それは別スレに書いたが、およそ「デスクトップにオブジェクトを置く」感覚ではない
それはMac

オブジェクト指向はいろんな角度で串刺しにできる機能(ポリモーフィズム)を持つが、
それは「串刺しにされても我が道を行く」というオブジェクトの主体性を意味するものであって、
できるからってごちゃごちゃ串刺しすると、物感がなくなる
572デフォルトの名無しさん
垢版 |
2020/08/26(水) 16:56:24.61ID:+lvOcjDi
Macが始めた、なんでもクリック、長押し、ドラッグ&ドロップで表現するのはたしかに串刺しだが
物感を強調するための串刺し

だがWindowsはこれを真似するにあたり、「右クリック」を導入した
物を「右クリック」するとはなんぞや
ここにコマンド思想がある
それは些細なことだが、スタートメニュー、レジストリ、AppDataなど、物感からの乖離が多い
2020/08/26(水) 18:04:34.49ID:CC12ZgHh
>>561

ねぇねぇプロセス管理は?
→お前「セッション管理は〜」

レスしたのに質問に答えられない時点で、お前の負けだ(笑)
2020/08/26(水) 18:06:55.27ID:CC12ZgHh
>>571
> ところでWindowsがオブジェクト指向なのかというと
オブジェクト指向だね

例えばウインドウがそう。実はWindowsは
ボタンやインプットボックスなどあらゆるコンポーネントが
ウインドウとして作られていて、ウインドウハンドルを持っている

基本のウインドウがあってそれを拡張して
コンポーネントが作られてる
もちろん自分で拡張することも可能
575デフォルトの名無しさん
垢版 |
2020/08/26(水) 18:21:13.49ID:oEB3gdtA
一般人は、数学空間に現実の問題を写像して解きます。
直接計算できるようになるからです。

アウアウアーは、現実空間に数学の問題でさえ写像しようとします。
これがオブジェクト指向です。
当然直接計算できません。

天才は、数学空間に写像された問題を計算機に解かせようとします。
これが関数型です。
576デフォルトの名無しさん
垢版 |
2020/08/26(水) 18:24:32.95ID:oEB3gdtA
オブジェクト指向の功績は、アウアウアーでも理解できるモデルを提供したことです。

オブジェクト志向の罪は、一般人をアウアウアーのレベルで作業させることです。
2020/08/26(水) 18:41:31.09ID:CC12ZgHh
このようにオブジェクト指向いう「技術」の問題と「人」の問題を
わざとごちゃまぜにするやつに話を聞いてはいけません
578デフォルトの名無しさん
垢版 |
2020/08/26(水) 18:58:26.90ID:F43MuBwc
インタフェイスと実装を区別せずに議論してるような気がするが、スレの趣旨にあっていないような気がするので他所でやって欲しいと思いました。
579デフォルトの名無しさん
垢版 |
2020/08/26(水) 19:23:43.10ID:Pf4G7zlI
>>577
〈このようにオブジェクト指向いう「技術」の問題と「人」の問題を

チンポは繋がっているけど独立している!
2020/08/26(水) 20:23:35.65ID:4zct0Nww
>>572
今やMacも右クリックありきだけどな
581デフォルトの名無しさん
垢版 |
2020/08/26(水) 20:56:51.93ID:Pf4G7zlI
>>405
>スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、

Rubyとかの所謂「オブジェクト指向言語プログラミング」がここ十年くらいで落ち目なのは、
オブジェクト指向の何たるかを理解しないプログラマーが、オブジェクト指向言語プログラミングと称して、
使い道の無いコードを沢山書いたからだと思うぞ。要らない書類ばかり増えると整理が大変。
582デフォルトの名無しさん
垢版 |
2020/08/26(水) 21:03:47.96ID:Pf4G7zlI
オブジェクト指向とは何かが分からないのに、オブジェクト指向プログラミング言語だと言ったりすると、
何だかこの人頭がイイみたいな錯覚を抱かせてしまう。
パソコンが苦手な人から見れば、パソコンが使えて書類を沢山作る人は頭がイイと錯覚してしまう。

トヨタ式「整理整頓」使わない書類は1日、名刺は1年で処分
https://president.jp/articles/-/16215

どんなに見た目がキレイに書けていても、使い道の無い書類は百害あって一利無し!
2020/08/26(水) 21:10:57.96ID:O4WMLh95
まーた人の話にすり替えてるw
584デフォルトの名無しさん
垢版 |
2020/08/26(水) 21:17:20.18ID:Pf4G7zlI
>>583
チンポは独立した生き物だが?
2020/08/26(水) 21:18:07.21ID:O4WMLh95
オブジェクト指向の話をしろと言ってる
2020/08/26(水) 22:08:44.78ID:7syk/8cI
オブジェクト指向とは何か、関数型とは何か
端的に一言で言える人はいないのか
587デフォルトの名無しさん
垢版 |
2020/08/26(水) 22:16:39.17ID:Ss3hGbOq
何となくイメージはあるけど、例えば多重継承はオブジェクト指向かと言われると多重継承が無くてもオブジェクト指向は成立しうるよなとか思ってしまうし、
結構人によってイメージの持ち方に幅があるような気がするなあ。

教科書的な定義とか解釈とかは進化が止まって化石になってから出来上がるような気がするし。
588デフォルトの名無しさん
垢版 |
2020/08/26(水) 22:25:16.49ID:3xqKZ5M9
>>586
オブジェクト指向とはオブジェクトを物事の中心に据えること
関数型とは引数によって結果が決まる数学的な関数を物事の中心に据えること
589デフォルトの名無しさん
垢版 |
2020/08/26(水) 22:29:30.73ID:NYX2/iU2
プログラムを構成する各オブジェクトは
言わば人間を構成する各臓器
心臓も肝臓もその詳細を知らず命令せずとも
責務を果たしている
2020/08/26(水) 22:32:52.45ID:O4WMLh95
>>587
前にどこかに書いたが、オブジェクト指向=多重継承とかいう話ではなくて
オブジェクト指向を行うのに便利な多重継承などの機能を集めたものが
オブジェクト指向言語なんだよ

多重継承はオブジェクト指向か?という疑問は
for文は手続き型に必要か?なくてもwhileやloopで代用できると言ってるようなもん

多重継承はオブジェクト指向を行うのに便利な機能の1つ
機能の1つでしかないから、なくても成立するのは当たり前
591デフォルトの名無しさん
垢版 |
2020/08/26(水) 23:49:22.94ID:Ss3hGbOq
オブジェクト指向の功罪の「罪」の部分って、
多重継承が原因じゃないかなと個人的には思う。
作るときは便利なんでついつい使っちゃうけど、
メンテナンスするのに非常にしんどくなる。
2020/08/27(木) 00:29:41.97ID:Av3pnrM3
>>589
>心臓も肝臓もその詳細を知らず命令せずとも

人間の体のように個々のオブジェクトの有機的な相互作用によってシステム全体が構築されている場合
ある入力(食べ物/薬/ストレス/運動など)に対してどういう出力が得られるか
どういう副作用が発生しうるかを把握するのが困難

オブジェクト指向で作られたシステムも同じで
オブジェクト間にどういう相互作用があって、どういう風に副作用が連鎖していくかがわかりにくくなりがち
そうならないようにする対策の一つとして関数型の考え方が取り入れられてる
2020/08/27(木) 01:22:50.36ID:aggnfjOi
>>591
多重継承はついつい使っちゃうもんじゃないですねぇ
最終手段として使えれば便利とは思うけど
いつ使うんですかそんなもの
あなた本当に使ってますか?
てきとーなこといってオブジェクト指向ディスってるようにしか見えません
594デフォルトの名無しさん
垢版 |
2020/08/27(木) 01:31:43.23ID:JwVMaeMo
型の多重継承ならJavaでもよく使うけど
2020/08/27(木) 02:11:04.59ID:hkH5l7An
例えば動物クラスを継承して、犬クラスを作るなら自然だけど
動物クラスを継承した猫クラスがあるとして、ペットショップクラスを犬クラスと猫クラスの多重継承で作れないの?というのが初心者
極端すぎるけどこの場合はペットショップクラス内に動物クラスのインスタンスを管理するように作るべきだと思う
2020/08/27(木) 03:26:47.88ID:k1UmMy2p
>>595
自然かどうかはドメイン次第
そもそもペットショップクラスが必要なアプリってどういうものを想定したの?
597デフォルトの名無しさん
垢版 |
2020/08/27(木) 03:36:47.97ID:0TX63Eqy
ライオンクラスを頂点に、底辺は羊では。
2020/08/27(木) 04:29:11.06ID:qjXIX307
動物とか架空の例ばかりで、
実際に多重継承を使った実例をいわないのが
お前使ってないでしょっていう理由なんだわw
2020/08/27(木) 04:29:54.37ID:qjXIX307
あれだな。多重継承をディスるためにわざわざ多重継承が
使えそうな「例」を持ち出してる感100%だ
2020/08/27(木) 10:26:32.28ID:wrfFiWTH
そのクラスに属するメソッドをいい意味でも悪い意味でも結合させてしまうわけで
馬鹿は使うなってことになるわけだよ。
601デフォルトの名無しさん
垢版 |
2020/08/27(木) 11:48:30.05ID:s9fS5Msc
バカが作ると、とりあえず動くかもしれないけど
動作効率や保守性悪くなりがち
となるのは言語・パラダイムを問わず起こり得ること
2020/08/27(木) 11:50:15.78ID:Q9F08mvx
そう。「バカが使うと〜」と言い出すと何にでも当てはまるので
「人」と「技術」の話は分けて考えろといってる
603デフォルトの名無しさん
垢版 |
2020/08/27(木) 12:13:20.64ID:esPfZquD
本来の意味での多重継承は現在では使われて無い
メソッド集や関数集を本体にドッキングさせたいときに使ってる
Javaに実装の書けるインタフェイスが出来たのもその為
Rubyのmix-inはそれ

つまり、ただの構造体にどうやって関数を足すかが、C++での現在の多重継承
604デフォルトの名無しさん
垢版 |
2020/08/27(木) 12:16:36.33ID:XNd4fe+/
>>603
>本来の意味での多重継承は現在では使われて無い

随意筋  不随意筋
  ↖   ↗
   チンポ
605デフォルトの名無しさん
垢版 |
2020/08/27(木) 12:23:27.55ID:R7AbwnBd
>>586
結局はどっちも宣言的プログラミングをする為の手段と言う認識。
手続き型言語のままで宣言的プログラミングをしようとしてオブジェクト指向プログラミングが出来たんじゃないかな。

でも、関数やメソッドにするべき処理は無数(無限)にあるので全ての処理をメソッド呼び出しやメソッドチェーンで記述する事は不可能。
結果としてどんなにクラスやメソッドが増えても全てを宣言的に書けず、どこかに必ず手続き的な記述が必要。

関数型言語は基本的な記述からして宣言的なので全部を宣言的に書ける。
ただ、状態を持たないと言うことはなんでも一から計算するので手続き型言語より遅い処理がある。
(例えば文字列の長さはオブジェクト指向プログラミングでは文字列オブジェクトそのものが生成された時点で文字数を内部に持っているが、関数型言語は必ず数える処理が入る)
2020/08/27(木) 12:27:06.54ID:9DS3XVCn
>>605
バカかよ
win32apiだってウィンドウハンドル渡してるだろ
■ このスレッドは過去ログ倉庫に格納されています