オブジェクト指向ってクソかよPart5

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2019/10/08(火) 15:46:57.38ID:YglSDU9b
無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。


カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

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

一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。

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

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96

前前前前スレ
オブジェクト指向ってクソじゃね?
https://mevius.5ch.net/test/read.cgi/tech/1535085129/
前前前スレ
オブジェクト指向ってクソじゃねぇよ? Part2
https://mevius.5ch.net/test/read.cgi/tech/1539872441/
前前スレ
オブジェクト指向ってクソじゃねぇかよPart3
https://mevius.5ch.net/test/read.cgi/tech/1542884872/
前スレ
オブジェクト指向ってクソじゃねぇかよPart4
https://mevius.5ch.net/test/read.cgi/tech/1556462315/
2019/10/08(火) 16:32:40.81ID:wc9EJfFY
オブジェクト指向はクソじゃなかったよ Part3
https://mevius.5ch.net/test/read.cgi/tech/1542885246/
2019/10/08(火) 16:33:29.66ID:wc9EJfFY
状態管理技術★オブジェクト指向 VS モナド(関数型)
https://mevius.5ch.net/test/read.cgi/tech/1538080434/

[転載禁止] オブジェクト指向を今すぐやってください(c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1414409620/

オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1451927425/

LinuxカーネルはC言語なのにオブジェクト指向
https://mevius.5ch.net/test/read.cgi/tech/1543063194/

C++はクソだがオブジェクト指向がクソなのではない
https://mevius.5ch.net/test/read.cgi/tech/1544632246/

オブジェクト指向以外のメリットを書くスレ
https://mevius.5ch.net/test/read.cgi/tech/1542808008/

オブジェクト指向の活用方法を教えて下さい
https://mevius.5ch.net/test/read.cgi/tech/1395751447/
2019/10/08(火) 21:07:58.90ID:LbrU2ENb
前スレ最後の一ヶ月でドドっと進んだな
2019/10/08(火) 22:15:07.68ID:PABlxMbH
staticおじさん超バカにしてたんだけど
前スレにリンクあったから約10年ぶりに読んでみたらちょっと印象変わったわ
むしろOOを必死に説明しようとしてる人たちの煽り耐性の低さと中身の薄さに驚いた
https://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html
2019/10/08(火) 23:03:10.93ID:Zz7EGsZv
信者は盲目で物事の本質よりも自分が信じた教条や面子が大事だからな
だまされたともしらず
2019/10/08(火) 23:12:45.74ID:Zz7EGsZv
それは、このスレについても一緒
2019/10/08(火) 23:56:30.29ID:5JNTYipx
なにげに1スレが良スレ

staticおじさんのほうが自分がわからないことを認めてル分だけマシ

なにがメリットなのか説明できないのに、
持論を押しつけてくるバカが湧いてくるのは変わらん
2019/10/09(水) 01:01:29.83ID:HOttFWO2
改めて1スレ読んでみた。
身分がヨパラテ書いた批判レスの誤記がやけに目立ったw
2019/10/09(水) 01:06:10.21ID:HOttFWO2
>>9
× 身分
○ 自分

…orz
2019/10/09(水) 04:24:15.79ID:TYyTLU0G
当時はRailsが流行ってたからなんじゃないの
2019/10/09(水) 07:09:04.23ID:V2kL4405
なんで「カプセル化ってクソかよ」ってスレタイにしなかったの?
2019/10/09(水) 09:11:51.05ID:utYAxsvn
>>1のマッチポンプという言葉に触発されてチンポをシコシコするようになったのかな
14デフォルトの名無しさん
垢版 |
2019/10/09(水) 09:20:02.77ID:tHn556Tb
継承・カプセル化・多態のオブジェクト指向三本柱マンのうち最初に倒壊したのはカプセル化じゃなくて継承なんだがな。
やれ継承より委譲だの、継承よりコンポジションだの、オブジェクト指向界隈内外からボッコボコよ。
2019/10/09(水) 09:47:07.00ID:U4YBgj6o
まじかよ2019年にもなってこんなこと言う奴いるのかよ。終わってるな日本。
2019/10/09(水) 12:41:20.40ID:pozjB7/S
>>15
それ3000年前に土器焼きながら埴輪が言ってた
2019/10/09(水) 13:12:12.54ID:2IGAh0bF
最初に倒壊したのは多態じゃないの?
ぱっと見きれいに書けるんだけど、次第にグダグダになる
カプセル化が次かな。setter と getter を使わないと書けない
というところで破綻している
2019/10/09(水) 13:48:29.97ID:i4LeYaG1
>>17
多態は普通に使われてるし、
カプセル化の話に、setter、getterは関係ない
19デフォルトの名無しさん
垢版 |
2019/10/09(水) 15:17:31.68ID:gEtou4VA
完全に倒壊して以後作られた言語が腫れ物に触るように扱ってるのは継承だけ。
逆に言うと他二つは生きてる。
三本柱→二足歩行だから、
おじいちゃんから青年に若返ったとも言える。
2019/10/09(水) 15:38:09.54ID:U4YBgj6o
>>19
いや、継承も普通に使われるから。
さっきから話が飛躍しすぎているのだが、何なの?
何かの記事の引用?
2019/10/09(水) 17:06:48.31ID:kGq1JDkC
まあアレだよね。自分の設計の下手さを
言語のせいにしてるっていうよくある構図
2019/10/09(水) 17:33:28.21ID:2IGAh0bF
>>18
多態がきれいに決まった例を教えてくれ。
グダグダになった例しか私は知らないが

カプセルかは引数経由でしか内部状態の参照、書き換えを
許さないという意味だから、setter, getter の話では?
2019/10/09(水) 17:47:56.44ID:kGq1JDkC
>>22
お前なんか考え方がおかしいぞ。
なんだよきれいに決まるって

既存の物理法則か何かを多態で表現できるかどうかとか
そういう話してるんじゃないぞ

「ソフトウェアを作る時」に多態を使うんだよ。
当てはめるんじゃない。ソフトウェアの設計の話だ

多態の例ならGUIシステムで多用されてるだろ。
各コンポーネントはrender()メソッドを持っていて
各コンポーネントそれぞれのやり方で見た目を描画するとかさ
2019/10/09(水) 17:50:35.35ID:kGq1JDkC
>>22
> カプセルかは引数経由でしか内部状態の参照、書き換えを
> 許さないという意味だから

ぜんぜん違う。

obj.value = obj.value + 1

↑これはカプセル化が行われてるかつ、引数経由ではない内部状態の参照・書き換え方法だ
2019/10/09(水) 18:05:43.18ID:QgTihdwL
だからさー、頭いいやつがGUIのフレームワークとか作るのはおおいに結構だし、
凡人がそのサブクラスで画面を作るのもいいんだよ

ただ凡人がクラスデザインを語るなっつーの
2019/10/09(水) 18:13:03.42ID:QgTihdwL
凡人は画面にボタンとかポトペタすればいいし、
クリックのイベントに業務のロジックを構造化プログラミングすればいいんだよ

ボタンと画面の描画は、フレームワークが適切なイベントで描画してくれるよ
画面とボタンの描画イベントが呼ばれるし、ボタンも画面もウィンドウのサブクラスかもしれないけど
凡人は気にするな
2019/10/09(水) 18:20:51.58ID:U4YBgj6o
>>22
自分は18ではないが...

strage = usb
または
strage = sdCard

string text = strage.read(ファイル名)

みたいな記述はよくやる。
※組み込み開発
2019/10/09(水) 18:23:55.93ID:8dT9XKEA
>>24
カプセル化の唯一無二の定義があるわけじゃないからそこをすり合わせないと。

それにその例はカプセル化が行われると言えるかどうか外からでは分からないよね
↓こういうコードの一部だったら一般的にはカプセル化されてるとは言わないと思う

struct Object
{
int value;
};

struct Object object = {0, 0};
object.value = object.value + 1;

あとRubyみたく'value='メソッドに引数を渡してる糖衣構文と捉えることもできるから
引数経由(メソッド経由のことだよね?)と言えなくもない

object.value=(object.value + 1)
2019/10/09(水) 18:44:13.89ID:kGq1JDkC
>>28
> カプセル化の唯一無二の定義があるわけじゃないからそこをすり合わせないと。

オブジェクトの内部表現とインターフェースを分離させること

この分離により、複雑な内部構造をシンプルに見せたり
インターフェースを変更すること無く、内部のデータ構造を効率のいい形に改善したり
互換性を保ちつつリファクタリングしたりと言ったことが用意になる
2019/10/09(水) 18:54:59.17ID:/s8TKAVY
>>25
凡人とそうでないやつの違いがわからんし
お前も聞くたびに違うこと言うから誰も相手にしなくなったんだろう
2019/10/09(水) 18:56:06.05ID:kGq1JDkC
カプセル化されていれば、インターフェースを変えることなく
内部構造を変更可能になる。

ということは、Rubyなんかは、普通に書いてもそれが出来るので
必ずカプセル化が使われていると言える。
2019/10/09(水) 19:47:12.49ID:U4YBgj6o
>>22
カプセル化はもっと、シンプルに考えた方がいい。
カプセル化の意義は責務分割を行うことに意義がある。
setterとgetterを用意することが本質ではない。
※結果的に、private変数にアクセスするためのメソッドを用意する形になるが、それが本質ではない。

カプセル化する際は、クラスを使う人側の気持ちを考えて実装すべし。
setX,getYというメソッドを並べまくっても使いにくいクラスが出来上がるだけだから注意だ。
2019/10/09(水) 22:25:07.64ID:Nmcqp5OF
何か滑った感のある、新興宗教で頭わいたようなレスだな
34
垢版 |
2019/10/09(水) 23:03:33.40ID:8dT9XKEA
>>29
俺もほぼ同じ理解なんだけど
そうするとgetter/setterは呼び出し側が依存してるインターフェースを変えずに
内部の実装を変更できるようにする目的で用意するものなので
カプセル化を実現する手段の一つに該当するんじゃないの?

ん、あれ、カプセル化にgetter/setter関係ないって書いたのと同じ人だと勘違いしてた
ま、カプセル化 == getter/setterでしょって言われるとそりゃ違うよってなるよね
2019/10/09(水) 23:58:13.23ID:wHURiiUB
継承は間違った使い方が多すぎるから批判されてる
単なるコード共通化とかな
それなら無くしちまえってのが最近の流れでは
2019/10/10(木) 00:06:58.68ID:clBk4+T+
>>34
もう少し勉強したほうが良いよ。getter/setterを別の関数として
用意しなければいけないのはJavaぐらいだから
2019/10/10(木) 00:11:30.44ID:+HH5ew/U
>>35
間違ってるも糞もないと思うんだけど
2019/10/10(木) 00:38:19.01ID:P0sO6qGI
>>36
関数用意しなければいいとかそういう便宜上の問題じゃないだろ
たわけ
2019/10/10(木) 01:48:18.01ID:clBk4+T+
>>38
だから関数を使わない(つまり引数も使わない)で
obj.value = 1 とか v = obj.value が使える状態で
カプセル化できるって言ってんだよ。多くの言語では。

↓ これが間違いだってわかるだろ

> カプセルかは引数経由でしか内部状態の参照、書き換えを
> 許さないという意味だから
2019/10/10(木) 02:06:50.75ID:clBk4+T+
自分で書こうと思ったコードがまんま見つかったので拝借w

JavaScriptの例な
https://qiita.com/hogefuga/items/eefbbf6f4d2ff682c7e0

console.log(object.value); // no value
object.value = 'test';
console.log(object.value); // value: test

↑これは明らかにカプセル化されてる。
(リンク先を見ればgetter/setter経由なのがわかる)

しかし、objectの実装を以下のように変えても全く同じように動く
const object = {value: 'no value'};


ここでなんかおかしな話だなと気づかなければいけない。
クラスのインターフェースは全く変わらないというのに
クラスの実装によってカプセル化されてる or されてない が決定するのはおかしな話。
もちろんそんな変なことはない。両方とも「カプセル化されてる」んだよ。

Javaにおいて、カプセル化するというのは「getX/setX関数のみを使いパブリックフィールドを直接触らないようにすること」
その理由はパブリックフィールドを直接使うと、内部実装を変更したときにインターフェースが変わってしまうことがあるから

だから、Javaでは全てを「getX/setX関数経由でアクセス」すること=カプセル化であるが、
JavaScriptにおいては、パブリックプロパティを直接参照しても、内部実装を変更したときにインターフェースが
変わらないようになってるから、JavaSciprtではデフォルトで全てのオブジェクトがカプセル化されてると言える

このように言語仕様でデフォルトでカプセル化されてる(もしくはカプセル化のための専用の機能がある)言語には
C#、Ruby、Python、PHP等がある。

言語仕様にカプセル化サポートの機能がある言語では、「引数経由でしか内部状態の参照、書き換えない」は間違い。
2019/10/10(木) 02:11:13.44ID:clBk4+T+
ようするに、今話をしてるのは、オブジェクト指向のカプセル化とはどういうことなのか?
という話なのだから、特定の言語での実装の話をするのは間違い。

"オブジェクトがカプセル化されていれば" インターフェースを変えること無く
内部の実装を変更することが可能になる。

言い方を逆にすると、インターフェースを変えること無く内部の実装を変更することが可能であれば
"そのオブジェクトはカプセル化されている" ということ
2019/10/10(木) 05:56:07.99ID:mQOxxhmy
継承は、10年くらい前はmixinだのtraitだの流行ったけど、今やどうでもいいわって感じだな
2019/10/10(木) 08:58:56.73ID:WGsUN34T
1のテンプレ、時代遅れすぎないか?
2019/10/10(木) 09:35:51.74ID:6kYzxc6O
最先端だろ
2019/10/10(木) 22:18:20.63ID:EN4r3i1C
>>40
カプセル化の概念を狭く捉えすぎ
Javaのgetter/setterやRubyのアクセサ、C#のプロパティなんかは
カプセル化を実現するための手段の一つであってそれイコールカプセル化じゃない

それにJSでもRubyでもC#でも直接インスタンス変数にアクセスしてるコードを
getter/setterやアクセサやプロパティ経由に変更した場合に呼び出し側に変更が必要な場合もあるから
デフォルトでカプセル化されてるとか考えるのは間違ってるよ

人にもう少し勉強したほうが良いよとか言う前に自分が勉強しようね
2019/10/10(木) 23:56:14.42ID:2XAtZlBW
…カプセル化じゃない
…間違ってるよ
…勉強しようね
2019/10/11(金) 01:26:24.59ID:cg6Wcsaq
>>46
それな。自分の意見を何一つ言ってないwww
2019/10/11(金) 01:37:36.70ID:cg6Wcsaq
たまにクラスにprivateが無いからカプセル化できないと言ってるやつがいるが、
「_で始まる変数名はprivateとする」という規約を作れば実現可能

C言語でオブジェクト指向をするという話と同じなんだよ。
C言語はオブジェクト指向言語ではないのでクラスなどが無いが
だからといってC言語でオブジェクト指向ができないわけじゃない。

言語機能として、privateやプロパティはカプセル化専用の機能であるが
カプセル化専用の機能がないからと言って、カプセル化ができないわけじゃない。
カプセル化専用の機能がなくとも、「_で始まる変数名はprivateとする」
「publicフィールドを使わずに、関数経由で読み書きする」という"規約"でカプセル化出来る。

関数経由で読み書きするのは、カプセル化専用の機能(の一つ)が無いJavaで
カプセル化するための"規約"に過ぎず、多くの言語では関数経由にする必要がない。

いずれにしろ、カプセル化をどうやって実現するかは言語の機能によって変わるが
カプセル化の概念は、内部構造とインターフェースを分離するして
外から内部構造を直接いじらないようにすること
2019/10/11(金) 07:28:14.10ID:Txg9tUjJ
プログラムの基礎であるメンバのスコープまたは
シンボルの命名規則を使ったアクセス制限規約のこと言ってんのかよ
元々簡単な筈のことなのに説明が下手にくどくて、
煙に巻かれて読んで損したような気分
2019/10/11(金) 08:30:07.55ID:m78/Olsy
>>49
間違い。文章短いのに何もわかってない
いや、短いからわかってないのかw
2019/10/11(金) 12:59:52.11ID:kot4gcq1
larabelとかよくできてるじゃん
2019/10/11(金) 14:21:29.12ID:dN/CgRLR
カプセル化はデータとデータに対する操作をセットにすること

privateでデータを隠すのはデータ隠蔽
インターフェースで実装を隠すのは情報隠蔽
2019/10/11(金) 14:35:13.43ID:QtmRuluN
× カプセル化はデータとデータに対する操作をセットにすること
○ オブジェクト指向はデータとデータに対する操作をセットにすること

データとデータに対する操作をセットにすることは、カプセル化とは関係ない
2019/10/11(金) 14:38:29.98ID:QtmRuluN
privateでデータを隠すのはデータ隠蔽
インターフェースで実装を隠すのは情報隠蔽

そしてカプセル化という概念は、
「データ隠蔽」と「情報隠蔽」を使って実現するもの

privateやインターフェースがなくても規約等で「データ隠蔽」と
「情報隠蔽」相当のことを行うことも可能だが面倒になりやすい。
そのために言語が用意してくれる機能がprivateやインターフェース
2019/10/11(金) 14:42:40.80ID:jSXBX1w1
オレオレ定義の押しつけあいで言葉遊びしてて虚しくねぇの?
2019/10/11(金) 14:45:08.49ID:QtmRuluN
一般的な定義を言ってるんだが?
2019/10/11(金) 15:05:22.26ID:dN/CgRLR
>>53
それどこ情報?
2019/10/11(金) 15:06:27.08ID:dN/CgRLR
>>54
カプセル化の定義は何?
2019/10/11(金) 15:11:03.25ID:dN/CgRLR
ちなみにワイはwikipedia
オブジェクト指向はオブジェクトを大事にします
ってことなので値と操作をセットにすることとは違うよ
2019/10/11(金) 15:24:31.99ID:QtmRuluN
>>57
https://stackoverflow.com/questions/13913174/encapsulation-vs-information-hiding
2019/10/11(金) 15:28:02.10ID:QtmRuluN
>>60のリンク先を更に探すとここにたどり着いた

http://web.archive.org/web/20080906224409/http://www.itmweb.com/essay550.htm
2019/10/11(金) 15:29:01.27ID:mjZX3Aly
読めない(´・ω・`)
2019/10/11(金) 15:30:20.85ID:dN/CgRLR
>>60
僕のが正しいですよね
2019/10/11(金) 15:34:07.32ID:QtmRuluN
いいえ
2019/10/11(金) 15:53:18.86ID:dN/CgRLR
>>64
いいえじゃないが
2019/10/11(金) 15:54:47.89ID:dN/CgRLR
ちなみに僕はJavaのブロンズの資格持ちです
Javaの試験では僕が示したとおりに解答しないと落ちます
2019/10/11(金) 15:56:16.21ID:dN/CgRLR
僕の定義は一般的ですよ
全世界で行われてるプログラミングの最も人気のある試験での模範解答なので
2019/10/11(金) 15:58:39.66ID:dN/CgRLR
そしてあなたはカプセル化を説明できていない
2019/10/11(金) 16:01:06.01ID:dN/CgRLR
カプセル化とは何か?
2019/10/11(金) 16:03:57.37ID:mjZX3Aly
ウインダムとかミクラスとかアギラとか
2019/10/11(金) 16:06:36.86ID:QtmRuluN
>>41で書いたとおり

"オブジェクトがカプセル化されていれば" インターフェースを変えること無く
内部の実装を変更することが可能になる。

言い方を逆にすると、インターフェースを変えること無く内部の実装を変更することが可能であれば
"そのオブジェクトはカプセル化されている" ということ
2019/10/11(金) 16:15:29.39ID:dN/CgRLR
>>71
それ情報隠蔽やで
2019/10/11(金) 16:15:57.04ID:dN/CgRLR
試験落ちてまうど
2019/10/11(金) 16:17:48.83ID:QtmRuluN
>>72
情報を隠蔽することは必ずとも必須ではない
すべてさらけ出していたとしても、
インターフェースを変えること無く内部の実装を変更することが
可能になっていればカプセル化されてると言える。
2019/10/11(金) 16:19:56.39ID:dN/CgRLR
>>74
君の思いはわかったけど独りよがりの思い込みに価値などない、君はJavaブロンズに受からない
2019/10/11(金) 16:20:25.93ID:dN/CgRLR
君は完全に間違っている
2019/10/11(金) 16:21:29.10ID:dN/CgRLR
カプセル化は値と操作の一体化のこと
2019/10/11(金) 16:26:03.75ID:dN/CgRLR
Javaブロンズの前で君たちの浅はかな理解など取るに足らぬ
2019/10/11(金) 16:43:07.90ID:LwZAFcHp
カプセル化おじさんはちからをためている。
2019/10/11(金) 17:10:40.83ID:ALv2Fv/b
どうしてキャプセレチオンしないのよーッ!
2019/10/11(金) 17:48:10.46ID:6SqPsHXs
ところで、ここまでオブジェクト指向をクソだとする根拠があがらないのはなぜ?
オブジェクト指向プログラマーvs誰がとは言わんがオブジェクト指向プログラマー気取り が激突するスレかな?
2019/10/11(金) 17:57:40.40ID:ljKmFHFW
>>81
そもそも、オブジェクト指向にメリットが無いからな
強いて言えば単に費やす時間が無駄なだけ

オブジェクト指向とはソースファイルのどこに処理を書くか?
ただそれだけの技術である

→実はどこに書いたって動く(核爆)
2019/10/11(金) 18:02:01.44ID:dN/CgRLR
オブジェクト指向がクソなのはインスタンス変数の存在のせい

できるだけメソッドの行数を減らすとかインスタンス変数を使わないメソッドはオブジェクト指向じゃないとか巷で言われてるせいでそれを真に受けた意識高い初心者がゴミのようなコードを量産してしまうところにオブジェクト指向の限界を僕は感じましたよ
2019/10/11(金) 18:14:37.08ID:dN/CgRLR
オブジェクト指向で作られたhello worldを見ればわかるがオブジェクト指向は過度な抽象化を促進する抽象化圧力つまりアブストラクションプレッシャリングアクセラレイトがかかるからそれをいなせる胆力がないと使いこなすのは難しい
2019/10/11(金) 18:21:24.34ID:6SqPsHXs
>>83
なるほど、staticおじさんがstaticおじさんになった時の主張に似ているね。

オブジェクト指向の定義はさておき、インスタンス化のメリットはクラスという型から必要な数だけオブジェクトを生成できること。
そのメリットが無いのならJavaやC#のMathみたいにstatic化すればいいじゃんって思うし、オブジェクト指向をクソ呼ばわりする根拠が弱い気がするが...。

実際、自分もMathみたいにインスタンス化が不要であればstaticにするし。
まぁ、staticおじさんみたいに全部static化はしないが。

>>82
まぁ、既存の方法で困っていないのならオブジェクト指向は採用しなくてもいいんじゃないかな?
クソ呼ばわりしたら、なんで?って聞くけど。
コーディングの行数は比較したことがないからなんとも言えないが、オブジェクト指向導入で工数削減なら実現した事例は、いくらでもあるよ。
書いたコードを再利用しやすいのがオブジェクト指向のメリットの一つだからね。
2019/10/11(金) 18:54:22.09ID:QtmRuluN
>>83
× オブジェクト指向の限界
○ お前の友の限界。類友
2019/10/11(金) 20:44:45.28ID:kv91xo2J
細胞が膜で覆われてるのに似てる。
中身のものを直接扱えないのもな。
2019/10/11(金) 20:59:44.57ID:Obz6LqVu
カプセル化を説明するときはリモコンや自販機や車とか、あとお店のサービスで普通例えない?

的外れな例えはむしろ害となりがち
2019/10/12(土) 00:05:00.41ID:hC2MVz5n
変なのがワラワラ湧いてきたな。
オブジェクト指向はまるで池沼ホイホイだな。
2019/10/12(土) 03:38:52.22ID:m58DXjin
カプセル化と継承を同じレベルで考えてるやつがいるからな。
継承は「行うこと」だが、カプセル化は「行うこと」じゃなくて概念。

カプセル化という概念がわかっていて、その概念に従って設計すれば
こういうメリットがありますよーっていう話だから

カプセル化という概念に従った設計をするときに使える便利な道具が
privateやインターフェース。だからといって別に使う必要があるわけじゃない。


多く言語ではカプセル化という概念を取り入れて言語を作っているから、
publicプロパティを使っていても、カプセル化に従うことが出来るが、
Javaではsetter/getterというワークアラウンド(_で始まる名前をprivate変数とするという規約と同じ)が
必要になるが、多くの言語ではそんな事気にしなくてもカプセル化という概念を満たすコードが書ける
2019/10/12(土) 06:02:26.53ID:hC2MVz5n
カプセル化とは何か人によって解釈がさまざまで、よく話が発散するが、
カプセル化を含むオブジェクト指向の害を弾劾するこのスレにおいて
自分の考えこそカプセル化として正しいとか主張すること自体
スレ違いなのは理解できている?
2019/10/12(土) 06:31:54.75ID:1JRUpTA+
腹いてえ下痢だよゲリぃ
グリーンピース食べすぎたわ
2019/10/12(土) 06:34:02.05ID:hC2MVz5n
ボッチしとけよ
2019/10/12(土) 09:27:37.09ID:tUC1lSfU
>>91
カプセル化とは人それぞれである
カプセル化の説明すること事態がスレ違いだ
理解してるかー?
2019/10/12(土) 09:40:03.04ID:PKccBz0E
オブジェクト戦士(バカ)多いな
2019/10/12(土) 09:48:44.50ID:tUC1lSfU
> 変なのがワラワラ湧いてきたな。
> オブジェクト指向はまるで池沼ホイホイだな。

> オブジェクト戦士(バカ)多いな

ここは罵り合うだけのスレかな?
やーい、お前のソースコードs t a t i c!
2019/10/12(土) 10:28:24.31ID:7TGqmTiW
カプセル化おじさんのレス見て思うのは
自分の無知や間違いを認められなくなったら技術者としては終わりだなってこと
歳を取ると老害が増える理由
2019/10/12(土) 10:31:11.04ID:TBjVU2MA
↑このように自分の意見を何一つ言わず、
相手を批難するばかりになったらお終い
2019/10/12(土) 10:33:55.10ID:EMzTIefb
↑このように自分の意見を何一つ言わず、
相手を批難するばかりになったらお終い
2019/10/12(土) 10:37:18.66ID:TBjVU2MA
>>99
俺は意見を言ってるからそれは的外れ
2019/10/12(土) 10:40:44.08ID:Sr/UvC0O
>>97も意見じゃね?
老害の件はわからんが。
2019/10/12(土) 10:41:35.07ID:TBjVU2MA
>>101
オブジェクト指向に関する意見に決まってるだろw
2019/10/12(土) 10:47:40.84ID:Sr/UvC0O
> オブジェクト指向に関する意見に決まってるだろw

???
2019/10/12(土) 10:58:35.93ID:nGOXFHJU
ここはオブジェクト指向のスレなんだから
カプセル化についての主張をするのは正しい

だけど、それは間違いだーっていうだけで
何が正しいのかの自分の意見を言わないのは老害でしかない。

という話だよ
2019/10/12(土) 11:08:34.26ID:6fabclhr
>>104
それな。間違ってるって言うだけなら
何も知らなくても出来る。
2019/10/12(土) 11:17:25.67ID:Sr/UvC0O
てっきり、いきなり現れた奴がブーメラン発言したのかと思った。
直前に>>95みたいなのもいたし。

名無しさんのままだと、誰が何を言ったのかわからん...。
大体、察したが。
2019/10/12(土) 11:55:42.30ID:PKccBz0E
相変わらずオブジェクト戦士はバカばっかりだな
2019/10/12(土) 12:02:36.13ID:68Eagdnq
おじさんってだけで拒否反応や反抗心から若者の意見を理解しない老害扱いするけど、
若者がおじさんの主張に耳を傾けてないのは結局おじさんと同じことしてるよね

おじさんの局所的な経験則やノウハウにも局所解としての妥当性を認めていいんじゃないかな?
銀の弾丸はないんだし

自分は関数型言語は型理論を触った程度の理解をしつつ、
オブジェクト指向推進派だったけど、長いことやってると
確かにオブジェクト指向に疑問を感じるときがある

例えば、複数のオブジェクトで協調動作させようとすると、
クラス内にカプセル化できなくなって、〜コントローラや〜マネージャーとか
どちらかというと抽象的なオブジェクトで溢れかえる設計ってとてもよく見るし自分も書く

C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
オブジェクト指向っていうより関数型的な感じがする
109デフォルトの名無しさん
垢版 |
2019/10/12(土) 12:09:11.67ID:vBnCHMzu
曰く、銀の弾丸はない
でも、金の睾丸は?
2019/10/12(土) 12:24:36.42ID:6fabclhr
>>108
コントローラーやマネージャーがが
クラス内の内部構造に直接アクセスするってどういう事?
2019/10/12(土) 12:50:30.72ID:7TGqmTiW
>>104
>だけど、それは間違いだーっていうだけで
>何が正しいのかの自分の意見を言わないのは老害でしかない

いい歳したおっさんが二元論でしか物事を考えられない
答えを教えてくれないから「自分の意見を言わない」といって批判する
こういう考え方が老害そのもの


>>108
カプセル化おじさんとブロンズ君のやり取り見れば主張に耳を傾けてないのはどちらか明らか
中身の良し悪しは別にしてブロンズ君はカプセル化おじさんの意見に耳を傾けた上で論拠を持って適切に反論してる
かたやカプセル化おじさんは…
2019/10/12(土) 12:51:06.93ID:6fabclhr
>>111
だからそんな話じゃなくて
オブジェクト指向関連の話をしろよ
自覚ないのが一番たちが悪い
2019/10/12(土) 13:25:11.09ID:PKccBz0E
オブジェクト指向にメリットなんかねー時点で議論など無駄
2019/10/12(土) 13:36:07.11ID:68Eagdnq
>>110
オブジェクトの内部構造に関係ない協調動作に関する処理を
どこに配置するべきかって話

専用のコントローラや専用のマネージャークラスが頻繁に作られるけど、
別のアプローチ(C#のstaticクラスのstaticメソッドとか)が可能なこともあるし、
別のパラダイムも検討する価値あるんじゃないかなと思うようになった

他の例をあげるなら、特殊な数値クラスを作ったとして二項演算子などの
演算子を数値クラス内にカプセル化するべきかって話も
協調動作の問題と重なってる部分があると思う
(ここまで行くと言語側に手を加えるレベルの話になるけど)
2019/10/12(土) 13:50:47.60ID:hC2MVz5n
オブジェクト指向が人の間に広まっていくうちに
どうしてだんだん変なやり方に変わってゆき
非科学的で都市伝説みたいな方法論になってしまったのか
よく分かる流れだな
2019/10/12(土) 14:12:10.68ID:6fabclhr
複雑なものをシンプルに扱えるようにしましょうという
人間の心の話なのになんで科学がでてくるの?
2019/10/12(土) 14:26:06.65ID:Y/6Ne90r
>>108

> C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
> オブジェクト指向っていうより関数型的な感じがする

オブジェクト指向に関数型を適用してはいけないなんてルールは無いと思う。
そんなこと言い出したらOOPする際はラムダ式使うなって話になりそう。

あと、Mathクラスの解釈だが...
自分はMtahクラスみたいにstatic化するべきクラスでも、最初は非staticで設計する。
つまり、こうなる。
Math m = new Math();
int x = m.abs(引数);

でも、これだとstaticおじさんの言うとおり、オブジェクト指向ってしっくりこないんです状態。
※元ネタのstaticおじさんは具体例は挙げなかったが。

そこで、オブジェクト指向プログラマーは気を効かせ、static化する。
int x = Math.abs(引数);

つまり、static化は省略できるものは省略しよう...という、オブジェクト指向プログラマーの気遣い。
そういう解釈でいいと思うよ。

まぁ、どうしても「そんなのオブジェクト指向じゃねえ!」と言うのならオブジェクト指向の型を破ると解釈してもいいけどね。
このスレ的にはOOPの解釈を曖昧にするのは駄目な気もするが、個人的には扱いやすいクラスさえ作れれば何でもいいや。
2019/10/12(土) 14:35:40.11ID:6fabclhr
はぁ?absをオブジェクト指向にするなら
Number n = new Integer(-123)
n.abs() やろ
2019/10/12(土) 14:40:25.05ID:Y/6Ne90r
>>118
ソウダネー。
2019/10/12(土) 14:44:19.05ID:6fabclhr
>>119
そうだよ。Rubyとか勉強してみな
2019/10/12(土) 14:44:35.81ID:hC2MVz5n
>>116
そういいながら、逆にシンプルなものを複雑にして
迷信じみたことを技術の世界に持ち込むから
2019/10/12(土) 14:49:19.34ID:6fabclhr
そうあってほしいと>>121が考えてるだけ
2019/10/12(土) 14:50:23.73ID:Y/6Ne90r
>>120
(うわっ、こいつ面倒くせ)
そんなにMathが気にくわないのなら、俺じゃなくてOracleやMicrosoftに連絡すれば?
別にabsの実装について話がしたかったわけではないし。
2019/10/12(土) 14:50:31.28ID:hC2MVz5n
今まさにオブジェクト指向によってもたらされている混乱から目をそむけないほうがいいよ
125デフォルトの名無しさん
垢版 |
2019/10/12(土) 20:22:58.57ID:BYtPECuz
>>85
>オブジェクト指向の定義はさておき、

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

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

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

違うか?

「胸がドキドキする」は良いが、「チンボがシコシコする」はダメな理由を、50字以内で述べろ!
2019/10/12(土) 20:28:17.23ID:1JRUpTA+
>>125
それは興味深い考察ですね
ちんぽがシコシコするはダメなのですか?
127デフォルトの名無しさん
垢版 |
2019/10/12(土) 20:31:23.42ID:BYtPECuz
つまりオブジェクト指向とは、俺の股間に付いているモノなのである!

                                             
 .              ,                   ャ  ィE5!..             
 ..           ,,.e;〆            .、   w===|====!.     π .e、x&             
 ..          ^~ !      ``=    π     ,, カ. _    _ ̄オ⌒|! `ヘ                  
 .         fラ⌒ ̄l「~~~^.        ,.タ.     .ル .ll ~\_   〃 〃.  ^..                  
 .             .オ..      ,...__,xf~.      ^  f!  、               
 .            '^´         ̄ ̄..                                         
          ..                   l|..       r=キ'⌒..           
 .         `!、        ~~~~~~⌒...    l}                        
           ⌒heィ~.     .+s_、_e.     .^+--w=f   `ヲse、._ _、...     ′     

チンポは独立した生き物であり、本人の意思とは無関係に、自らの意思で勃起してシコシコする!
2019/10/12(土) 20:35:24.78ID:1JRUpTA+
質問に答えてください!
2019/10/12(土) 22:42:46.45ID:RvFyS8G3
人類の歴史を作ってきたのはおじさんだからな
おじさんの言うことを聞いていればだいたい間違いはないが、重大な間違いを犯すのもまたおじさん
130デフォルトの名無しさん
垢版 |
2019/10/12(土) 22:45:21.43ID:BYtPECuz
>>128
だからオブジェクト指向は俺の股間に付いているのだ!
2019/10/13(日) 03:57:42.23ID:3vnN9KRU
だからそれは、糞だってば おじぃちゃん
2019/10/13(日) 09:50:19.58ID:kfwaB+Y7
カプセル化って
中に有るものを見たり使ったり出来ないようにしないと意味が無い
getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
それではグローバル変数となんら変わりは無い

ただそれをどうやればいいのか?
と聞かれるとセオリーや具体的な手法が存在していない

それがオブジェクト指向プログラミングが糞と言われてしまう原因になってる
現状では属人的に出来る人だけが使えるようになってしまっている
2019/10/13(日) 10:07:37.44ID:0tGtu6dL
>>132 の発言を自分がちゃんと理解しているか怪しいのだが...

> getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
> それではグローバル変数となんら変わりは無い

んん?具体例がほしいな。
こういうこと?

class test{
private:
int x;
public:
int getX(){
return x;
}
void setX(int a){
x = a;
}


これってあんまり意味ねーよね?って話?
2019/10/13(日) 10:40:41.09ID:OhlF8Q6H
>>132
まーた間違ってる。

グローバル変数がなぜ悪かというと、プロジェクト全体から
読み書きできてしまうのでどこで参照してるかわからないから。
つまりスコープの範囲が広すぎるという問題。パブリックであることと何の関係もない。

それにカプセル化は、隠さなくて良いものまで隠せと言ってるわけじゃない。
隠すもの(内部構造)と隠さななくて良いもの(インターフェース)を
きっちりワケましょう、それによってメンテナンス性が上がりますという概念

すべて隠さなくていいオブジェクトだって存在する。それはそうするのが正しいので
カプセル化を破壊してることにはならない。隠すべき内部構造がないと言うだけ。
なんで隠してなければ、カプセル化破壊だと思うんだろうか?

getter,setterってまたJavaの話をしてるんだろうけど、
それはJavaという言語にカプセル化を実現するための機能が不足してるから
規約でカバーしてるだけ。他のオブジェクト指向言語であれば
お前の言うgetter,setterが無い言語もある。

お前がオブジェクト指向を理解してない=お前が糞なのであって
それをオブジェクト指向のせいにするな。
あと知識が狭すぎる。Javaしか知らないんだろ。
2019/10/13(日) 10:50:13.80ID:OAJhlsQO
俺も昔はグローバル変数についてそういう認識だったけど

そもそもスコープがどうであれ
ドキュメントに何もねぇ変数を把握する事自体
やってらんねぇよクソッタレって認識に変わった

本質はドキュメントに書いてないことが問題であって
スコープが仕様を形成するものであってはならない
2019/10/13(日) 10:57:17.16ID:OhlF8Q6H
>>135
イミフ。有名なオープンソースのコードを見て良いコードとは
コメントが書かれてないコードだと知ったほうが良いよ。
そんな物無くてもメンテナンスしやすいような構造になってる。
あとスコープが仕様を形成するなんて話は誰もしてない。
2019/10/13(日) 10:57:38.28ID:OhlF8Q6H
× コメントが書かれてない
○ コメントが重要なところにしか書かれてない
2019/10/13(日) 10:59:10.44ID:0tGtu6dL
コメントに頼らなくてもある程度理解できるコードと言いたいのでは?

コメントはあったらあったで助かるよ。
2019/10/13(日) 11:01:53.95ID:OAJhlsQO
>>136
バカじゃん
テメーが考えたコメントをソースに書いてんのか?

コメントってのは設計書の文言をコピペしてこそ意味があるんだよ
ソースにあるコメントで設計書を検索してヒットしない成果物いりませぇん
2019/10/13(日) 11:15:03.63ID:HooVs/ny
設計書に書いてあるなら、どこそこの設計書見れでいいじゃん
コピペ作業に金払わされてるとか、経営者が可哀想でならん
2019/10/13(日) 11:15:55.03ID:HooVs/ny
どこそこの設計書見れって書いてないから、
設計書を"検索"するはめになるわけで(苦笑)
142デフォルトの名無しさん
垢版 |
2019/10/13(日) 11:25:05.37ID:k83gxGBE
>>134
>グローバル変数がなぜ悪かというと、

チンポは独立した生き物であり、自我でコントロール出来るわけてはないからな!
2019/10/13(日) 11:46:53.61ID:OAJhlsQO
>>141
自己流で書いたコメントはそれすらできないからね
2019/10/13(日) 11:54:13.80ID:HooVs/ny
>>143
あの、もしかして、お前が言ってるほうが
「自己流」のやり方だって気づいてないですか?

ぐぐって調べてみてください。
誰もそんなことしてないですよ。
2019/10/13(日) 11:55:34.36ID:0tGtu6dL
なんか、凄まじい話の脱線風景を見てしまった...。
なんで>>135からコメントの書き方バトルに発展するのか...。
146デフォルトの名無しさん
垢版 |
2019/10/13(日) 11:58:21.06ID:MhpUZXHP
やっぱオブジェクト指向ってクソだなw
2019/10/13(日) 11:58:46.69ID:OAJhlsQO
>>144
はぁ?
だからデスマになるんでしょ?
テメーの気持ち悪い親切心で書いたコメントなんかいるかよ
気持ち悪いから早く死ね
重要なのはそのコードが設計書のどこの部分かってことだけだ
2019/10/13(日) 12:00:10.60ID:0tGtu6dL
>>146
具体的理由を述べてどうぞ。
呟くだけならTwitterでどうぞ。
2019/10/13(日) 12:46:04.52ID:3vnN9KRU
スレでさんざ書いてきたことだし
うえの議論のずれっぷり見ても十分理由だろう
2019/10/13(日) 12:55:49.57ID:3vnN9KRU
弊社にもいたよ、独特のオブジェクト指向論を持ち、
変な理屈こねて、これぞオブジェクト指向だと自説を押し付けたり
他人を批判したりして、チームの仕事を停滞させ
そのくせ、プログラムの開発をしてもらうとロクなコードが書けず、進捗が遅くて、
継承とメソッド呼び出しスパゲティーでバグだらけ
直る見込みがないので悪いけど間接部に移動してもらった。
2019/10/13(日) 12:57:06.58ID:0tGtu6dL
いや、自分はさっきから議論がズレすぎてなんでOOPがクソ扱いされるのか未だに理解できないのだが。

台風が来た(わかる)→台風で死者が出た(わかる)→首相が悪い(は?)

並みに飛躍しすぎて意味不明なのだが。
どさくさに紛れてOOPをクソと結論付けるのはやめろよー。
2019/10/13(日) 13:00:05.28ID:0tGtu6dL
>>150
うん、それはお気の毒に。
まぁ、そういう人はいるよね。このスレにも。
でも、それを根拠にOOPをクソ扱いするのは違うと思うんだ。
そもそも、そいつ自体がOOP理解しているか怪しいし。
2019/10/13(日) 13:00:24.46ID:3vnN9KRU
いままでのレス読んで理解できないのは
読解力や個人の能力の問題。
それこそしらんがな
2019/10/13(日) 13:12:03.31ID:3vnN9KRU
>>152
そだな、そういう痛々しい人の問題は別にしても

オブジェクトにどのような害があり、それを使ってソフトウエアのアーキテクチャ・構造の表現がしにくくて
大規模で複雑なシステムの構築上、人間が理解しにくいものが出来てしまうか
さんざ書いてきたが、読んでねーか、まともなあたまをもってねーか、、、

痛々しい人の問題はその上にかぶって存在し、オブジェクトの
局所的な一見便利そうで利点に見えるが
ある程度の規模の構造上 逆に欠点となる方法の押し売りなんだよ

オブジェクトとはなにか、どういうやり方こそオブジェクトとして正しいか
意見の応酬などは論点じゃないんだけれど、
そういう論点好きは、痛々しい人とほぼ同類
2019/10/13(日) 13:22:03.21ID:JXLMY7ke
コメントとコードであっても二重管理になって
同期が取れなくてトラブルのもとになるというのに
設計書とコメントとコードの三重管理とか気が狂いそうw
2019/10/13(日) 13:24:19.42ID:0tGtu6dL
>>153
今までのってどこの部分?
安価つけてほしいね。

ついでに、あなたは本当にOOPを理解している上で批判しているのかい?
聞いた話では他の人が書いた自称OOPコードを見てクソだと思ったのでしょ?

是非、そのクソだと思う部分を教えてほしいね。
>>133みたいにコード書いてもいいんだよ?133はスルーされちゃったけど。
2019/10/13(日) 13:25:10.20ID:3vnN9KRU
たとえば、

カプセル化とは何かの解釈の幅によらず、

カプセル化によるスコープやアクセスの管理は、ぱっと見とても有効に見えるが
実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
規模に応じ急激に複雑さをまして
(レキシカなスコープ、エクステント管理に対し)
人間が管理把握しにくくなる因子であることは、
一定の理解を得られているはずだが
2019/10/13(日) 13:26:15.07ID:5t9LL7mJ
そもそもオブジェクト指向なんて数字を上げたメリット説明できねぇんだから
他人を叩きのめすのに使えばいいんだよ

仕組みはどうあれ俺が気に入らないのでテメーは死刑だ
2019/10/13(日) 13:26:18.10ID:3vnN9KRU
>>156
「OOPを理解している上」
そうやってすぐ
OOPの解釈議論に論点をずらそうとする…
痛々しいなあ
2019/10/13(日) 13:27:38.97ID:3vnN9KRU
>>158
科学的技術的な話ではないので
ある意味そういうことだとおもうよ。
2019/10/13(日) 13:33:44.13ID:0tGtu6dL
>>159
これが先に目についたのでこっちから答えるが、当然だろ。
スレタイは オブジェクト指向はクソかよ だ。

オブジェクト指向をまったく理解してないのにクソ呼ばわりはないだろ。
その大前提を崩すと、お前が非難しているのはOOPじゃなくてstaticおじさんの可能性すらあるんだよ?

痛々しい以前に論外過ぎるだろ。
正確な定義は理解していなかったとしても、自分ではこれがオブジェクト指向だという考えくらい持てよ。
2019/10/13(日) 13:40:37.70ID:3vnN9KRU
まったく理解せず色々言うのはよくないが、
オブジェクト指向をまったく理解してないやつなんて
そもそもいるのかよw

それにOOP解釈によらずCでも頑張ってOOP的な書き方をしても
>>157
のような問題はでるんだぜ
細かく派生した、場合によって人さまざまなOOPの解釈の違いによらない
欠点があるといってんだが、読み取れないのか。。。
2019/10/13(日) 13:42:49.52ID:5t9LL7mJ
オブジェクト指向のメリットを定義してよ

って言うといつも逃げ出すじゃん
2019/10/13(日) 13:43:44.18ID:3vnN9KRU
方法論にずれちゃうんだよね
良くて局所的なメリット論
2019/10/13(日) 13:43:50.79ID:bBavR94N
>>158
> そもそもオブジェクト指向なんて数字を上げたメリット説明できねぇんだから

どのような数字を上げれば良いのですか?
オブジェクト指向以外で、数字を上げたメリット説明してるものを
参考として教えて下さい。
2019/10/13(日) 13:44:20.01ID:bBavR94N
>>163
管理しやすくなるってメリット言っても
数字言えって言って逃げてるじゃんw
2019/10/13(日) 13:45:47.26ID:3vnN9KRU
小さいプログラムだったらな。
2019/10/13(日) 13:46:22.87ID:5t9LL7mJ
>>166
だってそれお前の感想止まりじゃん
169デフォルトの名無しさん
垢版 |
2019/10/13(日) 13:47:20.41ID:k83gxGBE
だからオブジェクト指向は俺の股間に付いているってことなのさ!
2019/10/13(日) 13:48:14.16ID:3vnN9KRU
>>169
そうか、それでOOPはクソなんだ。
納得
2019/10/13(日) 14:01:26.96ID:0tGtu6dL
>>163
逃げた覚えはないけどな。

まぁ、いいや。俺の意見だが。
思い付くメリットを列挙するとこんな感じだ。
(1)責務分割を行うため各コードの役割が明確になる。
→共同開発時、作業分担がしやすくなる。
→不具合が発生したとき、どこが悪いのか明確になる
(2)必要な数だけオブジェクトを複製できる。
→例えば...組み込み開発だが、USBオブジェクトがあったとして、USBポートを一つから四つに増やしたいとき
Usb usb[] = new Usb()[4];
といった記述で増やせる。
(3)ポリモーフィズムが可能
Storage s = new Usb();
...
s = new SDCard();

SDカード・USBの違いを区別することなくアクセス可能。
s.read(ファイル);

他にもメリットは腐る程あるが、そこは自分で調べてくれ。てか、質問スレでどうぞ。
2019/10/13(日) 14:03:55.40ID:0tGtu6dL
>>166
数字?なんだそりゃ。
非OOPの品質が1ならOOPの品質は10

これでいい?納得した?しねーだろうなぁ(投げやり)


スマホ入力つらい...PCもってくるか...
2019/10/13(日) 14:08:17.56ID:3vnN9KRU
>>171
(1)はstaticの利点でもあるな
(2)はOOPの話じゃないだろ
(3)は何が言いたくて何が利点だかよく分からないけど、
 関数の共通化できますってことか?OOPにかぎらんだろ

長文乙だが、読んでて気がついたは
あんたが書いている程度の規模のプログラムだと
何のパラダイムでも大して管理は変わらないと思う
何でこのレベルのひとが「OOPを理解している上で」とかえらそうなことを言うのかの方が疑問
2019/10/13(日) 14:09:33.40ID:3vnN9KRU
>>172
いいよ持ってこなんで。
話を聞くだけこっちの時間の無駄
2019/10/13(日) 14:11:43.73ID:0tGtu6dL
>>173
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなる因子であることは、
> 一定の理解を得られているはずだが

こんな意味不明な発言をする人に言われたくねーです。
2019/10/13(日) 14:15:29.59ID:3vnN9KRU
>>175
これ分からないんだったら単に不勉強だと思う。
ここ数年間のソフトウエア工学の進歩を眺めてりゃ分かる程度のこと。
まぁ、多くのITエンジニアがやは不勉強なんだが。
不勉強で理解できないのは自然なことだ、しょうがない
177デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:20:32.14ID:r98+wKYs
>>173
> 人間が管理把握しにくくなる因子であることは、
> 一定の理解を得られているはずだが

ちんぽは本人ですら管理できない独立した生き物だが?
2019/10/13(日) 14:22:28.82ID:3vnN9KRU
>>177
そのうち、年取ると小便にしか使わなくなって
逆の意味で言うことを聞かなくなるから
心配要らないよ
2019/10/13(日) 14:24:26.49ID:0tGtu6dL
>>176
> 実は大きな弱点を持っていて、依存のハブみたいな役割を果たし、
> 規模に応じ急激に複雑さをまして
> (レキシカなスコープ、エクステント管理に対し)
> 人間が管理把握しにくくなるあることは、
> 一定の理解を得られているはずだが

なんでカプセル化がこの問題に繋がるのか説明してくれる?
コード書いてほしいな。或いはもう少し具体的に説明してくれないかな?
飛躍しすぎてわけがわからん。
2019/10/13(日) 14:28:09.59ID:3vnN9KRU
>>179
過去スレでもさんざ書いたんだが
自分が不勉強なくせに、5chにでまた長々かけってか、、、
子供電話相談室じゃねんだが。。。

まずプログラミングの基礎である
レキシカなスコープ、エクステントは
分かるよね?
2019/10/13(日) 14:28:12.58ID:zjKLJs6/
は?
全くわかんね
書いてあることがどうとかってより
まず、

どうなるとオブジェクト指向なの?
182デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:29:28.54ID:MhpUZXHP
歴史家なスコープww
2019/10/13(日) 14:29:31.33ID:3vnN9KRU
あとオブジェクト指向のもたらした依存の複雑化する問題は
理解しているよね?
2019/10/13(日) 14:31:24.11ID:3vnN9KRU
>>182
ごめんごめん、受けた?
○ レキシカルなスコープ
2019/10/13(日) 14:31:33.43ID:0tGtu6dL
知ってる。そんなレベルの話ではなく、なぜ、そこに問題がでると思っているのかの話。
レキシカなスコープという時点で何かを感じるが。
2019/10/13(日) 14:34:25.96ID:3vnN9KRU
>>185
ダイナミックスコープがまずいのは分かるだろ?
いわゆる旧MS BASICのような。

では大規模ソフトでレキシカルスコープがなぜ大事か分かる?
ここ40年くらいの間に普及したんだけれど。
2019/10/13(日) 14:34:33.36ID:0tGtu6dL
>>183
これが抽象的過ぎてわからん。
なんで、毎回曖昧な表現使うかな...。
2019/10/13(日) 14:38:29.75ID:0tGtu6dL
>>186
あっ...ここでもうわからんわ。
ダイナミックスコープがまずい?
2019/10/13(日) 14:39:06.61ID:3vnN9KRU
カプセルかってのは何やんのよ。
細かい解釈の違いは、頼むから横においておいてよ。

1) 型クラス
2) メンバのアクセス制限修飾
こきらまでは旧来のCもできましたよと。いいよね。
3) アクセスmethodを設け、calssまたはインスタンススコープを持たす
そして「動的な」が好きな人は
4) 動的インスタンスの生成・消滅
 ⇒エクステントはレキシカルとは結びつかず独自に管理せなあかん
2019/10/13(日) 14:39:31.69ID:bBavR94N
>>168
> だってそれお前の感想止まりじゃん

俺の感想じゃなくて世界の感想だってw
2019/10/13(日) 14:41:40.12ID:zjKLJs6/
>>190
なにかそういうデータあるんですか?
2019/10/13(日) 14:43:21.45ID:3vnN9KRU
>>188
スコープダイナミックって言うことは、外から見える変数ばっかりで
プログラムがちょっと大きくなっただけで、局面局面で意識・管理せにゃならん
変数や状態が増大しくみ合わさって入り組んで見えたり、
あるいは実行時に呼ばれる順が変わると変数の内容が変わったり
管理不能になる

昔はそういう言語しかなかった
CやShemeがlexical scoprやextentを導入して革命がおきた
2019/10/13(日) 14:43:42.54ID:bBavR94N
>>191
なんなら、関数型と手続き型と比較してみますか?
データ出してみてください。
194デフォルトの名無しさん
垢版 |
2019/10/13(日) 14:45:01.83ID:0tGtu6dL
C#とnode.js使いだけど、ダウンロードできるオープンソースでオブジェクト指向じゃないコードを落とした経験がまったくない。
たぶん、業種によるんだろうな。
オブジェクト指向と無縁の業種とは無縁だから具体的に何かは知らないけど。
2019/10/13(日) 14:46:16.66ID:zjKLJs6/
>>193
え?俺らが初検証?
2019/10/13(日) 14:47:45.65ID:bBavR94N
>>195
そりゃそうでしょw
2019/10/13(日) 14:48:20.57ID:bBavR94N
そうでしょっていうのは、お前が関数型と手続き型の
データを持ってくるってことね。
自分で検証しなくていいのよ。お前がやりましょうってこと。
2019/10/13(日) 14:57:39.71ID:zjKLJs6/
困ったな
俺はメンバ変数全部publicだし

お前らの組み方だと組むときになって

アレ?このメンバ変数privateだ!


オラ、びっくらこいたーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー!!!!!!!!
設計を根本から見直さなきゃ!


ってシーンがないとダメなんだろ
俺、そういうことねーし
2019/10/13(日) 14:59:44.04ID:3vnN9KRU
>>194 あたりまえやんけ、そんなこと。

そえはさておき >>189 がカプセル化の概要であるとして、
どのような弱点をもたらすか

1つはスコープの問題
メンバにアクセス修飾制限するのは一見いいことのように見える。

複合体型に基づくclassやインスタンスのメンバごとのスコープは
フレームワーク的な中間レイヤの局所では一貫して明確に決めやすいけど
上位の複合的な機能のアプリレイヤに近づくと、型も色々持ち込んだ複合的な
ものになるわけだし、動的に生成したインスタンスを動的なエクステントで使いまわす
ので、メンバへのアクセス制限は局所局所で融通が利かず一貫性を維持しにくくなって
結局多くのメンバをアクセサを用意するはめに陥る。
これは、グローバルなscope、動的ななextentを持つ(名前階層を持った)
多数の変数でプログラムを組むことと同じ複雑さをもたらすでしょ。

そのなかでエクステントの管理もやっていくと、、、(弱点2)
どMかよ>

では >>183 と組み合わさって、さらにどのような弱点をもたらすか…
2019/10/13(日) 15:07:21.54ID:sVfp7HP1
なぜ変数やメソッド(メンバ関数)をprivateにするか?

少なからずの場合それらが試行的もしくは暫定的。
例えばシグネーチャがまだ流動的な場合とか。
自分も含めて勝手に使って欲しくない、少なくとも使われる箇所を完璧に把握しておきたいような場合。
201デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:08:27.27ID:k83gxGBE
>>187
>これが抽象的過ぎてわからん。
>なんで、毎回曖昧な表現使うかな...。

928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く
2019/10/13(日) 15:17:55.04ID:3vnN9KRU
オブジェクト指向のもたらした依存爆発へのカプセル化の関与

多態はmin, max、abs くらいに制限しまずは捨てましょう。

継承はソースの合成レベルで大いなる依存を持ちむので、
特にアプリレイヤでの活用はホント色々問題あるんだけれど、

カプセル化はというと、
1つはdynamic なextentが好まれる点ね。

どっかで作られるインスタンス・メンバが、見通しやすいnest したlexicalなscopeを離れて
浮遊し、どっかで参照、更新されると。。。。
動的にだぞ?お前がやっているような小さいプログラムは何とでもなるかもしれないけどさ、
どうやって追っかけんだよ

二つ目はデータ構造間の依存、三つ目はデータ構造に対するメンバとmethodの依存
たとえば委譲した動的階層化データ構造の中の、ある局面で一見みえないメンバがどこか遠くで
定義され参照され更新され、、、、orz

あるいは複合型クラスのインスタンスとメンバを多階層の継承と組み合わせた場合、、、、、
まぁ言わずもがな経験者は分かるだろう
管理不能なスパゲティ−の出来上がりだわな

こうやってカプセル化した動的な型構造は依存を中継するハブ見たいな役割を果たしてしまうんだよ
このたわけめ
ここまで1から10まで説明させるとは、金取るぞホントに
2019/10/13(日) 15:19:50.19ID:OAJhlsQO
これがネットのどこにも落ちてない口伝でのみ伝えられるという奥義(゚A゚;)ゴクリ


( ゚д゚)ホントニハヤットンノカイ?
2019/10/13(日) 15:23:23.57ID:3vnN9KRU
入門者とえせ講師を中心に日本中で絶賛大流行中だぜ。
もう新興宗教かめ威信か、比科学的もいいところ
2019/10/13(日) 15:23:27.38ID:AoZShAI6
ここでルー大柴が一言
2019/10/13(日) 15:24:41.56ID:bBavR94N
>>199
> ので、メンバへのアクセス制限は局所局所で融通が利かず一貫性を維持しにくくなって
> 結局多くのメンバをアクセサを用意するはめに陥る。

なんでアクセサを用意したらダメなんて思ってんの?
それが外部から触るなら、インターフェース化(≒仕様化)するってだけでしょ
2019/10/13(日) 15:25:44.76ID:bBavR94N
>>202
> 動的にだぞ?

動的ってどういうこと?
参考コード書いてよ
2019/10/13(日) 15:26:22.12ID:bBavR94N
>>202
> の、ある局面で一見みえないメンバがどこか遠くで
> 定義され参照され更新され、、、、orz

参考コード書いてよ
209デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:26:23.31ID:0tGtu6dL
なんだろう、OOPってこんなに難しい話ではないと思ったのだが...
着目点が違うのだろうか。
OOPに関係のない概念まで出てきているような...。

誰か、理解、できた、人、いる?
いや、static/lexical scope、dynamic scope、extent、依存、複合型クラス、インスタンス
これらの用語が全然スッと頭に入ってこないのはなぜだろう。
2019/10/13(日) 15:26:34.66ID:OAJhlsQO
新興宗教じゃん
メリットもねーし
2019/10/13(日) 15:26:45.70ID:bBavR94N
>>202
> あるいは複合型クラスのインスタンスとメンバを多階層の継承と組み合わせた場合、、、、、
> まぁ言わずもがな経験者は分かるだろう

ちゃんと書けよ
2019/10/13(日) 15:27:41.18ID:bBavR94N
>>209
着眼点がおかしくて、たぶん問題を解決するためにオブジェクト指向を使うんじゃなくて
オブジェクト指向の問題点を見つけるためにコードを書いてるんだと思うよw
2019/10/13(日) 15:29:50.44ID:3vnN9KRU
>>206
せっかく内側に入れて隠そうとしたものが、
実は外からアクセスする必要にあるものでしたテヘペロというのは
設計のミスだったり複合型化すべきではないものだったりするじゃない。

それにプログラムが実行中にある局面から見える変数や環境、
あるいは関数は数が多くなっ足り独自のextentを持っていると
急激に人間には複雑に見えてくるでしょ

だからアクセサを多数用意するのh簡単だけどそうした段階で、その後の管理苦労はもう目にみえているわけ

本とここは子供相談室かよ
2019/10/13(日) 15:30:01.27ID:OAJhlsQO
機能一覧
→各機能の処理一覧
→それに対応する関数一覧

を作ってた昔のほうがシンプルだよ
これ以上シンプルなモノがないのに
余計なことしてわざわざ難しくしてる
2019/10/13(日) 15:31:09.74ID:3vnN9KRU
>>207 >>118
このあきめくらめ
2019/10/13(日) 15:32:08.25ID:3vnN9KRU
>>209
不勉強
2019/10/13(日) 15:34:33.75ID:bBavR94N
>>213
> せっかく内側に入れて隠そうとしたものが、
> 実は外からアクセスする必要にあるものでしたテヘペロというのは
> 設計のミスだったり複合型化すべきではないものだったりするじゃない。

お前の設計のミスでオブジェクト指向の問題じゃない
2019/10/13(日) 15:35:57.99ID:3vnN9KRU
>>217
おれはそんなことやんないって、何勘違いしてんだたわけが

>> 206 になぜよくないか言っただけ
2019/10/13(日) 15:36:35.73ID:bBavR94N
>>213
だから具体的なコードを書けと。

あと複雑さをゼロにするものだって思ってないか?
お前がオブジェクト指向に過剰に期待して、
オブジェクト指向はダメだって言ってるだけ。

例えて言うのなら
お前「エアバッグは自動車事故を完璧に防ぐものだ」
お前「でもエアバッグでは自動車事故は完璧に防げない」
お前「だからエアバッグはだめなんだ」
このセリフを一人で言ってるだけ。
2019/10/13(日) 15:36:46.78ID:3vnN9KRU
>>217
もうオブジェクト指向方法論にずらさないで
重箱の隅はどうでもいいので
221デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:37:16.46ID:0tGtu6dL
えっ、私だけ不勉強なの?
どなたか、解説をしていただけないだろうか。
カプセル化がstatic scopeとextent管理に問題を及ぼす解説らしいのですが...。
2019/10/13(日) 15:37:19.69ID:bBavR94N
>>218
俺もオブジェクト指向で、そんな設計ミスしたりしない。

お前の中の想像の人間の話でもしてんのか?
2019/10/13(日) 15:38:22.49ID:3vnN9KRU
>>219
複雑さを増大させるとかいたらすげー極論が出てきたな

論理的なものの考え方が苦手な人がよくブジェクト指向にはまる
2019/10/13(日) 15:38:49.28ID:bBavR94N
>>1214
オブジェクト指向が解決するのは、

> 機能一覧
> →各機能の処理一覧
> →それに対応する関数一覧

これらを組み合わせる時の問題
2019/10/13(日) 15:39:09.70ID:OAJhlsQO
>>221
直訳すると

テメーの態度が気に入らない

ということになる
2019/10/13(日) 15:39:23.34ID:bBavR94N
>>223
俺が言ったことが極論でもなんでも良いから、
何か言い返せよw
2019/10/13(日) 15:39:35.55ID:3vnN9KRU
>>221
そういうのを論理の飛躍という
根拠なく利点と結びつける
2019/10/13(日) 15:40:19.88ID:OAJhlsQO
>>224
いらないよ
普通に関数一覧の関数作ったら終わりやで
入出力も明確や
いいからさっさと作れ
2019/10/13(日) 15:40:22.51ID:bBavR94N
>>227
また何も言い返してないよね?w
2019/10/13(日) 15:41:06.74ID:3vnN9KRU
>>226
子供だな。
>お前「エアバッグは自動車事故を完璧に防ぐものだ」
>お前「でもエアバッグでは自動車事故は完璧に防げない」
>お前「だからエアバッグはだめなんだ」
2019/10/13(日) 15:42:33.39ID:OAJhlsQO
エアバッグの性能を厳密に測定しないとわからないよね
2019/10/13(日) 15:43:54.29ID:bBavR94N
>>228
じゃあ、その関数一覧でさ、

アルゴリズムが、例えば
AES暗号を使ったモジュール
TDES暗号を使ったモジュール
2TDES暗号を使ったモジュール
3TDES暗号を使ったモジュール
みたいに複数あって、

それらを交換可能にするときはどうするのさ?

てんでバラバラの関数一覧があるだけではダメってのがわかるだろ?

それらの関数一覧に対する共通の仕様(=インターフェース)が
定義されれてないとダメ。

それに関する問題を解決するのがオブジェクト指向なんだが
2019/10/13(日) 15:44:24.59ID:3vnN9KRU
そう言う問題以前に
誰も言っていないことを、お前は言ったとか
妄想か池沼かガキの言い分か
2019/10/13(日) 15:44:27.42ID:BlSgSv0G
何を言ってるのかわからないけど、間違いなく3vnN9KRUはオブジェクト指向を有効活用しようとしたことがないのは分かった。
2019/10/13(日) 15:44:55.65ID:OAJhlsQO
>>232
それを機能一覧に含めていつもの流れ
2019/10/13(日) 15:45:25.59ID:OAJhlsQO
>>234
それ、個人の感想ですよね?
2019/10/13(日) 15:45:51.84ID:3vnN9KRU
>>232
そんなもの昔からあるパラダイムで十分実現可能だし
Cなどでそう実装されている
2019/10/13(日) 15:46:17.62ID:bBavR94N
>>235
それを発展させて汎用化したものがオブジェクト指向。
関数があるだけでは、それらを組み合わせる時の問題に対処できない。
2019/10/13(日) 15:47:02.10ID:3vnN9KRU
>>234
分からないんじゃしょうがないだろ
分からないからこそオブジェクト指向の沼にはまってんだろ
2019/10/13(日) 15:47:10.71ID:bBavR94N
>>237
> Cなどでそう実装されている

C言語でオブジェクト指向が実装されてるからなんだっていうのか?
オブジェクト指向とオブジェクト指向言語の違いぐらい理解しろよ。
2019/10/13(日) 15:47:48.95ID:bBavR94N
>>239
お前がオブジェクト指向の沼にハマってるだけだろw
それともまた、「お前の考える想像上の人物」の話でもすんのか?w
242デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:47:53.00ID:MhpUZXHP
スコープダイナミック!www
ギャバンダイナミック!wwwww
2019/10/13(日) 15:49:01.20ID:BlSgSv0G
>>239
ええ!?
わからないのにあれだけ長々オブジェクト指向の批判してたの!?
2019/10/13(日) 15:49:20.72ID:3vnN9KRU
>>240
C言語を使ってオブジェクト指向のようなコードは(回りくどくなるが)記述しよとすればできるが、
C言語にはオブジェクト指向の機能は実装されていない。
他の言語も同様。
基地外だったか…
2019/10/13(日) 15:50:02.58ID:OAJhlsQO
>>243
やはりオブジェクト指向は一子相伝・・・
2019/10/13(日) 15:50:38.20ID:bBavR94N
>>244
オブジェクト指向の機能が実装されて無くても、
オブジェクト指向は出来るんだよ。
2019/10/13(日) 15:50:48.32ID:OAJhlsQO
( ゚д゚)ホントニハヤットンノカイ?
248デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:50:51.04ID:0tGtu6dL
オブジェクト指向の批判として捉えようとしたからダメだったのかな...。
うーん、もう一度読み直してみます。
2019/10/13(日) 15:51:01.54ID:3vnN9KRU
> >>239
> ええ!?
> わからないのにあれだけ長々オブジェクト指向の批判してたの!?

>>234
> 何を言ってるのかわからないけど、

分からないといったのはお前さんID:BlSgSv0Gだよ
2019/10/13(日) 15:52:37.68ID:3vnN9KRU
>>248
いやもう、オレんとこにきた新人の派遣さんだったら
ホワイトボードに書いて教育してあげんだがな…
2019/10/13(日) 15:53:08.23ID:BlSgSv0G
>>249
いや、理解してないのは お ま え。
オブジェクト指向のコードまともに書いたことねぇだろ。
2019/10/13(日) 15:53:08.41ID:OAJhlsQO
まあ、オブジェクト指向は難しいからな
俺が気に入らない奴は全員わかってないことにしてぶっ叩いてやる
2019/10/13(日) 15:53:13.10ID:bBavR94N
>>250
うちも新人の派遣さんに、オブジェクト指向の教育をしてるよw
2019/10/13(日) 15:53:43.10ID:3vnN9KRU
>>253
その新人が気の毒だわ
2019/10/13(日) 15:53:47.27ID:bBavR94N
当たり前だが、新人でない社員は、全員オブジェクト指向を理解しているw
2019/10/13(日) 15:54:57.84ID:bBavR94N
>>254
オブジェクト指向の教育をしてるから、
殆どのフレームワークの設計を理解できるよw

ほぼすべてのフレームワークはオブジェクト指向だからね。
2019/10/13(日) 15:55:00.68ID:OAJhlsQO
お前もお前もお前も全員
オブジェクト指向について素人臭くって見てらんない

唯一俺だけが理解してるし
俺以外のはオブジェクト指向じゃないからね

いいね
2019/10/13(日) 15:56:02.21ID:3vnN9KRU
嘘だろ、w
少なくともお前は理解している気になっている新興宗教宣教師のスパゲティー製造機だろw
白状しろw
2019/10/13(日) 15:56:40.41ID:BlSgSv0G
>>254
いや、お前の新人も可哀想だわ。
staticおじさんの子供を製造しているとか恐ろしいな。
2019/10/13(日) 15:56:54.27ID:3vnN9KRU
>>256
うそこけ、numpyとか山のようにあるだろ
馬脚をあらわしたなw
2019/10/13(日) 15:58:16.04ID:3vnN9KRU
tensorflow もちがう
2019/10/13(日) 15:58:32.53ID:bBavR94N
少なくともオブジェクト指向が世の中の多くを締めてるんだから
それを教えないのは愚の骨頂だよね。
オブジェクト指向を知らなければ、オブジェクト指向を批判することも出来ない。
(デファクトスタンダードの)オブジェクト指向がわかりませんっていう人間が出来てしまう。
263デフォルトの名無しさん
垢版 |
2019/10/13(日) 15:58:49.16ID:0tGtu6dL
なんか、加速やべえ。
オブジェクト指向がクソだと思う人は使わない。
オブジェクト指向にメリットが見いだせる人は使う。

もう、それでいいと思うよ。
2019/10/13(日) 16:00:28.11ID:BlSgSv0G
>>262
では、オブジェクト指向を無視してよかった事例、どうぞ。
2019/10/13(日) 16:00:34.42ID:bBavR94N
https://docs.scipy.org/doc/numpy-1.13.0/user/whatisnumpy.html
> NumPy fully supports an object-oriented approach,

NumPyを使うときも困るだろうなw
2019/10/13(日) 16:00:51.46ID:3vnN9KRU
>>262
使っているよ。
役に立つところにところではね。害のあるところでは使わない。
Java案件は使わざるを得ないかな注意して使うけど、周りかだどんどん汚いものが入ってくる
2019/10/13(日) 16:01:48.07ID:bBavR94N
>>264
なんで俺にオブジェクト指向を無視してよかった事例を聞くの?
オブジェクト指向を批判する人は、オブジェクト指向を理解してないとダメだが、
オブジェクト指向を理解したからと言って、オブジェクト指向を批判する必要はないしw
2019/10/13(日) 16:03:48.79ID:3vnN9KRU
>>265
中で使っているんだよ。それをアプリレイヤでは演算子で使う。
なのでOOP的な書き方とは一線を画している
2019/10/13(日) 16:05:12.80ID:bBavR94N
>>268
急に「NumPyはオブジェクト指向を中で使われてる。」と
オブジェクト指向は使われてることをアピールしてどうしたの?w
2019/10/13(日) 16:05:53.03ID:3vnN9KRU
NumPyのIFは手続きと演算子でOOPSが隠されているからさ。
2019/10/13(日) 16:08:35.81ID:bBavR94N
>>270
でもNumPyの内部に踏み込むと
オブジェクト指向なんでしょう?w

オブジェクト指向教えないと、使えない人間になっちゃうよ?
2019/10/13(日) 16:08:42.31ID:BlSgSv0G
>>268
突っ込みどころ
1.それってオブジェクト指向をクソだと言えないのでは?
2.むしろアプリ層ほど、オブジェクト指向って重要だと思うのですが(フレームワーク的に)。

2.は何の開発をしているのかにもよるだろうけど。
2019/10/13(日) 16:10:27.29ID:bBavR94N
「NumPy グラフ描画ライブラリ」でググると
一番目に出てくるのがmatplotlib

https://ja.wikipedia.org/wiki/Matplotlib
> Matplotlibは、プログラミング言語Pythonおよびその科学計算用ライブラリ
> NumPyのためのグラフ描画ライブラリである。
> オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。

なので、どちらにしろオブジェクト指向は必須なんだわ
オブジェクト指向が嫌いなら嫌いでいいが、オブジェクト指向を教えないのは愚の骨頂
2019/10/13(日) 16:11:29.29ID:3vnN9KRU
>>272

ここに書いているだろ。
>>266
> >>262
> 使っているよ。
> 役に立つところにところではね。害のあるところでは使わない。
> Java案件は使わざるを得ないかな注意して使うけど、周りかだどんどん汚いものが入ってくる

その上で問題があり害のある使われ方がしていると
いっているんだが。

前スレではどういう場合に使うか書いたんだけれど、また長々書くのは嫌だわ
2019/10/13(日) 16:13:43.92ID:bBavR94N
なんで言語の問題じゃなくて、

「俺の周りの人間がクズなんだ」って話にすり替えるんだろうかw
類は友を呼ぶって言葉知ってる?
周りがクズなら、お前もクズだっていってるようなもんなんだよ。
2019/10/13(日) 16:17:23.02ID:3vnN9KRU
>>273
matplotlibが必要があってOOPSにしたか、あるいはなんでも良かったのかは不明だから
使っているから、必要があると決め付ける。
こういうのをミスリーディングという。

>> 219 でも気になったけど

誰も言っていないのに

>例えて言うのなら
>お前「エアバッグは自動車事故を完璧に防ぐものだ」
>お前「でもエアバッグでは自動車事故は完璧に防げない」
>お前「だからエアバッグはだめなんだ」
>このセリフを一人で言ってるだけ。

と妄想して決め付ける、揚げ足取りのをミスリーディングが多くて
まじめに議論する相手としてふさわしくないな
2019/10/13(日) 16:19:04.99ID:bBavR94N
>>276
> 使っているから、必要があると決め付ける。

使ってるんだから、matplotlib使うコード書くときは必要じゃん?
オブジェクト指向が必要なフレームワークをたくさん上げればいいの?
NumPyだけで仕事できるわけじゃあるまいし
あんたが、何を言いたいのかわからん。
2019/10/13(日) 16:19:43.66ID:3vnN9KRU
>>275
また決め付けた

>「俺の周りの人間がクズなんだ」って話にすり替えるんだろうかw
>類は友を呼ぶって言葉知ってる?
>周りがクズなら、お前もクズだっていってるようなもんなんだよ。

オレがそんなこと書いてないのに、答える必要はなさそうだな

どうもお前さんとは話がかみ合わないな
2019/10/13(日) 16:20:26.39ID:bBavR94N
>>276
あと、日本語が理解できてないよ。

誰も言ってないって、
「俺が例えとしてだした」んだから
誰も言ってないので当たり前じゃん。

なんで俺が言った(例えによる)説明を
他の人が言ってるはずだ。って思っちゃったのさ?w
2019/10/13(日) 16:20:47.98ID:3vnN9KRU
>>277
日本語苦手?
matplotlib は必要があってOOPS IFを採用したかは不明だと書いているんだよ
2019/10/13(日) 16:21:19.61ID:bBavR94N
>>278
> オレがそんなこと書いてないのに
↓書いてるじゃんw

> 周りかだどんどん汚いものが入ってくる
2019/10/13(日) 16:21:32.50ID:3vnN9KRU
>>279
誰も言ってないことを 人が言ったことのように書くなよ
2019/10/13(日) 16:22:19.20ID:bBavR94N
>>280
> matplotlib は必要があってOOPS IFを採用したかは不明だと書いているんだよ

え?なに?その理屈でいいなら、
NumPyは必要があってOOPSを採用してないかは不明だといえばいいの?w
2019/10/13(日) 16:22:49.35ID:3vnN9KRU
>>281
やっぱ日本語苦手そうだな

周りとは周辺の既存コードとかインスタンスや依存からだよ。
2019/10/13(日) 16:22:49.62ID:0tGtu6dL
>>278
まずあなたは>>171のメリット説明で軽く流してましたが、あなたはOOPのメリットを理解しているのですか?
2019/10/13(日) 16:22:54.71ID:bBavR94N
>>282
人が言ったことだと思ったのは
お前のミスであって、

俺は最初から、自分の意見しか言ってない
2019/10/13(日) 16:23:24.86ID:3vnN9KRU
>>285
その1-3には書いてないがな。
2019/10/13(日) 16:23:49.82ID:3vnN9KRU
>>286
勘違いが多いんだよあんたは
2019/10/13(日) 16:24:21.13ID:bBavR94N
>>284
つまり、お前がコードを書くと、
周りから汚いコードを入れてしまうってこと?w
2019/10/13(日) 16:24:40.56ID:bBavR94N
>>288
今、お前が勘違いしてるって言ったばかりだよね?
2019/10/13(日) 16:24:45.05ID:0tGtu6dL
>>287
興味本意で聞きますが、OOPのメリットって何だと思いますか?
2019/10/13(日) 16:27:07.80ID:3vnN9KRU
>>291
上のほうにも書いたんだがな。なんでそんな初歩的なことをなども聞くか。
教えてクンにもほどがある。だからオレオレオブジェクト指向論者はいちゃなんだ

クラスまたはインスタンスに、メソッドがスコープ付けられていること
これは
うまく使えばメリットがあるはずの
新しいことだったんだよ。
2019/10/13(日) 16:28:51.65ID:3vnN9KRU
>>289
>>290
揚げ足取りは不要です
2019/10/13(日) 16:31:10.51ID:bBavR94N
>>293
そのレスも不要
2019/10/13(日) 16:33:32.62ID:bBavR94N
>>292
正々堂々と間違いを語られても(苦笑)

さっき俺がオブジェクト指向は関数を組み合わせる時の
(複雑性の)問題を解決するものだって言ったよね?

お前「メリットは、クラスまたはインスタンスに、メソッドがスコープ付けられていること」
お前「だがクラスまたはインスタンスに、メソッドがスコープ付けられていることに、メリットはない」

自分で間違ったことを言って、
自分の意見を否定してるwwww
2019/10/13(日) 16:35:41.80ID:3vnN9KRU
うお、妄想狂かよw
2019/10/13(日) 16:36:58.24ID:bBavR94N
>>296
お前「メリットは、クラスまたはインスタンスに、メソッドがスコープ付けられていること
これは事実である。」

と言ったってこと?
2019/10/13(日) 16:37:16.68ID:OAJhlsQO
100パーセント中の100パーセントオブジェクト指向!!!
2019/10/13(日) 16:37:42.42ID:3vnN9KRU
>>291興味本位へお答えしますが
>>292 で「うまく使えばメリットがある『はず』」って書いてあるでしょ。
そうじゃねぇ場合も出てきたってことなのよ。
2019/10/13(日) 16:37:48.21ID:0tGtu6dL
>>292
スコープなんてやけに言語仕様に依存しそうな話が出てきましたね。

ためしに聞きますけど、ポリモーフィズムってご存じですか?先程、然り気無くポリモーフィズムの例を書いたのですが、何が言いたいのかわからんと仰ってましたよね?
2019/10/13(日) 16:38:41.05ID:3vnN9KRU
>>297
そうだよw
いやちがうよw
2019/10/13(日) 16:38:45.02ID:bBavR94N
>>299
そうじゃねぇ"場合"も出てきた = そう(メリット)がある場合ももちろんある

こういう主張ってことでいいですか?
2019/10/13(日) 16:40:03.48ID:OAJhlsQO
異次元ソフトウェア工学=オブジェクト指向
2019/10/13(日) 16:41:25.97ID:OAJhlsQO
結局、チンシコレベルになっちまった
2019/10/13(日) 16:41:28.60ID:V3xYaAid
本当のオブジェクト指向がどうたらいうの鬱陶しい
そんなもん共通見解も定義もありゃしない
2019/10/13(日) 16:42:25.03ID:3vnN9KRU
>>300
多態はなにやっているんだかぱっと見てわからなくなるから
上のほうでも書いたけど min max abs くらいにして
なるべく使わないほうが良いというのが最近の定説だと思うけど、

あの例は

の部分で内やってんだか分からんけど
共通関数かしたいのかな?くらいしかよみとれなかったがそれがなにか
2019/10/13(日) 16:42:52.41ID:3vnN9KRU
>>302
そうだよw
いやちがうよw
2019/10/13(日) 16:43:03.09ID:bBavR94N
> 多態はなにやっているんだかぱっと見てわからなくなるから

お前の能力不足の話?
それともお前の周りが書いたコードの話?
2019/10/13(日) 16:43:48.86ID:5y3mzviq
>>202
>たとえば委譲した動的階層化データ構造の中の、ある局面で一見みえないメンバがどこか遠くで 定義され参照され更新され、、、

こういった状況に陥らないようにするのがカプセル化
2019/10/13(日) 16:43:55.28ID:3vnN9KRU
>>308
ちがうよ
2019/10/13(日) 16:44:24.79ID:bBavR94N
多態は使わないほうが良いというのが定説
というのはどこで語られてるの?

いや、マジでないでしょ?w
あるなら言ってみてよwww
(個人ブログは定説とは言いません)
2019/10/13(日) 16:44:48.44ID:0tGtu6dL
>>306
ぶっちゃけたこと言います。
あなた、オブジェクト指向理解してねーですよね?
2019/10/13(日) 16:45:01.93ID:3vnN9KRU
>>309
また変なのが湧いてきたけど、
アクセサとかmethod使ったらアウトでしょ
2019/10/13(日) 16:45:34.85ID:bBavR94N
> アクセサとかmethod使ったらアウトでしょ

それは、あなたの希望ですよねw
2019/10/13(日) 16:47:18.82ID:OAJhlsQO
俺のオブジェクト指向が最強!
2019/10/13(日) 16:50:15.97ID:3vnN9KRU
>>312

>> 171


>(3)ポリモーフィズムが可能
>Storage s = new Usb();
>...
>s = new SDCard();
>
>SDカード・USBの違いを区別することなくアクセス可能。
>s.read(ファイル);

これのどこがポリモーフィズムのせつめいなの?
「違いを区別することなくアクセス可能」とかかれりゃ
同じ名前のmethodがあるのかな?
newして使いまわしてなにやりたいんだかわからん
くらいしか思い付かないぜ
だからながしたんだが
2019/10/13(日) 16:54:19.96ID:0tGtu6dL
>>316
あなた...Java案件をこなすときはって言ってましたよね...?
Javaプログラマーですよね?
2019/10/13(日) 16:55:51.32ID:3vnN9KRU
>>317
まれに書くだけだよ。
2019/10/13(日) 16:56:00.75ID:3jcvRrfy
オブジェクト指向って大まかにでも一言で説明できないような難解なものなの?
2019/10/13(日) 16:57:01.88ID:3vnN9KRU
>>318
Usb()とSDCard()はStorageのファクトリーだって言いたいの?
2019/10/13(日) 16:57:05.14ID:bBavR94N
>>316
オブジェクト指向を勉強したほうが良くないか?w

ポリモーフィズムでその例を見せられたら、
ああ、SDCard型でもUSB(メモリ)型でも
どちらでも同じように扱える例だなって気づくでしょ?

それに気づいた上で、何かしらの意見を言うならわかるけど、
それに気づかないレベルって、単にオブジェクト指向を知らないだけだよ。
2019/10/13(日) 16:57:33.59ID:V3xYaAid
多態のデメリット

・メソッド呼び出し部分見てもどれが呼び出されてるのかわからない。
呼び出し先の処理は実際に実行するまでどれになるか不明。

・マシン語に展開したとき、処理が安全だといいづらい
必要もないのに処理の分岐先がデータと一緒に送られてきて危なっかしい。

動的に処理が決定されるというのは静的言語のメリットを殺してる面がある。
必要もなくすべてのメソッドが多態可能とか悪夢
2019/10/13(日) 16:58:14.65ID:0tGtu6dL
>>150 で思いっきり社員のことを批判されてましたが、正直、あなたの実力が凄く怪しいです。

>>319
このスレ、オブジェクト指向を学ぶ人にとって毒でしかないので、Qiitaとかで検索することをオススメします。
2019/10/13(日) 16:58:26.86ID:bBavR94N
>>320
お前が今言った「ファクトリー」はどういうものか言ってみ。

質問の意図は、お前が自身がお前の言った言葉を
理解してるかを確認するためね。
2019/10/13(日) 16:59:39.03ID:3vnN9KRU
>>324
それこそググってよ
2019/10/13(日) 16:59:55.59ID:bBavR94N
>>322
> ・メソッド呼び出し部分見てもどれが呼び出されてるのかわからない。
> 呼び出し先の処理は実際に実行するまでどれになるか不明。

実行するまで決まらないもの(例えばユーザーの設定によって決まるもの)を
実行する前にわかることってあると思うの?
2019/10/13(日) 17:00:42.40ID:0tGtu6dL
>>324
フォローありがとう。
たぶん、私の想像しているファクトリーと違うこと言いそう...。
2019/10/13(日) 17:00:55.65ID:bBavR94N
>>325
なんのために「お前が今言った」って書いたと思ってんのさw
ググって見つかる「ファクトリー」と
お前が言った「ファクトリー」は違うとしか思えないから、

「お前定義のファクトリー」を聞いたんだが。
お前定義のファクトリーはお前にしかわからん。

んで、お前定義のファクトリーはどういうものさ?
2019/10/13(日) 17:01:31.80ID:OAJhlsQO
俺のオブジェクト指向しかオブジェクト指向と認められていないよ
2019/10/13(日) 17:04:10.97ID:V3xYaAid
>>326
IF文で分岐すれば少なくともその部分の処理は特定できる
多態したら実際の呼び出し先がライブラリ中に無数にある継承クラスのどれになるか
全部データから辿って判断しなきゃいけなくなるだろ
悪夢だ
2019/10/13(日) 17:04:31.39ID:3vnN9KRU
インスタンスの生成と処理を別のクラスで行うパターンのファクトリーとして書いたが。
2019/10/13(日) 17:05:22.52ID:bBavR94N
> IF文で分岐すれば少なくともその部分の処理は特定できる
それだと、コードの中に全ての対応するモジュール名が記述されることになる。
それだと、外部プロジェクトで拡張するプラグインの仕組みが作れない
2019/10/13(日) 17:06:48.22ID:bBavR94N
>>331
このコードを見てそう思った?

インスタンスの生成はどのクラスで、
処理はどのクラスだと思った?

コードちゃんと読んでる?
2019/10/13(日) 17:06:53.28ID:5y3mzviq
>>322
ポリモーフィズムには動的なものだけじゃなく静的なものもあるよ
それはトレードオフの判断であって動的だから悪いってことではない
2019/10/13(日) 17:06:53.54ID:V3xYaAid
>>332
だからって何もかも多態可能にする必要ないだろ!
2019/10/13(日) 17:07:25.90ID:OAJhlsQO
そんな実装に密接した話してんのもなんか胡散臭ぇ
オブジェクト指向設計ではないのか?
2019/10/13(日) 17:08:43.44ID:3vnN9KRU
>>333
それが隠されているように見えた。
両方Strage方を帰しているので
Superクラスが前後に略されているのかなとかチラッと考えた
2019/10/13(日) 17:09:30.25ID:bBavR94N
もっと具体的に質問しようか?
以下のコード、
>(3)ポリモーフィズムが可能
>Storage s = new Usb();
>...
>s = new SDCard();
>
>SDカード・USBの違いを区別することなくアクセス可能。
>s.read(ファイル);

登場人物は、StrageとUsbとSDCardしかいない。

質問1 インスタンスの生成を行ったのは、StrageとUsbとSDCard のうち
どれだと思ったのですか?

質問2 処理を行ったのは、StrageとUsbとSDCard のうち
どれだと思ったのですか?


それそれ、3択の中から1つを選ぶだけの簡単な質問だよ。
(それ以外の答えがあるというなら、それで答えてもいいけど)
2019/10/13(日) 17:10:34.32ID:bBavR94N
>>335
> だからって何もかも多態可能にする必要ないだろ!

誰が何もかも多態可能にするって言ったんだ?
2019/10/13(日) 17:11:01.87ID:OAJhlsQO
設計の話してるときコードを出さないと話ができない人は
オブジェクト指向云々かんぬん以前にレベルが低いよ

そこはガチで低いはずなので素直に忠告を聞いてほしいと思う
2019/10/13(日) 17:11:41.50ID:bBavR94N
>>337
> Superクラスが前後に略されているのかなとかチラッと考えた

あなたが想像した「省略されてるSuperクラス」とはどのようなものですか?

”あなたが想像した"ものを聞いてるので
これもググっても出ません。
2019/10/13(日) 17:12:10.97ID:V3xYaAid
>>339
Javaを開発した連中
2019/10/13(日) 17:14:00.80ID:3vnN9KRU
>>338
1)Usb();
2)SDCar();
2019/10/13(日) 17:14:22.39ID:bBavR94N
>>340
ちゃんと理解してる人は、コードを出すことも出来る。

今は、ちゃんと理解してる人(俺なw)と
ちゃんと理解してない人の会話

ちゃんと理解してない人は「コードを出さないと話ができないレベルが低い人」なのだから
コードを要求することで、それがはっきりするわけよ。

俺がコードを出して話をしてるんじゃなくて、相手が理解してるかどうかを図るために
「せめてコードぐらいは出せるよな?w」という考えで要求してるの
2019/10/13(日) 17:15:40.27ID:bBavR94N
>>343
ファクトリーは「あるクラス」を使って「別のクラス」を生成するということは知ってますか?
2019/10/13(日) 17:15:48.94ID:0tGtu6dL
なんというか、もう、色々お察しがついてしまいました。
オブジェクト指向を否定的に捉える前にオブジェクト指向のお勉強をされることをおすすめします。

特に、Java、C#、Python、js等はオブジェクト指向のパラダイムを思いっきり取り込んでいるので、開発を楽するためにも、勉強をされることをお勧めします。
2019/10/13(日) 17:16:21.93ID:3vnN9KRU
>>345
>>331
2019/10/13(日) 17:17:12.09ID:OAJhlsQO
>>344
ちゃんこちゃんこうるせぇな
設計の話してるときにコード持ってくるアホなんて
まともな会社なら相手にしねぇよ
2019/10/13(日) 17:17:44.97ID:bBavR94N
>>347
質問に答えてよw

まあ想像できるから、さっさと追い詰めるけどw

>Storage s = new Usb();
>...
>s = new SDCard();

このコードはどう見ても、Usbクラス(お前がファクトリークラスだと思ってるもの)から
SDCardクラスを生成してません
2019/10/13(日) 17:18:52.85ID:OAJhlsQO
>>346
直訳すると

テメーは気に入らないからオブジェクト指向が理解できていない(認定)

ということでよろしいですか?
2019/10/13(日) 17:19:19.41ID:3vnN9KRU
>>346
で、>>343 は違うの?
サンプルコードの前後が省かれていてよく分からんのに
いきなりポリモーフィズムとか言われて流したらなにがまずいの
2019/10/13(日) 17:22:13.85ID:3vnN9KRU
>>349
これ見て両方Storage返して
…のかなでUsb();の処理は終わって、
sをSDCard();で使いまわして
s.read(ファイル名)していると思ったが
2019/10/13(日) 17:22:24.95ID:bBavR94N
>>351
何がまずいって、ポリもーフィーズムとわかるのに十分なコードなのに
それがわからずにファクトリーを思い浮かべてしまったお前の頭がまずいw
どう見てもファクトリーのコードではないのに、なんでファクトリーだと思ったのか?
2019/10/13(日) 17:23:23.85ID:bBavR94N
>>352
だから(ファクトリークラスを使わずに)sを使いまわしてるだけのコードですよねw
2019/10/13(日) 17:24:32.94ID:3vnN9KRU
>>353
周辺とか…の部分は
色々あると想像しろと

>>354
両方クラうでなくStorageを返しているじゃない
2019/10/13(日) 17:25:28.56ID:OAJhlsQO
明確にしようとコードを出すはずだったのに目的も不明確なまま
デザパタ1パターンをオブジェクト指向の全てとしてコードをあげてしまって失敗した感じ?

な、コードなんて出す奴問答無用でバカだろ
テメーらは早く死ね雑魚
2019/10/13(日) 17:26:03.26ID:bBavR94N
> 両方クラうでなくStorageを返しているじゃない

うん? だから ”ファクトリーを使わずに" Storageを返してますよね?

今の焦点はなんであんたがファクトリーだと思ったかなんですが?w
2019/10/13(日) 17:26:58.40ID:OAJhlsQO
>>357
ハイハイ、早く死んでねー
2019/10/13(日) 17:27:00.19ID:V3xYaAid
このコードがファクトリーで最後にsリターンしてんじゃね
2019/10/13(日) 17:27:20.86ID:3vnN9KRU
>>357
正直言うとぱっと見たときは両方ファクトリかな?
と思ったが、戦後に何があるんだろうとも思った
2019/10/13(日) 17:28:11.52ID:3vnN9KRU
>>360
戦後じゃなくて前後ね
2019/10/13(日) 17:28:34.66ID:bBavR94N
>>359
このコードはポリモーフィズムの例ですって書いたものを見て
これはファクトリーの例だなって思ったとしたら頭がおかしいw
2019/10/13(日) 17:28:56.47ID:OAJhlsQO
今日もオブジェクト指向戦士は安定のバカだな

自分が何を主張しようとしてるのか全く不明
2019/10/13(日) 17:30:16.39ID:bBavR94N
>>360
その理屈だと、

Interface i = new Klass()
というオブジェクトをnewするだけのよくあるコードをみたら

それは全部ファクトリだなとお前は思うと言ってるのと同じことだぞw


やっぱりファクトリーをわかってないw
2019/10/13(日) 17:30:20.99ID:3vnN9KRU
>>362
そう、だからすごい違和感があって流したんだよ
2019/10/13(日) 17:31:51.66ID:bBavR94N
>>365
その違和感の原因がなにかわかってる?

お前がポリモーフィズムをわかってないからだよ。

書かれたコードを見ても(俺はすぐに分かったが)お前はわからない。
わからない上に、どうてみてもファクトリーじゃないのに
ファクトリーだと思ってしまった。
2019/10/13(日) 17:32:27.46ID:0tGtu6dL
>>351
ちょっとショックのあまりにいくつかスルーしましたが...

ポリモーフィズムというのは、Java案件をこなすプログラマーにとって常識中の常識だからです。Javaじゃなくても、現役C++、C#、Python、js等の案件をこなすプロがポリモーフィズムを知らなかったらビックリします。要はオブジェクト指向プログラマーの常識中の常識なのです。
2019/10/13(日) 17:32:48.90ID:V3xYaAid
>>362
Factoryパターンはポリモーフィズムを利用する最たる例だぞ
2019/10/13(日) 17:33:19.20ID:3vnN9KRU
>>366
まぁたしかに慣れもあるが俺はこういう書き方でポリモーフィズムを使ったことはないな
というか使わない
2019/10/13(日) 17:33:48.17ID:3vnN9KRU
>>368
それは意見が分かれるところだと思うよ
2019/10/13(日) 17:34:47.43ID:V3xYaAid
話が条件反射すぎて話の筋追って話ができそうにない
2019/10/13(日) 17:36:00.36ID:3vnN9KRU
そんなもんだよここはとくに3vnN9KRUが揚げ足を取ったり話を発散させるから
諦めが肝心だよ
2019/10/13(日) 17:39:03.31ID:OAJhlsQO
まず、持論を語るやつは
どういう手順で何を主張しようとしてるのか明確にしろよな
結局、相手の揚げ足をとりたいだけだったりしてすげーバカがいる
2019/10/13(日) 17:40:54.32ID:0tGtu6dL
曖昧な言葉を使ったり、自分すら理解できない言葉を使うのはどうかと思いますけどね。
だから質問しまくる羽目になるわけで。
2019/10/13(日) 17:41:59.74ID:3vnN9KRU
>>367
あの3行でSuperクラスの変数?にFactoryで生成したインスタンスを=しているのかなとか
色々想像したことがそんなのおどろくべきなのか?
2019/10/13(日) 17:44:32.86ID:bBavR94N
>>368
だから?

Factoryパターンはポリモーフィズムを利用する最たる例ならなおさら
このコードをファクトリーだと思ったなら、
ポリモーフィズムだって思うはずでしょw

実際はファクトリーじゃないわけだが
2019/10/13(日) 17:45:13.71ID:0tGtu6dL
>>375
あなた、もういいです。
自分の非を決して認めない人だとわかりました。
大体、オブジェクト指向のメリットって何と聞いて私の挙げたメリットを、それはOOPのメリットではないと言いつつ、メリットはスコープがーとか言い出す辺りで大分、不信感は抱いておりました。

現代における開発経験量が丸わかりです。
2019/10/13(日) 17:45:35.32ID:3vnN9KRU
で、これも想像だが
@Override
public void read (…)
なんだろうな
人の頭の中のことまで創造させて、違う違う言ってたってしょうがないだろ
2019/10/13(日) 17:45:52.37ID:bBavR94N
>>369
つまりお前が言ってることはこういうことだよ。


お前「俺はこういう書き方でポリモーフィズムを使ったことがないから
これがポリモーフィズムだとわからなかった。」


そりゃ無知なら間違えても当然。
お前の問題だ。
2019/10/13(日) 17:47:05.08ID:OAJhlsQO
そもそもポリモーフィズムってオブジェクト指向できたときに無かったよな?
それをメインに据えたい意図は何かあるの?
2019/10/13(日) 17:48:51.57ID:3vnN9KRU
>>377
いやほんと、カプセル化を初めオブジェクト指向は害のある使い方が流布しているから
気をつけたほうがいいよ
有効な使い方に制限するのがなかなか難しい

>> 379
最初はホントに単なるファクトリに見えて、は?って思ったw
2019/10/13(日) 17:49:00.06ID:bBavR94N
>>369
> まぁたしかに慣れもあるが俺はこういう書き方でポリモーフィズムを使ったことはないな

じゃあ、どういう書き方でポリモーフィズムを使った?
コード書いてみてよw
2019/10/13(日) 17:49:30.25ID:bBavR94N
>>381
お前が一番、間違ったオブジェクト指向をしてるんだがなw
2019/10/13(日) 17:50:25.84ID:M4gZyrF1
どこがファクトリに見えるのあれ
2019/10/13(日) 17:51:06.33ID:V3xYaAid
今日思ったこと

オブジェクト指向にはまるやつは大概頭が混乱してる
2019/10/13(日) 17:52:38.78ID:3vnN9KRU
>>382

だから多態はなるべく使わないって書いたじゃない。
スパークラスに共通のメソッドを書いてサブクラスでメソッドをOverrideとかは
必要な場合に使う
方がない動的言語では、それがそのまま多態になっちゃうんだけれどもさ
2019/10/13(日) 17:53:38.10ID:bBavR94N
>>386
自分が多態を使わない=多態になれてないのに
多態を語るから、恥をかくんだよ

自分、多態よくわかりません。で終わっとけよw
2019/10/13(日) 17:55:02.74ID:3vnN9KRU
>>387
つかわねぇから語ってねぇってw
ホント妄想猛々しいな
2019/10/13(日) 17:55:03.32ID:bBavR94N
>>386
> スパークラスに共通のメソッドを書いてサブクラスでメソッドをOverrideとかは
> 必要な場合に使う

意味不明。必要がない場合に使うわけ無いだろ。

誰しも、必要な場合にしか使ってないぞ?
何を言ってるんだろうか
2019/10/13(日) 17:55:45.75ID:3vnN9KRU
>>389
いやいや機能上必要がなくても共通化の名の下
すごく乱用されている
2019/10/13(日) 17:55:54.54ID:bBavR94N
>>388
必要な場合には使うよね?

お前が言ってることは
多態が必要なときには使うが、

お前「俺の仕事では多態を使うようなことはしない」

って言ってるだけだろ
2019/10/13(日) 17:56:19.70ID:bBavR94N
>>390
> すごく乱用されている

お前の周りの話だろ?w
2019/10/13(日) 17:57:46.78ID:3vnN9KRU
>>392
俺の周りは確かに一時期ひどかった。
今でも原理主義者がいる

その多OSSのコードも決して珍しくはない。
継承を多用したもののはひどいものが多い
2019/10/13(日) 17:58:44.88ID:bBavR94N
>>393
だから単にお前の周りが酷いだけじゃんw
2019/10/13(日) 17:59:33.81ID:0tGtu6dL
>>380
そもそも、最初のオブジェクト指向...アランケイの提唱するオブジェクト指向で、現代におけるオブジェクト指向とはまったく違う代物だったみたいですよ。
まぁ、この時代の事情はあまり知らないですが。

最近はオブジェクト指向の話題をする際にアランケイのオブジェクト指向を指す人はまず、いないと思います。

歴史的背景は私も詳しくはないですが...プログラミング言語の進化と共に色んな設計概念が増えていっただけなのかなと思います。
※勝手な思いこみ説明なんで間に受けないでね。

他にも良いオブジェクト指向向けの機能はあるので、メインなのかは疑問ですが...オブジェクトの使い勝手をより一層便利にするからじゃないですかね。
2019/10/13(日) 18:01:57.13ID:3vnN9KRU
>>391
javaで多態はほんとにめったというかぜんぜん使わない
javaはまれにしかやらないけど、主にpythonなどが多いので
そもそも型がない
したがって派生クラスで上書きした共通関数使えば、
もうそれが多態といえるのかもしれないけど、
継承もなるべく使わない
2019/10/13(日) 18:04:00.90ID:3vnN9KRU
>>395
見たいじゃねぇよ、勝手にひとりあるきしまったく別物になった
メッセージ VS 型クラスとメソッド
全然別だよ
2019/10/13(日) 18:04:12.06ID:bBavR94N
>>396
だからさ、ちゃんと「俺は」って書いてくんない?

「俺は」javaで多態はほんとにめったというかぜんぜん使わない
「俺は」javaはまれにしかやらないけど、「俺は」主にpythonなどが多いので
「俺の世界には」そもそも型(Pythonのクラス)がない
したがって「俺の世界では」派生クラスで上書きした共通関数使えば、
もうそれが多態といえるのかもしれないけど、
「俺は」継承もなるべく使わない


お前の話なんか知るかw
2019/10/13(日) 18:05:11.76ID:0tGtu6dL
>>397
あ、はい。
2019/10/13(日) 18:06:09.59ID:3vnN9KRU
>>398
知らないなら
黙ってればいいことだよ
2019/10/13(日) 18:06:34.42ID:0tGtu6dL
なんで私は噛みつかれたのでしょう( ;´・ω・`)
402デフォルトの名無しさん
垢版 |
2019/10/13(日) 18:07:13.88ID:y+A2lH1B
『シコシコ』という擬音はどうでもよい。問題は、

自我    チンポ
↓      ↓   チンポ=自我
チンポ   自我

オブジェクト指向では、この三種類が考えられるということだ。

>チンポ=自我

散歩している時、自分もチンポも所在地は同一である。

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



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

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

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

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

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

博士号の肩書きがあっても、STAP細胞のそれは間違いであり科学者として失格。
チンポと自我の関係について、それが間違いということなら、俺も科学者を自称するのを止めよう。
しかしながらあの夏目くんは、笑ってごまかす以外に何と申し上げたら良かったのか。
2019/10/13(日) 18:07:54.54ID:bBavR94N
こいつのせいで、Pythonに型やクラスがないと
勘違いされるのは困るから、ちゃんと書いておくな

Python チュートリアル
https://docs.python.org/ja/3/tutorial/classes.html

9. クラス
> Python のクラスは、C++ と Modula-3 のクラスメカニズムを混ぜたものです。
> Python のクラス機構はオブジェクト指向プログラミングの標準的な機能を全て提供しています。Python のクラスは、C++ と Modula-3 のクラスメカニズムを混ぜたものです。Python のクラス機構はオブジェクト指向プログラミングの標準的な機能を全て提供しています。

9.5. 継承
> 言うまでもなく、継承の概念をサポートしない言語機能は "クラス" と呼ぶに値しません。

9.5.1. 多重継承
> Python では、多重継承 (multiple inheritance) の形式もサポートしています。
2019/10/13(日) 18:09:21.97ID:3vnN9KRU
別に噛み付いちゃいねえけど
オレオレオブジェクト指向論者は
メッセージやアクター理論などど型クラス+メソッド+継承のOOPSを
混同してむちゃくちゃな議論をするやからが多いから、ついかいた
405デフォルトの名無しさん
垢版 |
2019/10/13(日) 18:11:26.57ID:y+A2lH1B
>>404
>オレオレオブジェクト指向論者は
>メッセージやアクター理論などど型クラス+メソッド+継承のOOPSを
>混同してむちゃくちゃな議論をする

でもオブジェクト指向は俺の股間に付いているだろう?
2019/10/13(日) 18:12:16.43ID:OAJhlsQO
>>398
えー、お前のも一般的なの?

アランケイさんのお言葉
wikipediaより

すべてはオブジェクトである。
オブジェクトはメッセージの受け答えによってコミュニケーションする。
オブジェクトは自身のメモリーを持つ。
どのオブジェクトもクラスのインスタンスであり、クラスもまたオブジェクトである。
クラスはその全インスタンスの為の共有動作を持つ。インスタンスはプログラムにおけるオブジェクトの形態である。
プログラム実行時は、制御は最初のオブジェクトに渡され、残りはそのメッセージとして扱われる。

だってさ
2019/10/13(日) 18:12:55.88ID:3vnN9KRU
>>403
クラスはアルさ、なに言ってんだ。

それからデータに型はあるさ
変数に型はないよ いれたデータに型が紐つく
そういう言語もいっぱいあって、C++やJavaninai柔軟性を示すんだよ
動的型付けってしなねぇのかよ
rubyではダックタイプとかいう
2019/10/13(日) 18:13:23.47ID:OAJhlsQO
ポリオワクチンなんてどこにも書いてないよな
2019/10/13(日) 18:13:26.62ID:bBavR94N
>>406
上の方に書いたるだろ?

それは

> 現代におけるオブジェクト指向とはまったく違う代物
2019/10/13(日) 18:15:30.66ID:bBavR94N
>>407
変数に型がある/ないことが
今の話にどう関係があるんですか?
2019/10/13(日) 18:15:39.72ID:OAJhlsQO
>>409
じゃ、違う名前に変えろよw
2019/10/13(日) 18:16:37.88ID:3vnN9KRU
>>410
上に書いたことでわかんなら
もうだまってなよ
2019/10/13(日) 18:16:41.47ID:0tGtu6dL
>>411
そんな事、彼に言ってもしょうがないでしょw
2019/10/13(日) 18:16:48.96ID:V3xYaAid
俺らに文句いわれても
2019/10/13(日) 18:17:02.27ID:OAJhlsQO
じゃ、ポリオワクチン入ってるやつは
新オブジェクト指向って言えよ

アランケイのはじめのやつは
旧オブジェクト指向って言うか?
2019/10/13(日) 18:17:45.11ID:bBavR94N
>>412
質問じゃないよw

変数に型がある/ないことが
今の話と全く関係ないです。と言ってる。

日本語通じねぇなこいつw
2019/10/13(日) 18:18:50.58ID:0tGtu6dL
>>415
1のテンプレがややこしくしているのが問題だと思う。
2019/10/13(日) 18:21:19.12ID:3vnN9KRU
>>416
大いにあるよ。
変数に型がないから、何のインスタンス入れてもいいんだよ。
そのインスタンスが同じ名前・IFのmethodもってりゃ、javaのような多態が
意識しなくても自然に出来ちゃうって話だよ。
読み取れよ
2019/10/13(日) 18:24:49.58ID:bBavR94N
>>418
今度は多態の意味もわかってないのか?

多態は同じメソッドを持ってりゃいいんだよ
インターフェースは単に、ドキュメントで同じメソッドを
持つことと保証するかコードで保証するかの違いでしか無い。

同じように変数に型がないRubyでの多態の例な

https://docs.ruby-lang.org/ja/latest/doc/glossary.html

> ポリモルフィズム
> 多態, Polymorphism
> 対象になるオブジェクトによって実際の操作が決定されること。
> Rubyではレシーバのオブジェクトに応じ てメソッドが選択されることによって実現されている。
>
> * 例
>
> obj = "abc"
> print obj.length, "\n" # => 3
> obj = [1,2,3,4]
> print obj.length, "\n" # => 4
2019/10/13(日) 18:26:14.69ID:3vnN9KRU
>>419
>>418 「インスタンスが同じ名前・IFのmethodもってりゃ…多態が…出来る」
2019/10/13(日) 18:26:56.15ID:bBavR94N
「インスタンスが同じ名前・IFのmethodもってりゃ…多態が…出来る」ので
多態の話に変数に型があるかどうかは関係ない
2019/10/13(日) 18:27:33.55ID:3vnN9KRU
>>421
こいつこんなバカだとはうすうす気がついていたがw
2019/10/13(日) 18:28:05.21ID:M4gZyrF1
javaでも意識せずに多態使ってると思うけども
2019/10/13(日) 18:29:27.94ID:bBavR94N
>>422
いや、何か言い返せよw
2019/10/13(日) 18:30:15.55ID:3vnN9KRU
>>423
変数の型に使うクラスに制約ない?
動的型付け言語では、全然関係ないクラスのインスタンスが同じ名前・IFのmethodもってりゃいいんだけれど
Javaもそこまで柔軟?
2019/10/13(日) 18:30:34.51ID:V3xYaAid
ばかというか実際の経験がないんだろうな
文字で読んだうわべの知識しかないから
そこ間違えねーだろみたいなところでズレまくってて会話が成立しない
2019/10/13(日) 18:31:34.34ID:bBavR94N
> 動的型付け言語では、全然関係ないクラスのインスタンスが同じ名前・IFのmethodもってりゃいいんだけれど
> Javaもそこまで柔軟?

柔軟だよ。そのためにインターフェースがある。
全然関係ないクラスであっても、インターフェースを加えればいいだけ
2019/10/13(日) 18:31:34.43ID:3vnN9KRU
>>424
話がかみあわなくてさ、最初から揚げ足とり姿勢でつかかってくるし
あんま相手してもオレに得るものがなくて
2019/10/13(日) 18:31:55.10ID:OAJhlsQO
>>426
俺はオブジェクト指向スレで会話が成立したところを見たことがないな
お前が喋ってるのも新オブジェクト指向だしね
2019/10/13(日) 18:31:56.29ID:bBavR94N
>>428
反論できない言い訳?
2019/10/13(日) 18:32:24.84ID:3vnN9KRU
>>427
なるほどね。でも「だけ」ってことはないでしょ
管理の対象になるわけだし
432デフォルトの名無しさん
垢版 |
2019/10/13(日) 18:34:42.42ID:/n8R8rPr
理論的背景皆無のIT界の新約聖書オブジェクト指向ファンタジーより情報理論学べよ。
お前らの無駄レス情報量ゼロだって分かるからwwwww
2019/10/13(日) 18:35:11.57ID:bBavR94N
>>431
インターフェースを加えた上で、
同じ名前メソッドを加えるのも

インターフェースを加えずに
同じ名前メソッドを加えるのも


「同じ名前のメソッドがある」ことに変わりはない。
どちらにしろ管理の対象になる
2019/10/13(日) 18:35:16.44ID:3vnN9KRU
インターフェースも絡んできて、依存ネットワークを作っちゃうんだよな
本来の目的はFWなりライブラリの外向けインタフェースの提供や
実装の分離のはずだったのに、#includeや#defineがないものだから
中向けに定数の多重継承がわりに使われたり
2019/10/13(日) 18:36:24.64ID:48i2xCpc
オブジェクト指向に利点はありまーす。
2019/10/13(日) 18:36:33.25ID:3vnN9KRU
さて、嵐も去ったし飯でも食いに行ってくるわ
ノシ
2019/10/13(日) 18:37:20.61ID:bBavR94N
>>434
だから「俺は」を書けってw

インターフェースも絡んできて、「俺は」依存ネットワークを作っちゃうんだよな
本来の目的はFWなりライブラリの外向けインタフェースの提供や
実装の分離のはずだったのに、#includeや#defineがないものだから
「俺は」中向けに定数の多重継承をわりに使ったり
2019/10/13(日) 18:37:53.45ID:bBavR94N
嵐が「嵐は去ったと知って」去っていったw

去ったのが嵐なのだろうw
2019/10/13(日) 18:38:39.59ID:3vnN9KRU
>>437
              ハ,,ハ
             ( ゚ω゚ )  お断りします
            /    \   お断りします
.     ,、,,、   ((⊂  )   ノ\つ))  
     (゚ω゚) オコトワリ- (_⌒ヽ
  ((c'ィ -、っ))     ヽ ヘ }
  s-= )ノヘ)  ε≡Ξ ノノ `J
2019/10/13(日) 18:39:53.44ID:V3xYaAid
それが悪いことでほかに代替手段があるのに禁止されていないなら
それは言語の欠点だ
2019/10/13(日) 18:43:01.25ID:V3xYaAid
というかだ
>>427で関係ないクラスにインターフェース加えりゃいいだけとかいっといて
俺はもくそもない
絶対おまえもやる
2019/10/13(日) 18:44:57.18ID:bBavR94N
>>441
インターフェースがないならないで、
どちらにしろ関係ないクラスにメソッド追加するんだろ?
2019/10/13(日) 18:46:15.84ID:V3xYaAid
だからそれで依存がごちゃごちゃになるんだってば
2019/10/13(日) 18:46:47.95ID:3vnN9KRU
そこまで無理をして多態を使わないようにするのがイチバン正しい
2019/10/13(日) 18:46:59.38ID:bBavR94N
>>443
メソッドがある時点で依存してるじゃん
何いってんの?
2019/10/13(日) 18:47:53.75ID:V3xYaAid
Staticメソッドにしてクラスと別に定義すればクラス自体に新しい依存はできないよ
2019/10/13(日) 18:48:47.53ID:3vnN9KRU
>>445
それに加えてグローバルな依存ネットがプラスされて雲の巣状態になるんだじゃよ
2019/10/13(日) 18:49:28.78ID:bBavR94N
>>446
もしかしてあるクラスに○○のためのメソッドがあっても
使わなければ、ごみがあるだけとか言ってる?
2019/10/13(日) 18:50:00.73ID:bBavR94N
>>447
だから「俺は」を書けってw

それに加えて「俺は」グローバルな依存ネットをプラスするから
「俺が書くと」雲の巣状態になるんだじゃよ
2019/10/13(日) 18:50:38.01ID:3vnN9KRU
また妄想でミスリードして話を明後日の方向に発散させる…
2019/10/13(日) 18:50:47.67ID:V3xYaAid
お前みたいなのがぐちゃぐちゃにするから。
2019/10/13(日) 18:50:48.52ID:0tGtu6dL
なんか、お疲れ様です...。
私はもう、OOPを理解させるのは無理だと悟りました。
2019/10/13(日) 18:51:22.71ID:3vnN9KRU
>>449
一派論です。キッリ

              ハ,,ハ
             ( ゚ω゚ )  お断りします
            /    \   お断りします
.     ,、,,、   ((⊂  )   ノ\つ))  
     (゚ω゚) オコトワリ- (_⌒ヽ
  ((c'ィ -、っ))     ヽ ヘ }
  s-= )ノヘ)  ε≡Ξ ノノ `J
2019/10/13(日) 18:52:20.42ID:3vnN9KRU
>>452
させる」とかいう以前にもう少しソフトウエアの勉強を
455デフォルトの名無しさん
垢版 |
2019/10/13(日) 18:53:15.70ID:MhpUZXHP
宗教みたいなもんだからな。
リアリストに神の存在を認めさせるようなもん。
教会に籠ってろw
2019/10/13(日) 18:54:55.30ID:0tGtu6dL
まぁ、彼らはOOPがクソだと思いながらOOPの勉強を避けてコードを書けば言い訳だし、
私はOOPのコードを書いていく。
これでいいかと思いました。

ただ、このスレタイは初心者に毒なので勘弁してほしい。
457デフォルトの名無しさん
垢版 |
2019/10/13(日) 18:58:41.47ID:MhpUZXHP
つまり「神の存在を認めぬ不信心者め!地獄に堕ちるぞ!」
www
2019/10/13(日) 19:05:26.86ID:0tGtu6dL
>>457
いいえ?
あなたは既に地獄へ堕ちているのでは?
このご時世にOOPを目の敵にしている人の実力なんてお察しです。
むしろ、あなたみたいな人はOOPを学ばないで下さいね。
見せしめになってほしいので。
是非、たっぷり苦しみながら開発をしてくださいませ。

まぁ、台風が去ったらこのようなスレには二度と来ないので、どうぞ傷の舐め合いでもしててください。さようなら。
2019/10/13(日) 19:21:08.33ID:bBavR94N
俺にとっては、あるクラスのメソッドの仕様を変更した時、
同時に変更しなければ動作不良になる、他の部分のことを依存してるコードっていうんだが、
インターフェースがなければ、依存しないという理由が知りたいわ
2019/10/13(日) 19:32:04.78ID:I8cQof7f
恐らく彼の職場では責任範囲の概念が無いんだと思う
他人が書いたコードだろうが変数の動きを端から端まで追いかけて責任持たなきゃいけない
そうなるとコードの再利用をむしろ減らした方が効率が上がる
2019/10/13(日) 19:57:57.09ID:/OQx7RZk
三連休の夜はまだあるぞ
納得するまで議論つづけろよ
2019/10/13(日) 20:00:49.77ID:bBavR94N
嵐は去ったようですよw
463デフォルトの名無しさん
垢版 |
2019/10/13(日) 20:08:03.65ID:MhpUZXHP
>>458
ザビエル敗走www
2019/10/13(日) 20:15:26.34ID:BXD6hdDp
>>458
https://cpplover.blogspot.com/2013/05/linus-torvalsc.html
2019/10/13(日) 20:19:50.99ID:gUdJTWPj
したのは知らんかった
cも嫌いなのかよw
2019/10/13(日) 20:22:17.02ID:BXD6hdDp
>>465
「私はCが嫌いだ。」 と書いてあるのはサイトの著者の好みだろ。
2019/10/13(日) 20:23:29.09ID:gUdJTWPj
あほんとや
署名の下か
2019/10/13(日) 20:26:57.77ID:BXD6hdDp
その C++についてのLinus Torvaldsの意見に対する 1つの反論はこれかな

http://warp.povusers.org/OpenLetters/ResponseToTorvalds.html
2019/10/13(日) 20:31:11.13ID:shs+Nyxj
>>468
それ、長くて読めないですよ…
Linus の要約は次のとおり

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:

- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)

- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
470デフォルトの名無しさん
垢版 |
2019/10/13(日) 20:33:45.37ID:MhpUZXHP
>>468
で、この人はどんなすごいプログラマーなの?www
2019/10/13(日) 20:34:55.50ID:V3xYaAid
名前がなんかに似てるとおもいませんか?
2019/10/13(日) 20:36:53.44ID:shs+Nyxj
linus を知らないなんて、最近の若者は怖いもの知らずなんですな…
473デフォルトの名無しさん
垢版 |
2019/10/13(日) 20:38:58.94ID:MhpUZXHP
>>472
ホンモンのバカかお前。>>468読めや
そのlinusへの反論をlinusがすんのかマヌケ
2019/10/13(日) 20:39:59.71ID:BXD6hdDp
>>469 出てきたなQZめ

そのLinusの意見はよほどいやな目に合って腹が立っ手いたのか、
内容が少し感情的に見える(もともとそういう口の悪い人らしいが)
もう少し理論的技術的に批判した方が良かったんじゃないかと思う。


それから、知っている人もいると思うが

Why do some famous programmers (e.g. Richard Stallman, Linus Torvalds, Ken Thompson, and Brian Kernighan) dislike C++? What are the alternatives?
https://www.quora.com/Why-do-some-famous-programmers-e-g-Richard-Stallman-Linus-Torvalds-Ken-Thompson-and-Brian-Kernighan-dislike-C++-What-are-the-alternatives

Goは、C++やJavaのOOPSじゃだめだとThompson やRob Pikeらが考えて
開発することになった言語であることは、ご存知の通り

Linus Torvalds thinks Java and C++ are horrible programming languages. So, which language does he recommend for programming?
https://www.quora.com/Linus-Torvalds-thinks-Java-and-C-are-horrible-programming-languages-So-which-language-does-he-recommend-for-programming

この辺も面白いかも
俺は縦読みした程度だが
2019/10/13(日) 20:42:43.26ID:V3xYaAid
1.Object Oriented Programming is a Cargo Cult.

まったくだ
476デフォルトの名無しさん
垢版 |
2019/10/13(日) 20:43:48.72ID:3h1+0AdA
たて読みしたら、











って書いてあったよ…
2019/10/13(日) 20:44:35.26ID:shs+Nyxj
>>473
失礼、>>468 は linus への反論でしたか
2019/10/13(日) 20:45:21.76ID:BXD6hdDp
カルトw
言い切ったw
2019/10/13(日) 20:46:00.62ID:bBavR94N
ぶっちゃけC++の批判とオブジェクト指向の批判は違うもの
2019/10/13(日) 20:47:55.55ID:BXD6hdDp
>>479
苦しいいなw
2019/10/13(日) 20:49:33.81ID:V3xYaAid
べつにオブジェクト指向じゃなくてもITは大体カーゴカルトだと思うけどな
2019/10/13(日) 20:52:32.70ID:BXD6hdDp
俺としては有名人がC++, Java, OOPに批判的か否かはそれほど重要ではないけど

>>458
>> このご時世にOOPを目の敵にしている人の実力なんてお察しです。
> むしろ、あなたみたいな人はOOPを学ばないで下さいね。
> 見せしめになってほしいので。

こんなこと言われると、つい著名人の考えを引用したくなっちゃってさ
2019/10/13(日) 20:55:04.61ID:BXD6hdDp
>>481
それは一理ある。
極端なGOTO排除、AI、ビッグデータ、IoT
ファージ、Byte/Flops、そのた…

がしかし、OOPS宣教師の及ぼした害は広く根が深い
2019/10/13(日) 21:11:23.01ID:bBavR94N
>>480
別に苦しくないよ。Linusが言ってるじゃん
STLやBoostはだめだって。
C++以外にSTLやBoostはない

それに、Linusは
> Cでオブジェクト指向コード(ファイルシステムとかだと有用)を書くのは可能だし

と言ってる。
2019/10/13(日) 21:16:31.13ID:BXD6hdDp
>>484
https://www.youtube.com/watch?v=Aa55RKWZxxI
2019/10/13(日) 21:24:28.67ID:OAJhlsQO
>>484
でも主張を見る限り
オブジェクト指向自体を嫌ってるよね
2019/10/13(日) 21:28:56.05ID:P1vmVh21
実際問題、「オブジェクト指向」で作ってたとしても
機能や実装の説明において「オブジェクト指向」という言葉を使わない方が
誤解が少なく有用な説明になる。
そういう意味で「オブジェクト指向」って言葉は有害なだけ。
2019/10/13(日) 21:43:50.15ID:V3xYaAid
Cがもうちょっと型付けが強くて
関数とかポインタとか細かい部分の記法がこなれていたら
世界はこんなに複雑じゃなかったんじゃあるまいか
2019/10/13(日) 21:50:39.84ID:OAJhlsQO
オブジェクト指向七不思議

@オブジェクト指向の定義
→議論の最後はいっつも「お前はオブジェクト指向をわかっていない!」
そんなやつとハナから議論すんなと
Aオブジェクト指向のメリット
→イマイチ納得できる数字が上がらないのとメリットと言えるロジックが出ない
Bオブジェクト指向言語とのリンク
→どんな思想でこの機能が追加されたのか?オブジェクト指向にそんなのねーじゃん
Cオブジェクト指向って流行ってる?
→これ流行ってるの?誰も話題にしてる奴がいないような気がする
Dオブジェクト指向の歴史
→志村なのか相撲のトークなのかアランケイなのか
E人によって言うことが変わる
→決して一つとして同じものがない、もう、宗教である
F誰もその効果を検証しない&できない
→やっても「お前のはオブジェクト指向ではない!」って言われる。酷い
G死ねよ
→もう死ねよ
2019/10/13(日) 21:52:10.09ID:OAJhlsQO
オブジェクト指向七不思議

@オブジェクト指向の定義
→議論の最後はいっつも「お前はオブジェクト指向をわかっていない!」
そんなやつとハナから議論すんなと
Aオブジェクト指向のメリット
→イマイチ納得できる数字が上がらないのとメリットと言えるロジックが出ない
Bオブジェクト指向言語とのリンク
→どんな思想でこの機能が追加されたのか?オブジェクト指向にそんなのねーじゃん
Cオブジェクト指向って流行ってる?
→これ流行ってるの?誰も話題にしてる奴がいないような気がする
Dオブジェクト指向の歴史
→志村なのか相撲のトークなのかアランケイなのか
E人によって言うことが変わる
→決して一つとして同じものがない、もう、宗教である
F誰もその効果を検証しない&できない
→やっても「お前のはオブジェクト指向ではない!」って言われる。酷い
G死ねよ
→もう死ねよ
2019/10/13(日) 21:52:44.70ID:OAJhlsQO
オブジェクト指向七不思議

@オブジェクト指向の定義
→議論の最後はいっつも「お前はオブジェクト指向をわかっていない!」
そんなやつとハナから議論すんなと
Aオブジェクト指向のメリット
→イマイチ納得できる数字が上がらないのとメリットと言えるロジックが出ない
Bオブジェクト指向言語とのリンク
→どんな思想でこの機能が追加されたのか?オブジェクト指向にそんなのねーじゃん
Cオブジェクト指向って流行ってる?
→これ流行ってるの?誰も話題にしてる奴がいないような気がする
2019/10/13(日) 21:53:14.95ID:5y3mzviq
対象ドメインと自分たちの思考パターンに適した言語やパラダイムを選べばいい

状況に応じたトレードオフを判断できず
選択の間違いを言語やパラダイムのせいにしてる人は成長しない
2019/10/13(日) 21:53:39.39ID:OAJhlsQO
一回だったのになんかたくさん書き込んだw
2019/10/13(日) 22:10:46.76ID:bBavR94N
>>485
ん?Javaも嫌いって?
やっぱりオブジェクト指向じゃないんだねw
495デフォルトの名無しさん
垢版 |
2019/10/13(日) 22:22:55.00ID:QsD0TvFj
>>490
>@オブジェクト指向の定義
>→議論の最後はいっつも「お前はオブジェクト指向をわかっていない!」

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

この考え方に至ってからは、オブジェクト指向の理解もすんなり進みました。
上手くオブジェクトを定義して、上手く会話させてやるのがオブジェクト指向
での設計なんだなーと今でも思っています。
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
2019/10/13(日) 22:24:07.52ID:BXD6hdDp
>>494
https://www.yegor256.com/2016/08/15/what-is-wrong-object-oriented-programming.html

※俺もこのサイトを見るまで、まさかここまで沢山の著名人がOOPを批判しているとはしりませんでした
2019/10/13(日) 22:26:34.71ID:BXD6hdDp
上のURL一式
テンプレにでも入れときやがれってんだ
ハゲどもが
498デフォルトの名無しさん
垢版 |
2019/10/13(日) 22:30:46.07ID:QsD0TvFj
オブジェクト指向とオブジェクト指向プログラミングは全く違うよ?

>>496
>※俺もこのサイトを見るまで、まさかここまで沢山の著名人がOOPを批判しているとはしりませんでした

オブジェクト指向は俺の股間に付いているが、オブジェクト指向言語はプログラミングの形式に過ぎない!
2019/10/13(日) 22:36:55.52ID:BXD6hdDp
自分の考えに近いなと感じたのが

Paul Graham (2003)

Richard Mansfield (2005)

Eric Raymond (2005)

Eric Allman (2011)

など
500デフォルトの名無しさん
垢版 |
2019/10/13(日) 22:38:35.34ID:QsD0TvFj
>>486
>でも主張を見る限り
>オブジェクト指向自体を嫌ってるよね

いわゆる『オブジェクト指向プログラミング言語』とやらは、オブジェクト指向を表現していないからな。

例えば『チンポがしこしこする』ってのは、オブジェクト指向言語プログラミングでどう表現する?
501デフォルトの名無しさん
垢版 |
2019/10/13(日) 22:40:49.09ID:QsD0TvFj
オブジェクト指向は俺の股間に付いているのだから、オブジェクト指向プログラミング言語は必要無い!

>>496
>※俺もこのサイトを見るまで、まさかここまで沢山の著名人がOOPを批判しているとはしりませんでした

それでもオブジェクト指向は俺の股間に付いている、違うか?
502デフォルトの名無しさん
垢版 |
2019/10/13(日) 23:08:42.60ID:wbni+XXK
>>496
コメント欄でOOPいやPOO信者が火消しに必死www
2019/10/13(日) 23:16:24.01ID:BXD6hdDp
>>502 この人?
ttps://c.disquscdn.com/uploads/forums/294/4852/avatar92.jpg
2019/10/13(日) 23:20:58.27ID:BXD6hdDp
Dunets Nickolay  a year ago

One more for the list.

https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53

OO sure promised a lot in the early days. And these promises are still being made to naive programmers
sitting in classrooms, reading blogs and taking online courses. It’s taken me years to realize how OO lied to me.
I too was wide-eyed and inexperienced and trusting.


強烈な意見!
2019/10/13(日) 23:54:33.20ID:bBavR94N
虎の威を借る狐
2019/10/13(日) 23:57:08.03ID:BXD6hdDp
>>505
くるしいのうw
2019/10/14(月) 00:01:58.08ID:SgqiekNw
>>505
https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53

このサイト読むと
何十年もの間、Smalltalk、最後に.NETとJavaと、オブジェクト指向言語でプログラミングを行って
継承、カプセル化、および多態性の利点を活用するために熱心っだったけど、だまされていたって
懇々と唱えてきて、ホント気の毒

俺から言わせてもらえば、そんなに年月をかける前に
これは変だと気がつけばよかったのにね
2019/10/14(月) 00:07:39.42ID:SgqiekNw
The problem with object-oriented languages is they’ve got all this implicit environment
that they carry around with them. You wanted a banana but what you got was a gorilla
holding the banana and the entire jungle.

もう爆笑w
2019/10/14(月) 00:09:10.18ID:SgqiekNw
>>508
ちな、これ、Erlangの作成者Joe Armstrongの発言ね。
2019/10/14(月) 00:12:26.09ID:SgqiekNw
まぁ、bBavR94N のような奴はOOPが廃れたら、
また別の流行見つけてそのカルト信者になるんだろうね
それはあんたの人生の選択だし、どんなに頓珍漢な迷信であっても
回りに迷惑かけない範囲で好きにしてくれ
2019/10/14(月) 00:35:26.10ID:SgqiekNw
どんな迷信染まっても
周りや他人に迷惑は絶対かけるなよ
いいな。
2019/10/14(月) 00:47:44.24ID:yAy44Gfv
で、結局オブジェクト指向は素晴らしいの?
そうじゃないの?
代替案は何?
2019/10/14(月) 00:52:04.13ID:SgqiekNw
それは、ヒ・ミ・ツ
ハート
2019/10/14(月) 02:48:38.03ID:R6XBDC2Y
>>507
誰も理由書いてないのなw
2019/10/14(月) 08:07:29.36ID:kizbcx2j
https://mainichi.jp/articles/20191013/k00/00m/040/245000c
2019/10/14(月) 09:17:14.83ID:DJigOeDn
>>512
普通に組むんだ

機能一覧
→各機能の処理一覧
→それに対応する関数一覧

と作成して関数一覧ができたら設計は終了なのさ
それ以上はプログラマ側では何もすることがない

これでプロジェクトがうまく行かないならそれは仕様の決定段階ですでにおかしいのであって
もし、自分が改善したいと思うならば積極的に仕様の決定まで口を出さなければならない
2019/10/14(月) 10:11:53.94ID:HLISTn9N
>>516
なんでオブジェクト指向は、それらの関数を
組み合わせて使う時の問題を解決するものという
レスを無視するの?
2019/10/14(月) 10:45:33.29ID:vstzJxvv
処理をまとめる→関数
関数の第一引数でまとめる→クラス
2019/10/14(月) 11:03:45.34ID:CmkGXuzV
>>516
複数の機能から使う共通のデータや状態、それらの制約や整合性をどう維持するか
という部分が単純な機能分解ではカバーしにくいところ
その問題を考慮したのがDOAやOOAD

A形式のファイルをB形式に変換するとか
Aというシグナルが来たらBの状態をB'に変更するとか
そういう段階まで分解してくれた仕様だけ考慮すればいいなら
単純な機能分解が適してる
2019/10/14(月) 12:57:08.92ID:UD02Ubfx
>>514
発言の一部抜粋だよ
2019/10/14(月) 15:31:56.02ID:kveEli82
>>518
よくわかってらっしゃる
2019/10/14(月) 15:32:13.69ID:DJigOeDn
>>517
別に必要ないだろw
関数一覧の関数それぞれ組んできゃ終わるんだからw
2019/10/14(月) 15:34:52.40ID:DJigOeDn
>>519
いらないいらない
関数一覧の関数は全部独立してるものと仮定して組んでもいいのよ
っていうかそれで動くんだから余計なことすんなよクソ虫
2019/10/14(月) 16:55:29.97ID:dBbTykTT
オブジェクト指向学ぶ為の書籍一覧がほしい
2019/10/14(月) 17:08:32.29ID:DJigOeDn
>>524
書いてるやつもここのとどっこいだぞ
なぜなら万人が認めるオブジェクト指向はこれですって言える資料がこの世にないので

しかしこの業界なんでこんなんになっちゃったかなぁと

プログラミングとは目標を実現するための1つの手段という位置付けに留めて置いたほうが
結果的に実力は付くよ
プログラマはこのクソ宗教のせいで多くのやつが視野狭窄過ぎて参考にならない
2019/10/14(月) 17:44:53.07ID:/SENrUVD
別に、機能別にライブラリにして行けばいいのさ。
かしこまってOOPだなんだとギスギスする必要は無い。
2019/10/14(月) 18:24:41.16ID:g1sRqVTr
>>522
小さいプログラムならそうだけど
GUIアプリとかウェブアプリでそんないきあたりばったりな
コード書いてるとすぐに破綻する。
設計が必要。
2019/10/14(月) 18:32:42.20ID:aFj9yxTE
ワイもそれ思った
業界を語るわりに経験が感じられない
2019/10/14(月) 20:07:01.22ID:YKkFW8bb
>>527
違うな
どんなデカイプログラムも分割すれば小さい単位になる
そしてなってしまえば後の作り方はおんなじや
違うのはヘタクソだからや
2019/10/14(月) 20:09:08.49ID:YKkFW8bb
俺に反論するなら

じゃあ、デカイプログラム特有の仕組みは具体的に何があるの?

って聞くぞ
調べてから書き込めよ
2019/10/14(月) 20:24:13.94ID:ZHVtioYP
>>529
その理屈だとどんなでかい建築物でも分割すれば
小さな家となる。そうなってしまえば、
高層ビルでも犬小屋でも作り方は同じってことになってしまうぞw
2019/10/14(月) 20:25:26.99ID:ZHVtioYP
>>530
> デカイプログラム特有の仕組みは具体的に何があるの?

小さな単位を組み合わせる仕組み。
例えば、モジュールをプラグイン化し、
本体に手を入れずに拡張する仕組みとかね
2019/10/14(月) 20:27:29.74ID:ZHVtioYP
WindowsとかLinuxとかのOSはでかいプログラムの代表例だが、
コアの部分は小さくして、ドライバにより多くのハードウェアに対応してる。
こういうところにオブジェクト指向による設計が使われてる。

C++を批判してるLinusでも
https://cpplover.blogspot.com/2013/05/linus-torvalsc.html
> Cでオブジェクト指向コード(ファイルシステムとかだと有用)を書くのは可能だし、

Cでオブジェクト指向はファイルシステムなどで有用と言っている。
2019/10/14(月) 20:29:36.37ID:YKkFW8bb
>>531
プログラムには重力ねーし
そういう構造いらねーから
2019/10/14(月) 20:30:22.97ID:YKkFW8bb
>>532
機能一覧に入ってるんだよな?それ
関係ねーじゃん
2019/10/14(月) 20:32:07.12ID:YKkFW8bb
>>533
c言語の機能を使ったときだけうまくいくってリーナス言ってんじゃんw
2019/10/14(月) 20:32:37.60ID:YKkFW8bb
敗北を知りたい
2019/10/14(月) 20:33:05.57ID:ZHVtioYP
>>534-536
レスするなら反論しろよw
2019/10/14(月) 20:33:32.98ID:ZHVtioYP
>>537
敗北だと自覚してるから、そういう書き込みしたくなるんやでw
2019/10/14(月) 20:38:23.47ID:nTxvlnlQ
C以外糞って言うならならPythonもゴミじゃん。
Pythonしか書けない奴はどうなるの?
541デフォルトの名無しさん
垢版 |
2019/10/14(月) 20:47:03.67ID:1VJg7cxR
糞に集る蠅
2019/10/14(月) 20:47:48.13ID:sA+F1c9p
オブジェクト指向は
組み込みとすこぶる相性が悪い
2019/10/14(月) 20:50:13.94ID:ZHVtioYP
× オブジェクト指向は組み込みとすこぶる相性が悪い
○ オブジェクト指向言語は組み込みとすこぶる相性が悪い

オブジェクト指向であれば組み込みでも使われてる。
2019/10/15(火) 00:07:06.97ID:ntxaWRsX
オブジェクト指向とΣ計画はセット
資本主義社会じゃ無理
言語製作者陣の理念と現状にズレがあるので、オブジェクト指向が使いにくくなっているだけ
カネと労道の壁を突破してありとあらゆるオブジェクトを集積するセンターがあれば完璧になる
2019/10/15(火) 00:15:06.48ID:t7KPnDkH
まさにカルト
2019/10/15(火) 01:10:43.04ID:t7KPnDkH
>>533 印象操作しないで ちゃんと引用しろ

> Cでオブジェクト指向コード(ファイルシステムとかだと有用)を書くのは可能だし、
> しかもC++のような余計なクソがついてこない。
2019/10/15(火) 01:14:09.75ID:t7KPnDkH
>>533

> Cでオブジェクト指向コード(ファイルシステムとかだと有用)を書くのは可能

これどういうコードを指すのか分かっているのか?
教えてクン卒業して一回見てみろ
2019/10/15(火) 05:23:15.21ID:f1lycctY
Linuxのファイルシステムのコードを見れば
(C言語によるオブジェクト指向コード)がわかるのでは?
2019/10/15(火) 07:38:19.65ID:qEfw8gKj
がっかりするだろうな
ちょうどいいスレがある
https://mevius.5ch.net/test/read.cgi/tech/1543063194/
2019/10/15(火) 10:59:27.07ID:HKs4cE0e
何かを作り上げるのは向いてないな
作ったものを綺麗にディスプレイするのには使える
まあ 数学の公式みたいに絶対に変更しないって
条件では使える ただそうなることは無いw
2019/10/15(火) 11:07:07.56ID:m0jqn6iG
>>531
プログラムには重力掛からないから、どんなに大きなプログラムでも大きい事で特別何か対策しなきゃならないって事は無いよ。
まあ、大規模なプロジェクトでは人間同士のコミュニケーション不足やトラブルはあるけどなw
2019/10/15(火) 11:12:45.75ID:m0jqn6iG
まあよくある話、
AはBの理由や懸念があるからDの方法は不適切なのでCの作りとする
なんてルールがいつのまにかAはCの作り方にするってだけ伝わって、
なんでAがCみたいな面倒くさい作りにするんだよ、Dの方が簡潔で分かりやすいだろ。なんて勝手に解釈変えられて
結果的に機能を満たさないものになるなんて事はよくある。
2019/10/15(火) 13:08:44.71ID:ZJNGtpBE
>>551
具体的には?
2019/10/15(火) 13:21:00.59ID:f1lycctY
>>551
> どんなに大きなプログラムでも大きい事で特別何か対策しなきゃならないって事は無いよ。

大きいプログラムは、小さく分けるという対策をしなきゃならんよ。
小さく分けるということは、組み合わさなければ動かなくなる。
つまり組み合わせるコードが必要になるんだよ
555デフォルトの名無しさん
垢版 |
2019/10/15(火) 13:24:45.65ID:v+D129jp
>>554
>大きいプログラムは、小さく分けるという対策をしなきゃならんよ。

チンポは独立した生き物であり、チンポはチンポ独自の知能回路を実装しておかないとな!
2019/10/15(火) 14:42:57.70ID:8vI99k17
UNIXが、あれはあれで一つの大規模なシステムと考えても差し支え無いものだったよな。
ひとつもオブジェクト指向になってないんだけど、簡潔なルールのもとに各自必要な処理を追加していた。
2019/10/15(火) 15:04:03.47ID:f1lycctY
UNIXがオブジェクト指向でないと考えるのは、
C言語がオブジェクト指向言語じゃないからというだけ?
2019/10/15(火) 20:43:44.62ID:8zb4FDAz
人が作ったものを使うだけならすごく便利
ただ作り直そうとするときつい
pythonのライブラリとかよくわからんまま
使う分には便利
2019/10/16(水) 14:31:18.50ID:R4S9h347
オブジェクト指向なんて考えが生まれる前からあるからさ。
2019/10/16(水) 14:59:34.80ID:br88Hn4r
オブジェクト指向なんてホントは主目的じゃないけどね
クラスを幾段も連結できるオブジェクト演算子ができてから
それの使い方の総称になっただけ
2019/10/16(水) 15:47:24.74ID:0fRYOcFI
小説で言う「起承転結」のようなもの
大まかにそういう考えにしましょう。という設計で
それに従わなくても良いものが作れないことはないが、
だいたいは従ったほうが良いというものだよ
2019/10/16(水) 16:08:44.07ID:kaZJZnxg
ピンとけえへんわー
2019/10/16(水) 16:11:23.80ID:R4S9h347
おまえら頭悪いんだから、いっぺんにまとめて考えないで
なるべく小さな単位にして分けて考えろやって話だからな
その分け方の方法のひとつがオブジェクト指向ってだけ。
2019/10/16(水) 16:47:56.58ID:K40FZLRW
オブジェクトのメリットは単純に
補完が効くとこだな 設計思想云々は
どうでもいいがこれは便利 
2019/10/16(水) 19:40:52.15ID:WNhbUC2h
受け身でコーティングできるのがいいんだろ?thisポインタ受け取ってさ

それ以上の意味はないよ

イベント駆動とGUIと人間の汎化の理解がマッチすると気持ちいいくらい

マイクロソフトでさえ糞クラス設計するのに、専門卒Fラン大卒が何を言っても無駄
566デフォルトの名無しさん
垢版 |
2019/10/16(水) 21:47:12.81ID:DLS4a0j4
Unixはコマンドをパイプでつなげて処理をするところがオブジェクト指向っぽい
コマンドとコマンドは標準入出力によってつながるわけだけれども
そのことは重大な事実を示唆していてオブジェクトとオブジェクトを
つなげるインターフェースはシンプルな程よいってこと
567デフォルトの名無しさん
垢版 |
2019/10/16(水) 22:05:44.03ID:DLS4a0j4
C言語で書かれたプログラムでオブジェクト指向っぽいと思ったのはqmail
ファイルが細かく別れていてファイル内でしか参照できない変数や関数が全体の半分を占める
ファイルごとにテストできそうだなーって思った
qmailはバグが少なくて信頼性が高いことに定評がある
オブジェクト指向をうまく使うとそういうことも可能ではあるけれども

業務システムではなかなか難しいところがあって
業務要件はころころ変わるけれども既存のプログラムはできるだけ変えないって
圧力がかかって継ぎ接ぎだらけのハウルの動く城みたいなうごめくオブジェクトの塊ができあがる

既存のプログラムを変えない圧力から逃れるためにテスト駆動開発などで
テストを整備して継続的インテグレーションで自動化するみたいなことが流行ったんだろうね

テスト容易性でオブジェクト指向の良し悪しを判断するのはありだと思うなど
2019/10/16(水) 23:06:35.43ID:L32RXjAf
>>566
そうでもないよ。

パイプでつなげるとデータの区切りをどうするか?って問題が出てくる。
たいていは1行1データでいいんだけど、データの中に改行が入る場合
どうするか?って問題が出てくる

改行コード以外の文字を使うという方法もあるが、じゃあその文字が
データの中に含まれていたら?という話に変わるだけ
2019/10/16(水) 23:10:30.46ID:PIk7Byrk
>>566
パイプは関数型を想起させる代表例だと思うんだが

テキストという共通のデータフォーマットを入出力に使って
処理のパイプラインにデータを流していってる

シェルスクリプトの場合は
汎用的なテキストフォーマットで型がないから
各処理の内部で毎回パースが必要になったりもするし
コマンド間の依存性を下げて疎結合にするのはかなり難しい
2019/10/16(水) 23:14:25.14ID:pPSq4FoR
>>568
改行よりも EOF の方が問題だと思う
2019/10/17(木) 14:19:37.41ID:Yq4xgtdT
Unixはパイプを多用するからオブジェクト指向とは真逆っていうのは俺もそう思う
だからjqみたいなむりくりなツールが必要になる
2019/10/17(木) 14:43:14.13ID:huR1Dm0j
パイプを多用すること自体は関係ないよ。
オブジェクト指向でもパイプを使うことは出来る。
573デフォルトの名無しさん
垢版 |
2019/10/17(木) 18:58:47.19ID:yPX5iNuE
使うことが目的ですか。
まるで分かってないね。
2019/10/17(木) 20:20:25.32ID:EBsizoXn
Unixのパイプはテキストとして行ベースで処理するから階層構造を扱えない
2019/10/17(木) 22:10:58.47ID:PM4g13f5
XMLは階層構造を扱えないと?
2019/10/17(木) 23:08:33.94ID:ZLbPJS7B
Windowsの場合、システム管理にWMIオブジェクト使うのでPowerShellのパイプがオブジェクトを通すのは理にかなってる
2019/11/02(土) 13:55:20.18ID:2/JwqrQB
オブジェクソ指向でいいよ
2019/11/04(月) 06:20:43.65ID:7p81GTJD
じゃあおまえはそれで
2019/11/04(月) 11:52:51.77ID:PrFaR+H+
Class A a, Class B b, Class C c があって
c = a + b #共通コード
と書いた場合、C言語の
c = 1.0 + 2
みたいな暗黙の型変換をしてくれる場合はコードの共通化がスムースに行けると思う
実際は...
Class A a,b,c #or Class B a,b,c
c = a + b
こんな感じで '+' の定義があれば行ける

たぶんClass の階層構造とタイプしたコードの振舞いここら辺の認識に錯乱が起きて
秩序なき構造を待つClass が記述できる結果オブジェクト指向の概念の考え方に混乱が起きている

CもC++も副作用に対する制限が弱めなので
挙動もプログラムの構造も発狂混乱混沌を含んだものが容易に出来上がる

解決策は、〜〜ツクールで定義したものをC++等のコードで吐き出して
必要に応じ手を入れるじゃないかな
アセンブラで複雑なプログラム何て書かないよね、同じちゃう?
2019/11/04(月) 15:53:17.69ID:fwURXfb5
>>579
java みたいに演算子のオーバーロードを許さない!というポリシーはいかがでしょうか?
2019/11/04(月) 20:22:08.57ID:PrFaR+H+
>>580
java の演算子 + - * / 等算術演算子
ググって調べました(汗

C++ は演算子の再定義が可能で + - * / も出来る様だね
演算子の再定義は計算式の意図や意味の直観的認識を保障している
a = b + c で
int a, b, c であっても
Class XY a, b, c #2次元座標
であっても+ - * / が座標の移動や拡大縮小(スケーリング)な事を直観的に理解させることになる

ぶっちゃけ演算子のオーバーロードは習慣的な慣れ親しんだ記述でコードを読み書き抽象化したいそれだけの事
java の許さない!なポリシーは、アルゴリズム=コード を抽象化共通化したい場合
記号で書くな正式なメソッド名を決めてタイプしろって事

偉そうに書きこしてるけどjavaもJavaScriptもTypeScriptも厳密には確認してないからな

で、C,C++のバグの原因はアセンブラに近い危険なコーディングが出来ること以外に変数スコープの関係で
もしかすると単純なタイプミスでグローバル変数が壊せたり
自己責任な処理系なので当たり前に検出困難なバグが入る
2019/11/11(月) 12:38:43.87ID:BcaQQgi4
偉い人は言いました、本物のプログラマはfortranとコアダンプだけで書くと
2019/11/11(月) 22:05:44.85ID:VuQjDq/C
コアダンプは吐くもので書くものでは無いよな?
2019/11/11(月) 22:13:39.05ID:BGy7lUfx
だな
コアダンプを書くとは言ってないしそのとおりだな
さすがだな
585デフォルトの名無しさん
垢版 |
2019/11/11(月) 23:35:07.89ID:MquajfZd
コアダンプは吐くものでも無くて吐かれるものだからな
喰わせたモノが余程ヒドい時の嘔吐物だから
2019/11/12(火) 01:03:45.48ID:FaYMVIJ4
OSが吐くものだろ…
2019/11/12(火) 04:24:25.01ID:dtyPEbD0
吐くっていうのは人間がやることに対して使うんですよ!
人間じゃないのに、人間がやるような言葉を使ってはいけません!
2019/11/12(火) 14:38:25.46ID:y6vE6u1H
ここで書き込みされてる方って人間じゃなくて人工知能?
2019/11/12(火) 16:50:28.20ID:cUrTgE5W
よくわかったな
2019/11/12(火) 17:35:17.05ID:6X9QzlAs
人工無能
591デフォルトの名無しさん
垢版 |
2019/11/12(火) 18:29:30.35ID:m7v6pKzu
つまりオブジェクト指向とは、俺の股間に付いているモノなのである!

                                             
 .              ,                   ャ  ィE5!..             
 ..           ,,.e;〆            .、   w===|====!.     π .e、x&             
 ..          ^~ !      ``=    π     ,, カ. _    _ ̄オ⌒|! `ヘ                  
 .         fラ⌒ ̄l「~~~^.        ,.タ.     .ル .ll ~\_   〃 〃.  ^..                  
 .             .オ..      ,...__,xf~.      ^  f!  、               
 .            '^´         ̄ ̄..                                         
          ..                   l|..       r=キ'⌒..           
 .         `!、        ~~~~~~⌒...    l}                        
           ⌒heィ~.     .+s_、_e.     .^+--w=f   `ヲse、._ _、...     ′     

チンポは独立した生き物であり、本人の意思とは無関係に、自らの意思で勃起してシコシコする!
592デフォルトの名無しさん
垢版 |
2019/11/13(水) 00:56:45.07ID:CvcI+Aq3
>>589
2ちゃんねるって何でもかんでも話題逸れていくの昔から不思議でたまらなかった
オブジェクト指向の解釈が二十年以上収斂しないなんておかしい
2019/11/13(水) 07:07:35.52ID:zN3QXkcQ
自分で考えないからねえ
2019/11/13(水) 08:00:01.45ID:71NryVAR
チューリングテストは合格だよ。ここまでおかしくならないとわからない
595デフォルトの名無しさん
垢版 |
2019/11/13(水) 15:26:30.70ID:H06se09Y
何冊か本読んだけど、結局、「オブジェクト指向には明確な定義が無い」
ってことが分かっただけ。
当然だよな。
プログラミング構造としては、アセンブラでもマクロ組めば同じことができる。

結局は、単なるコードの可読性やメンテナンス性の向上が、
新しい「質の変化」として宣伝されただけのシロモノ。
596デフォルトの名無しさん
垢版 |
2019/11/13(水) 15:34:48.16ID:EBbfjM6A
>>595
>何冊か本読んだけど、結局、「オブジェクト指向には明確な定義が無い」ってことが分かっただけ。

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

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

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

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
2019/11/13(水) 15:37:21.11ID:w6BX6q9J
ならば質の変化がオブジェクト指向と結論が出たわけだな
598デフォルトの名無しさん
垢版 |
2019/11/13(水) 15:38:45.74ID:EBbfjM6A
ちんぽがしこしこ、そんな言語表現あるのか?

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

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

ちんぽがしこしこしてしまったのが、不適切な関係なのか?
2019/11/13(水) 16:10:11.12ID:dh6g9y9F
オブジェクトの和訳は目的語でいいというのが、個人的な結論
600デフォルトの名無しさん
垢版 |
2019/11/13(水) 16:44:53.22ID:MUcE97Pa
>>595
ウィナー&ピンソン本にあるよ
2019/11/13(水) 16:46:37.89ID:MUcE97Pa
おんなじフォーマットの話を繰り返してただけか…
2019/11/13(水) 23:39:42.53ID:Q6d1lfHy
やたらエロ広告あるのは、フィルタリングさせるためか
青少年はアクセスできない
2019/11/13(水) 23:49:10.62ID:H06se09Y
>>596
>>600
自分のようなアホに返信ありがとうございます。
胸は異常を自覚症状として脳に伝達できるが、チンポは常に受身。
教えていただいた著者も読ませてもらいます。
604デフォルトの名無しさん
垢版 |
2019/11/14(木) 01:42:13.43ID:Nj0oVq+6
クルマに例えてくれ
605デフォルトの名無しさん
垢版 |
2019/11/14(木) 14:05:11.71ID:yrxcIVFv
>>604
>クルマに例えてくれ

この車、タイヤがパンクしてるぜ!
この俺、チンポがシコシコしてるぜ!
2019/11/19(火) 15:28:02.12ID:3bkVS4Z1
「オブジェクト指向」とは、デジタル土方に仕事をさせるための知恵です。
例えば、「この変数は読み出し専用と仕様書に書いただろうが。勝手に
書き換えるな」と土方に言っても仕方ありません。読み出し可能だが、
何をやっても書き換えることを不可能にすることで、土方を働かせる。
そのために「オブジェクト指向」があるのです。
2019/11/19(火) 19:58:46.55ID:tuUrGmn3
筋肉バカにはスポーツを

低学歴オタクには最新機能wを

与えておけば、飽きずに追い続けるだろ
608デフォルトの名無しさん
垢版 |
2019/11/26(火) 20:04:11.20ID:RdNBYs6F
>>606
それはJavaとかいう土方作業用の言語の話な
2019/11/28(木) 21:19:32.78ID:LD1N+/Md
問題を切り分け整理し類型を見つけ出すことで科学は進歩してきた
それはまさにオブジェクト指向の遠大な理想なのだ
2019/11/29(金) 00:48:35.01ID:P+FSrYZP
やがて人々は問題から目を背けオブジェクトを分割する手法のみによってプログラムを書き出した

オブジェクト指向によって無駄に複雑なプログラムが量産されるプログラム暗黒期の到来である

90年代はそんな感じだった
2019/11/29(金) 01:12:49.76ID:itcsROzM
暗黒の種類が変わっただけ定期
2019/11/29(金) 03:01:40.04ID:kZePf2/6
オブジェクト指向が普及したことによって直感的なプログラミングが可能になっただろ
613デフォルトの名無しさん
垢版 |
2019/11/29(金) 07:28:16.53ID:JxQWTsi+
>>612
オブジェクト指向が直感的…?��
2019/11/29(金) 07:39:28.48ID:ZYRA67vF
>>612
それは人によるだろうな
2019/11/29(金) 09:57:42.34ID:D2OVMitV
プログラムを一行も書けないウンコSEでも
それっぽいキーワードを並べれば馬鹿を騙せるようになったのが
オブジェクト指向の功績だよ
2019/11/29(金) 11:35:31.08ID:HRptkZoq
逆じゃねーかな

オブジェクト指向が普及したことで
コードの書けないSEはSE様からSE(笑)になり
設計のできないプログラマー(=コーダー)は淘汰され
設計も普通にできるプログラマーの地位は上がった

職場によるのかもな
617デフォルトの名無しさん
垢版 |
2019/11/29(金) 12:10:01.00ID:4YghCctx
プログラムの規模も数も激増した
質も押し並べて上がった

すべてオブジェクト指向の功績
2019/12/01(日) 02:45:55.31ID:+CXrxgrh
シンプルにインテリセンスが使えるのは便利
それだけだな 後、頭いいいやつの思考が
分かりやすいぐらいだな
2019/12/01(日) 11:13:37.21ID:uAQAPMuh
>>612
これだな。
というか、このメリットが活かせないのにOOPとか、神クラスの予感しかしない(恐怖)。

神クラスというのは、OOPでやっては駄目なパターンね。
2019/12/02(月) 19:27:21.11ID:+Z2AJKW1
typedef する文化
typedef int width; // 幅を表す型を定義
width square_width; // int square... と同等
こんな感じで変数の型にtypedefで別の名前つけて統一的に管理する
この習慣がないとオブジェクトの設計とネーミングが苦痛だと思う

最近C++でtypedefしろtypedefしろって言われて調べたら目からウロコだっと
typedefの習慣すらないのでclass,objectとか言われても混乱する
適当にコーディングする時、一々typedefなんてしないし、その延長線上にあるclassのデザインもネーミングも適当

結局、ガッツリ設計して適切なネーミング他でしっかりした管理メンテナンス体制にする場合
オブジェクトなりクラスなりが便利なのであって
適当な書き捨てコードだと苦痛なんじゃね?

クソはお前(自分)だ、かな
2019/12/02(月) 22:01:40.89ID:4oYS2S54
typedef int height;
height square_height;とするの?
それともwidth square_height;とするの?
2019/12/03(火) 00:09:42.08ID:VBoMd+eN
>>620
書き捨てコードでもクラスは便利だよ
「関心の分離」がやりやすいからね

そもそも、typedefする文化って何?
typedefは便利だけど、乱用するとわけが分からなくなりそうだがなぁ
2019/12/03(火) 01:33:03.76ID:ufFgBLZs
>>621
こっち
>height square_height;
なんか面倒くさくて信じられんだろ?
オレはなんだこれ、ムハ〜とかなった
もしかすると
typedef int width;
typedef height width;
みたいに並べて書くのかも知れない

コードの全体の規模が大きい場合typedef int widthを
typedef long long width
とかして扱うレンジを拡大したり

>>622
扱うプログラムの規模次第なんだよ
短いコードだと一々typedefなんかしないよね
だからtypedefする習慣は知らなかった

恐らくtypedef する習慣とテンプレート機能は親和性が高い
2019/12/03(火) 04:12:53.88ID:ufFgBLZs
>>623
typedef int width;
typedef width height;
微妙に間違えた
2019/12/03(火) 13:15:10.28ID:Inq0Uwe1
そんなtypedefすんな。
typedefするのは単位系で纏めろよ。
同じ単位系なのに別々にtypedefしたら
扱い辛くて仕方ないだろ。
2019/12/03(火) 13:23:27.92ID:aXM5qCgt
typedef mytype int;

typedef はいつも順番と;で叱られる。
2019/12/03(火) 13:24:03.97ID:Inq0Uwe1
widthやhightは、長さなんだから同じ単位系。
三次元の仮想空間の単位系か実世界の物差しの単位系かで分ける。
だから同じ変数名でも更にそれらを構造体やクラスで包める。
2019/12/03(火) 13:25:38.54ID:Inq0Uwe1
おまえら、ここのスレタイ100回音読してやり直せw
629デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:28:44.39ID:iL4nL4i7
785 名無し三等兵 sage 2019/12/03(火) 08:03:27.78 ID:sujZBpWD
>>762
>「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!

チンポにチンポ自身を扱く機能が備わっていないので自動詞は不適切だから(34文字)

胸(心臓)には鼓動する機能があるため自動詞の適用対象だが
チンポには勃起する機能はあっても自身を扱く機能はないので「チンポ『が』勃起する」は成立しても「チンポ『が』シコシコする」は成立しない
夢精した状況を「チンポ『が』シコシコした」と称したければ「チンポがエロい夢を見させ夢精した」=「脳ではなくチンポが思考を司りエロい夢を見させて夢精させた」という状況で可となる

脳でなくチンポで物を考える生物についてなら「チンポ『が』シコシコする」は成り立つ
如何にもだつお的じゃないか
2019/12/03(火) 23:10:32.73ID:ufFgBLZs
>>625
だから単位系を含め整理整頓してtypedefする習慣がないと
classのデザインや命名規則で躓いて苦労するって話です
クソクソではない以前の問題
classのデザインそのものがある意味typedefなので
631デフォルトの名無しさん
垢版 |
2019/12/04(水) 08:37:36.11ID:kf9TXe9z
オブジェクト指向というのは要するに構造化の延長であって、現実世界のオブジェクトと対応させる必要はない
グローバル変数(構造体)に名前空間を与えて関数とセットにすることでモジュール化を進めたものがクラス
要はオブジェクト指向っていう名前は無意味で、あくまで「機能ごとに関数を分割する」っていう手続き型プログラミングの原則を変数にもあてはめたものが今オブジェクト指向と呼ばれてるもの
2019/12/04(水) 11:04:40.53ID:Gxvpy2ME
同じ機能に同じ名前の原則は似たような処理をまとめて扱う事が出来て便利だし、いちいちクラス内をリファレンスする必要が無いからなぁ
テンプレートの功罪はさておき、ひとまとめできるのは何かと便利。
2019/12/04(水) 15:18:24.68ID:2/B1SMF3
だが、オブジェクト指向の設計に馴れていないと一つのクラスにあらゆる機能をまとめ、クソみたいなクラスができあがるから注意が必要。
ま、これはオブジェクト指向がクソというより、勘違いオブジェクト指向プログラマーがクソなだけだが。
634デフォルトの名無しさん
垢版 |
2019/12/05(木) 08:59:31.49ID:Ei6ztOqe
>>13
チンポ「を」しこしこするのではなく、チンポ「が」しこしこする。
2019/12/05(木) 12:43:39.70ID:RjTW6Ir0
>>633
まあそれはオブジェクト指向にかぎらんよな
構造化プログラミングでも、多機能クソデカ関数作る奴はいる
2019/12/05(木) 13:16:22.10ID:H1IMzSl8
大きさで判断するな
大事なのは優しさだ
2019/12/05(木) 16:01:27.07ID:Art87gsc
オブジェクト指向でまとめのクラスはどのように考えてるんだろう?

どうしても巨大クラスにならないか?
2019/12/05(木) 20:01:31.66ID:SdrZ6zkh
>>637
責務単位で分割しているから、責務以上にクラスが巨大化することはないな。
初心者時代は責務そのものを巨大化させて、いつの間にか神クラスを作ってしまった...ということはあったけど、今はそんなことはない。
ソフトウェアの多機能化と共にクラスそのものが増えていくだけ。
2019/12/05(木) 20:27:48.03ID:DWX8mw2N
クラスだろうが関数だろうが、手に余るほど巨大に成長したら分割統治だべ。
2019/12/07(土) 17:50:53.43ID:ZsYnLuoj
メソッド間である種の依存ができるということに対する意識が低くなる傾向にある。
だからクラスでなんでも抱えるようになる。
それだったら構造体のがマシ。
少なくとも解きほぐしやすい状態なことが多い。
641デフォルトの名無しさん
垢版 |
2019/12/07(土) 18:44:55.10ID:N29lZ9qR
クラスの数が死ぬほど増えた場合
それを管理して見通し付けやすくするのは何を使うのがいいんでしょうか?
2019/12/07(土) 18:50:10.94ID:qysMmFFI
フォルダで分けたりしてみる
2019/12/07(土) 18:58:30.26ID:qysMmFFI
その時褐色巨乳エルフのアナルフィスト的なクラスがあったとして

褐色なのか?
巨乳なのか?
エルフなのか?
アナルフィストなのか?

で迷った末に作成日付で
分けることにしたら
思ったよりうまく分けられた
作った順に並べるのは
機能の上位下位がわかって
実はすごく読みやすい
2019/12/07(土) 20:02:05.98ID:hNCBwRLG
>>641
だいたいどの言語にもモジュールやパッケージって名前のクラスをまとめる概念があるやろ
2019/12/08(日) 08:44:32.28ID:pkvtzmnX
>>637
まとめのクラスは「まとめること」だけの機能とすることで巨大化することはなくなるよ
そういうクラスは逆に、すごく小さいクラスになりがち
2019/12/08(日) 09:43:00.70ID:h6+5qENq
>>645
それは、非OOPのやり方ね。
巨大化したら分割はその通りだが、「どのよう分割するのか」はOOPと非OOPで違いが出る。
647デフォルトの名無しさん
垢版 |
2019/12/08(日) 10:30:56.33ID:9o2gns5I
クラスにはインスタンスが1つしかないクラスと複数のインスタンスが生成されるクラスがあるが、この2つには本質的な違いがある
前者は「一つの機能を実現するモジュール」として『関数+グローバル変数』をまとめたもの
後者は先にデータ構造があり、『構造体+それを操作する関数』の組み合わせ
2019/12/08(日) 11:35:29.69ID:W5V+n78N
>>646
OOPではどのように分割するの?
649デフォルトの名無しさん
垢版 |
2019/12/08(日) 18:52:52.34ID:YIK015Yf
>>187
>これが抽象的過ぎてわからん。
>なんで、毎回曖昧な表現使うかな...。

928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く
650デフォルトの名無しさん
垢版 |
2019/12/08(日) 18:55:30.03ID:YIK015Yf
>>648
オブジェクト指向とは、独立した知能回路のことなんだが?
651デフォルトの名無しさん
垢版 |
2019/12/08(日) 19:31:06.38ID:3pi+cAN/
猫を継承して犬を作る。
652デフォルトの名無しさん
垢版 |
2019/12/08(日) 19:44:25.60ID:wYQ7YWRb
生物学的にはネコ目の下にイヌ亜目がある
イヌはネコだからそれは正しい
653デフォルトの名無しさん
垢版 |
2019/12/08(日) 19:47:18.68ID:wYQ7YWRb
>>650
そういえば知能の定義って何なんだろうな
目的を達成するために行動する能力のことか?
654デフォルトの名無しさん
垢版 |
2019/12/08(日) 23:21:06.18ID:YIK015Yf
>>653
知能とは独立して物事を判断する能力のこと。例えばチンポは自ら考え独立してシコシコする。
655デフォルトの名無しさん
垢版 |
2019/12/08(日) 23:37:52.87ID:YIK015Yf
ところで「チンポがシコシコする」という日本語表現は、文法的に正しいのか?

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

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

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
656デフォルトの名無しさん
垢版 |
2019/12/08(日) 23:49:49.88ID:wYQ7YWRb
>>654
なるほどね
657デフォルトの名無しさん
垢版 |
2019/12/08(日) 23:59:28.82ID:wYQ7YWRb
>>655
独立するということは人間に支配されないということ
つまりちんぽは人間に対してメソッドを公開してないってことかな?
2019/12/09(月) 10:43:22.28ID:2TRwHWS9
シコシコするってのを曲解してそれ以外の用法を見出せ無いだけの超鋼鉄頭な奴だなw

うどんなどの食感を形容したり、陰ながら何か作ってる様だったり、また新たな形容の仕方かもしれないだろうに。
659デフォルトの名無しさん
垢版 |
2019/12/09(月) 11:26:32.88ID:t3RZId/o
>>657
>独立するということは人間に支配されないということ
>つまりちんぽは人間に対してメソッドを公開してないってことかな?

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

この考え方に至ってからは、オブジェクト指向の理解もすんなり進みました。
上手くオブジェクトを定義して、上手く会話させてやるのがオブジェクト指向
での設計なんだなーと今でも思っています。
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
2019/12/09(月) 12:51:09.85ID:pvAiDBoK
>>659
なんで依存するん?
2019/12/09(月) 12:54:22.98ID:pvAiDBoK
独立してるならメッセージも必要ないじゃないか
ちんぽを切り離すべきです
2019/12/09(月) 12:55:27.25ID:pvAiDBoK
古代中国はそれで失敗しました
663デフォルトの名無しさん
垢版 |
2019/12/09(月) 13:04:47.41ID:t3RZId/o
>>661
>独立してるならメッセージも必要ないじゃないか

独立した人間は、人間同士でコミュニケーションするだろう?
2019/12/09(月) 15:50:22.63ID:ncqiXLwi
エネルギー供給とか伝達方法とかの理由で切り離せませんがな
665デフォルトの名無しさん
垢版 |
2019/12/09(月) 16:01:41.12ID:1WhdpUC2
>>664
>エネルギー供給とか伝達方法とかの理由で切り離せませんがな

人間関係とはそういうものだからな!
666デフォルトの名無しさん
垢版 |
2019/12/09(月) 16:11:35.92ID:1WhdpUC2
511 デフォルトの名無しさん 2018/10/29(月) 23:32:40.68 ID:LL+W6ENh
随意筋←implements─チンポ─implements→不随意筋
2019/12/09(月) 17:58:26.34ID:pvAiDBoK
>>663
ちんぽの話ですよね
2019/12/09(月) 18:00:39.43ID:pvAiDBoK
ちんぽ同士でメッセージを送り合うなら並列処理として認めますが人間とのメッセージ交換は依存です
ちんぽの独立性が危険と言えます
2019/12/09(月) 18:03:04.04ID:pvAiDBoK
独立してるがゆえに知能が成立するわけですから独立性が揺らぐならちんぽの知能についても疑いが生じるわけです
ゆえにちんぽは人間と切り離すべきと結論されるわけですね
これがオブジェクト指向設計です
2019/12/09(月) 18:14:55.52ID:pvAiDBoK
オブジェクト指向が目指すところは人間の支配から脱却した自律したちんぽ
つまり不随意筋などという概念そのものが人間の存在を暗示し人間の支配から抜けきれてないことを表してるわけです
自律したちんぽに存在するのは自律筋である
そういうことです
671デフォルトの名無しさん
垢版 |
2019/12/10(火) 20:12:21.34ID:oaI2pVED
オブジェクト指向は独立性と自律性が大事だね!
672デフォルトの名無しさん
垢版 |
2019/12/12(木) 11:09:49.47ID:Bar9pfap
>>661
>独立してるならメッセージも必要ないじゃないか

オブジェクト同士の二人称対話、これが人間関係というものだ!
2019/12/12(木) 11:21:36.42ID:vii2cg5y
そうだよ。
グローバル領域にメッセージ送って、そこにある自分宛てのメッセージを拾って動くのが真のオブジェクト志向システム
2019/12/12(木) 17:52:24.06ID:JPTMcftT
>>672
ちんぽの話ですよね
2019/12/12(木) 17:53:50.77ID:JPTMcftT
ちんぽ関係を教えてください
2019/12/12(木) 17:56:28.04ID:JPTMcftT
>>673
それではまるでオブジェクトがメッセージレシーバみたいじゃないですか!?
2019/12/12(木) 18:16:53.48ID:uDhkdcWC
メッセージの受け口が必要だな
678デフォルトの名無しさん
垢版 |
2019/12/12(木) 20:31:45.88ID:Bar9pfap
ちんぽがしこしこ、そんな言語表現あるのか?

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

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

ちんぽがしこしこしてしまったのが、不適切な関係なのか?
679デフォルトの名無しさん
垢版 |
2019/12/12(木) 20:38:56.44ID:Bar9pfap
>>657
>つまりちんぽは人間に対してメソッドを公開してないってことかな?

公開されているメソッド(オシッコを出す・オシッコを止める)と、公開されてきないメソッド(勃起する)がある。
公開されているメソッドは本体から司令操作できふが、公開されていないメソッドには出来ない。
680デフォルトの名無しさん
垢版 |
2019/12/12(木) 20:55:46.50ID:Bar9pfap
>>677
オシッコを出す・オシッコを止める、つまりオシッコはメッセージングの媒体である。
681デフォルトの名無しさん
垢版 |
2019/12/12(木) 20:57:50.33ID:Bar9pfap
>>677
メッセージの受け口を具体化すると、チンポに力を入れる・チンポから力を抜くという『力の出し入れ』。
682デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:02:18.51ID:Bar9pfap
おっと、これは大間違い!

>>680

×オシッコはメッセージングの媒体
○力はメッセージングの媒体

オシッコを出すオシッコを止めるはチンポがすることで、人間がチンポに対してする媒体は『力』。
683デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:11:59.45ID:Bar9pfap
>>677
>メッセージの受け口が必要だな

  俺 <筋力↑↓> チンポ

オブジェクト同士のメッセージングには必ずその受け口を指定しておかなければならない。
684デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:15:45.59ID:Bar9pfap
なおオシッコの時のメッセージングの方向は専ら本体→チンポだが、

>>402
>チンポがシコシコしている(チンポが自我を超越している)と、顔もアヘ顔になる。

チンポがシコシコしてるときのメッセージングは、チンポ→本体。
685デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:48:46.25ID:zkrlEdaN
ちんぽの話をやめろ
686デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:51:01.42ID:zkrlEdaN
本体があるってことはちんぽは子機なわけだから
それは親機である身体のコントール化にあることを意味していて
ちんぽは独立できてないんじゃない?
2019/12/12(木) 21:52:18.60ID:eXYQKMMQ
もういい加減チンポくん消えてくれ
688デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:53:08.50ID:zkrlEdaN
アメリカの指示通りにしか動かない日本は一国として独立してると言えるのか?
一身独立して一国独立す、ちんぽは国家だ
689デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:53:51.61ID:zkrlEdaN
>>687
ですよね

>>684
お前のことだぞおら!反省しろ!
690デフォルトの名無しさん
垢版 |
2019/12/12(木) 23:43:55.72ID:Nmxt4/D7
>>686
>それは親機である身体のコントール化にあることを意味していて

勃起する時のチンポ、夢精する時のチンポは、親機のコントロール下にあるのか?
2019/12/13(金) 07:27:36.58ID:Hed2e2P3
>>690
当たり前だろ太ももにある大動脈切ってみろよ勃起しないから
692デフォルトの名無しさん
垢版 |
2019/12/13(金) 08:33:54.43ID:8XMNzKd0
>>691
繋がりと独立性の両立こそがオブジェクト指向なんたが?
2019/12/13(金) 09:22:57.89ID:uecuFc6R
>>692
本体があるなら独立してない
ちんぽが本体で身体はパーツ、つまりちんぽ本体論の誕生を待たなければならない
2019/12/13(金) 09:27:58.44ID:uecuFc6R
ラジコンで操られてるマシンがあって側溝にハマってタイヤが空転した場合そうなることは操作する人間の意思に反することだとしても独立してるとは言えないだろ、ちんぽはラジコンで動いてます
695K&R先生
垢版 |
2019/12/13(金) 09:33:28.19ID:F5EsAFje
ジャバは糞
696デフォルトの名無しさん
垢版 |
2019/12/13(金) 09:44:22.48ID:8XMNzKd0
>>694
>ちんぽはラジコンで動いてます

チンポは本人の知らないときに自分の意思で勃起してシコシコして、チンポは本人の自我をも越えてしまう。
2019/12/13(金) 10:15:10.97ID:uecuFc6R
>>696
近所の家で電子レンジ使ってたらその電波に反応して勃起する、その現象を確認してるだけ
2019/12/13(金) 10:16:01.56ID:uecuFc6R
電子レンジがなぜチンと鳴るのか考えればわかる
2019/12/13(金) 11:37:00.78ID:NjKZ99SD
だが待て、チンは一回しか鳴らないぞ。
2回鳴るのなら納得もしただろうがな。
2019/12/13(金) 13:42:23.47ID:uecuFc6R
>>699
星が輝いていたらキラキラしてると言うだろ
目がギラついていたらギラギラしてると言うだろ
古来より人間は音を二回重ねることによって新しい概念を作り出してきた
ちんちんもその名残なんですかね!?
701デフォルトの名無しさん
垢版 |
2019/12/13(金) 15:55:25.25ID:f6KMU1PF
ワレはひとりの英雄を失った…

勃てよ!チン!
2019/12/13(金) 22:21:23.15ID:/YoSTFRT
ことばの協調に言葉を繰り返す文化はだいたいIQ非常に低い
703デフォルトの名無しさん
垢版 |
2019/12/14(土) 10:51:13.27ID:EHZj0VAM
チュンチョン含めて東アジア人はアシュケナージ系ユダヤ人に次いでIQ高いんだが…
2019/12/14(土) 12:50:33.16ID:BY4tlOTb
同じ語を繰り返すのは、幼児が発音し易いから多用するな。
まあ、似た様なもんだな。

同じ語を繰り返す時、おまえの脳もまた幼児化しているのさ。
705デフォルトの名無しさん
垢版 |
2019/12/15(日) 16:14:08.51ID:BTgZV1cy
オブジェクト指向とは独立した知能回路であり、チンポはまさにその典型なのだ!
706デフォルトの名無しさん
垢版 |
2019/12/16(月) 17:09:05.86ID:WyvGbQUQ
>俺.チンポに力を入れる 俺.チンポから力を抜く

たとえば、車を運転するにしても人は車がどういう構造をしてるのかなんていちいち知っておく必要はありません。
ただ「アクセルを踏む」「ハンドルを回す」というメッセージを車に送っているだけです。
もし車を運転するのに運転手側が内部構造の制御を常にしなければならないとしたら、それは非常に使いづらいものでしょう。
http://brbranch.jp/blog/201511/%E9%9B%91%E8%A8%98/oop/
707デフォルトの名無しさん
垢版 |
2019/12/16(月) 23:19:39.29ID:tPusJsg+
>>598
>クリントンの「不適切な関係」

チンポがシコシコして、チンポが勝手に女性の口に入ってフェラチオ!
2019/12/20(金) 14:01:16.00ID:r/r7VnC5
メソッドがフィールドに依存してるとテストしにくい
パブリックメソッドはフィールドを参照する骨組みメソッドにしてプライベートなスタティックメソッドでロジック組み上げるのが良いと思いました
709デフォルトの名無しさん
垢版 |
2019/12/20(金) 16:37:03.66ID:Db8FCowf
オシッコを出す・オシッコを止める、これはメッセージングしてパプリックメソッドにアクセスする。
2019/12/20(金) 19:59:54.91ID:fz/tpFJr
何が一番大事ですかって質問ストレスで吐きそうになる
価値観が一致しててレベルが相手より上でも下でもだめなんだ
711デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:04:08.33ID:epGoOVxQ
そもそも日本人は独立心が無く互いに依存しあい忖度しあいガチガチの
しがらみに絡み合って助け合って生きていたのにオブジェクト指向ができるわけない
他人に独立しろ独立しろとアメリカに植え付けられて洗脳テレビ放送で理想ばかり
いうわりに自分はお互い寄生しあって傷を舐めあって生きてる共産主義者には
C言語がお似合い
712デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:06:40.93ID:epGoOVxQ
上の文ではわかりにくいが日本は規制でガチガチに忖度してあるから変更が効かない
が共有してるから忖度し放題ってことだよ
713デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:14:59.93ID:epGoOVxQ
一言でいうと
日本=依存=C
アメリカ=独立=C++
714デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:15:38.45ID:epGoOVxQ
日本=依存=C<<<<<<<<<アメリカ=独立=C++
715デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:18:13.32ID:AbigEpyt
チンポはオシッコもするし勃起もするし射精もする、これがオブジェクトの多態性だ。
716デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:24:52.49ID:AbigEpyt
オブジェクトというのは、文脈によって時と場合によって、どうとでも変わるのだから!
717デフォルトの名無しさん
垢版 |
2019/12/20(金) 23:17:31.88ID:jk7l00+3
そういえば頭にタイヤ付けてるオッサン見たことある。
たしかミシュランマンとか言ってた。
2019/12/21(土) 12:55:48.31ID:3973yYOQ
チンコしか例え話ねえのかよ
2019/12/21(土) 13:08:27.97ID:q7yr2n4C
アタッチメント式で着脱可能と言ったらちんぽしかないな
2019/12/21(土) 13:24:23.72ID:lttA9Ymy
怖い
721デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:13:46.87ID:svcSVAhw
>>718
繋がっているけれども独立しているというのがオブジェクト指向だ。
2019/12/21(土) 15:19:30.16ID:QDHgiC2u
おまいらチンポマンをスルーできないのか
2019/12/21(土) 15:22:51.91ID:d72gx8ge
>>722
そいつが一人だと思っているなら素人
724デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:40:34.50ID:svcSVAhw
ちくわよちくわ、どうしてお穴が空いてるの〜♪
チンポよチンポ、どうしてお股に付いてるの〜♪

べ、べ、べ、べ、ベントマン!
チ、チ、チ、チ、チンポマン!
725デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:48:04.96ID:5ArYAWFR
えっ、
マシュマロマンと
ビブグルマンかと
思ってた。
2019/12/22(日) 10:24:46.94ID:q75LD7xJ
ちんこ隔離スレだから仕方ないね。
2019/12/22(日) 16:47:22.70ID:mtx3TNHc
最近、ちんこにメッセージが上手く届かないんだが。
728デフォルトの名無しさん
垢版 |
2019/12/22(日) 18:51:33.54ID:HuJxWYNl
>>727
トイレに行って、オシッコを止める・オシッコを出すをやってみろ!
729デフォルトの名無しさん
垢版 |
2019/12/22(日) 19:03:40.89ID:OrhxiP0w
>>728
うるせえ!
730デフォルトの名無しさん
垢版 |
2019/12/22(日) 20:19:11.92ID:HuJxWYNl
>>729
チンポに筋力を入れてオシッコを出す、チンポから筋力を抜いてオシッコを止める。
731デフォルトの名無しさん
垢版 |
2019/12/22(日) 20:21:26.15ID:HuJxWYNl
間違い。

チンポに筋力を入れてオシッコを止める、チンポから筋力を抜いてオシッコを出す。

730 デフォルトの名無しさん 2019/12/22(日) 20:19:11.92 ID:HuJxWYNl
>>729
チンポに筋力を入れてオシッコを出す、チンポから筋力を抜いてオシッコを止める。
2019/12/23(月) 19:40:11.25ID:wcEBqux9
下品
2019/12/23(月) 20:07:19.54ID:Qq2o9fXQ
エレクトコマンド連打してもリソース不足でエラーが返って来る。
734デフォルトの名無しさん
垢版 |
2019/12/23(月) 20:43:01.41ID:sS1JWXeN
赤玉出たか
735デフォルトの名無しさん
垢版 |
2019/12/24(火) 14:05:48.04ID:WgZ9RMXM
型にハマらないお前らにオブジェクト指向はムリゲ
他人と組むとかえって混乱の元になる
736デフォルトの名無しさん
垢版 |
2019/12/24(火) 15:35:33.12ID:5rMcvWYz
>>735
オブジェクト指向は俺の股間に付いているからな。
737デフォルトの名無しさん
垢版 |
2019/12/24(火) 17:05:07.05ID:L1tHoweE
赤玉出たらハメられない
2019/12/24(火) 23:13:19.31ID:p0HqoMMj
オブジェクト指向よりmvcのがクソ
2019/12/25(水) 10:06:44.78ID:Ew6npfn6
>>738
まあ、あれは和製糞アプリ乱発の元凶だからなぁw
2019/12/25(水) 12:25:41.18ID:QB+3lnXS
mvc自体は理に叶った仕組みだから、
クソアプリが乱発されたということは、
日本人はITに弱いということ
2019/12/25(水) 14:36:15.64ID:MGllv1+L
mvcは滅びたウンコ言語smalltalk由来だけあってクソの塊
頭のおかしいsmalltalkerの宣伝にのって広まったのが不幸の始まり
742デフォルトの名無しさん
垢版 |
2019/12/25(水) 15:01:24.01ID:EC/BK1/y
スモールトーカーのビッグマウスwwwww
2019/12/25(水) 17:24:05.31ID:sIadZRBm
mvcもoopもクソではない。
クソなのなこのスレの住人。
あと、日本人でひとくくりにするなカス。
2019/12/25(水) 17:36:52.90ID:2KDJInv2
まあ、mvcのどこで何をどこまでやらせるかって考え方がアホなんだけどな。
例えば、ジャンプするとおっぱいが揺れるアプリがあったとする。
この時、おっぱいの揺れまでcにお伺いを立てるか、とりあえずmで制御してやるか、んなもんvの範疇だろとするか、
おまえらならどう考える?
2019/12/25(水) 21:27:21.55ID:QB+3lnXS
カスってな
mvcを日本に持ち込んで荒れたことは遺憾だが
オブジェクト演算子の発明もした僕に言うな
2019/12/26(木) 02:06:18.77ID:SdIj1xpo
仮にオブジェクト指向がクソだと感じたとしても、時代の潮流がそうなのだから
逆らうことは出来ない 逆らっていたら生きた化石となっていくだけ
2019/12/26(木) 05:31:59.12ID:5zbV5TEx
smalltalkの体系はマジ良い
OSもファイルシステムも何もかもが混然一体となって単一のイメージファイルに収まっている
一般的なOSとかファイルシステムとかが分離したシステムと微妙に相性があるだけ
切り出すと巨大なライブラリが必須みたいな
究極なチューニングを必要としない領域では最強に近い
2019/12/26(木) 08:41:58.34ID:YQL7Yaoj
使い手次第
749デフォルトの名無しさん
垢版 |
2019/12/26(木) 09:40:16.78ID:I2qsKDGR
>>746
オブジェクト指向は俺の股間に付いているのだからな。
2019/12/26(木) 09:59:39.29ID:ICbV3wFJ
>>747
> OSもファイルシステムも何もかもが混然一体となって単一のイメージファイルに収まっている

その単一のイメージファイルは、どうやって実行するの?
2019/12/26(木) 16:28:47.86ID:5zbV5TEx
>>750
仮想マシン(CPU)の仮想コードにコンパイルされたプログラムを仮想コードインタープリタで実行する
最近はJITコンパイラでx86とかも吐き出していると思う
2019/12/26(木) 21:04:00.25ID:VT4/hGaE
つまりsmalltalkだと別に仮想マシンと仮想コードインタプリタが
必要となって、それらは一体化されてないと

smalltalkはOSもファイルシステムも何もかもが一体となるが
その外に別のOSとファイルシステムが必要になるってことですかね
753デフォルトの名無しさん
垢版 |
2019/12/26(木) 22:54:09.64ID:54O4BTJW
仮想マシン上のOSの上でさらに仮想マシンが動いているのか。
2019/12/27(金) 05:53:52.43ID:fgcv19jJ
>>753
微妙に違う

smalltalkの仮想マシンとは仮想マシン用にデザインされたコードを実行する
Cとかアセンブラ他で組まれたインタープリタの事です

smalltalkのプログラムは仮想マシン用のコードにコンパイルされます
コンパイルされたコードは仮想マシンインタープリタで実行されます
javaとかと同じような感じ

>>752
>smalltalkはOSもファイルシステムも何もかもが一体となるが
>その外に別のOSとファイルシステムが必要になるってことですかね
おおむねその通りです
2019/12/27(金) 06:09:47.42ID:P2jhx2lv
smalltalkは今の洗練されたソフトウェアシステムとは相性が悪そうだね
smalltalkでアプリとか作ったら重くなりそう
Javaみたいなもんかな
2019/12/27(金) 10:27:03.74ID:m87WvM9P
Smalltalkは決して速くはないが、今が旬のPythonや
今やオワコンだが一時人気を博したRubyよりはずっと高速に動く

このSmalltalkで培われた高速化技術の転用を契機に
JavaやJavaScriptが実用速度で動くようになっていたりもする
2019/12/27(金) 10:31:41.25ID:2z5bqblL
例えばどんなん
2019/12/27(金) 10:58:21.22ID:8BhI6tC5
Smalltalk由来のオブジェクト指向が
巡り巡って改良されて、ネイティブ再実装されて
最適化されて、全く違うものになった結果爆速になった
つまりSmalltalkのおかげ!
2019/12/27(金) 11:49:37.65ID:m87WvM9P
JavaはHotSpot、JSはV8
760デフォルトの名無しさん
垢版 |
2019/12/27(金) 12:36:13.19ID:fzTc01Fr
つまり実行環境はブラウザでいいって事ですね
(納得)
761デフォルトの名無しさん
垢版 |
2019/12/27(金) 13:18:13.67ID:zc200dFE
実行速度の話をしている時点でじいさんだとわかる。
2019/12/27(金) 14:26:52.91ID:fgcv19jJ
ttps://scrapbox.io/kawasima/命名のプロセス
型やクラスの命名、リファクタリングに関係する資料見つけたのでリンク
凄く良い内容
2019/12/27(金) 16:01:39.92ID:RiDEWwRe
GPUの100倍遅いCPUで
ネイティブの10倍遅いVMの速度が自慢になると思ってる
Smalltalkおじさんw

tensorflowやpytorch触ったら速さに脱糞しそう
2019/12/27(金) 16:19:27.62ID:fgcv19jJ
速度的にはブラウザアプリと競合だぞ
機械学習とかは別途ライブラリの呼び出しになる
2019/12/27(金) 22:07:16.16ID:jjhZE+Ou
Smalltalkは過大評価されてる気がするね
最初の方に作られた言語の中では当時としてはユニークな
アイデアだったけど今となっては大したことないというか
方向性が違っていてOS技術が発達した現代には合わなくなってる
2019/12/27(金) 22:46:37.80ID:fgcv19jJ
概念を生み出し確立させたと言う意味で
LISP、Smalltalkは特筆するに値すると思う
世代を重ねることでより優れた概念が生まれることは普通
でも、理念なり概念が洗練されるには平気でウン十年経過するけどね
2019/12/27(金) 22:55:56.03ID:jjhZE+Ou
Smalltalkのオブジェクト指向の概念は良かったけど、
今ほど洗練されてなくて、
OSと統合させようとしたのは失敗だった
これが結論かなぁ
2019/12/27(金) 23:47:31.94ID:IHK+s08G
んー、どこらへんが洗練されてなかったの?
769デフォルトの名無しさん
垢版 |
2019/12/27(金) 23:52:05.51ID:zc200dFE
「どこらへん」という変な日本語を使うやつにわかるとは思えませんが?
2019/12/27(金) 23:56:58.51ID:pwtqmjr+
1970年代にダイナブックの実現を目指した暫定実装向けの
奇をてらったOSモドキとして作られた経緯から
まあOSっぽいところまでやりたがるのは仕方がない
http://web.archive.org/web/20041016084842/http:/marimpod.homeip.net/chomswiki/24
2019/12/28(土) 00:01:42.28ID:oBEDoVhD
「どこいらへん」?いやこれも方言らしい…
「(具体的には)どんなところが」でお願いします
772デフォルトの名無しさん
垢版 |
2019/12/28(土) 00:20:59.59ID:AtehPr/g
>>769
ふつうの日本語じゃん
君のボキャブラリーが足りないだけなんじゃ
2019/12/28(土) 00:32:49.60ID:soaf7OhY
>>769
は?
2019/12/28(土) 00:42:05.38ID:ysJmEWNA
OSが統合されてると主張するSmalltalkに
ドライバを統合することはできるだろうか?

答え 無理


OSを密結合させたのは失敗と言わざるをえない
775デフォルトの名無しさん
垢版 |
2019/12/28(土) 00:43:28.07ID:r8zMvGj8
カプセル化はオープンソースに反するってことなの?
まさかね。
2019/12/28(土) 00:59:22.01ID:tP4AQveM
当時のCPU、メモリ、ディスク状況ではあれが限界では?
今みたいに無駄遣いできなかったから
2019/12/28(土) 01:20:43.31ID:oBEDoVhD
イメージベースってDockerのコンテナみたいな考え方だろ
コンテナにドライバを統合できないからダメってのもおかしな話だ
2019/12/28(土) 01:28:13.18ID:JtKoQvdN
> 当時のCPU、メモリ、ディスク状況

0.6 MIPS、64〜128 KB、2.4〜4.8 MB でよくぞここまで
https://upload.wikimedia.org/wikipedia/commons/9/91/Smalltalk-76.png
2019/12/28(土) 07:35:13.27ID:b3azUkcU
参考まで
このGUI付きのOSモドキはお絵描きツール等の組み込みアプリまでもろもろ含めて
150のクラス、3,500個のメソッド、コメント行込みで2万4千行
のSmalltalk(-76)で書かれている
2019/12/28(土) 07:38:06.09ID:a/5/w6IP
最近気が付いたけど
Haskellの型と型を利用したパターンマッチは
複雑な場合分けを簡潔に表現できる発明とか発見かも知れない

たぶん既存の構文(if,case,等)でも表現は出来るだろうけど
プログラムの字面が長くなって全体の把握に必要な視覚的情報が多くなる

関数の合成や加工データの伝搬を利用したパイプライン演算子も
冗長な記述を簡潔にすると言う意味で発明発見かもしれない

型とパターンマッチのコンビネーション
関数の合成(パイプライン演算も含まれる?)

ここら辺はLISPのマクロで実現されていたかも知れないけど
Haskell等で特徴的な記述として焦点が当たることで
再認識≒発見発明化したのかなと思います
同じ様に先発処理系C等比較すると際立って特徴的

c,LISP,Smalltalk,Haskellここら辺はエポックメイキング(新時代を開く?)なのかな
最新の機械学習とか量子コンピュータ辺りも現在進行形で革新的ななにかが進行中だと考えます
まだ認識できる状態まで知見が一般化してないと思う(試行錯誤中?)

設計趣意書(コメントとか)
全ての水準でどの様な意図をもってプログラムのパーツとか全体が実装されているのか
その情報が最も重要で、違う処理系で再実装する場合でも設計趣意書があれば再現可能性が高くなる
これの一部ないし多くを担うのが
>>762にリンクを張った
型やクラスの命名、リファクタリングに関係する命名のプロセスなんだけど
必要であれば細かな挙動説明もコード内コメントして良いと考えます

以上、素人のうわ言
2019/12/28(土) 08:10:41.66ID:Jf+Nl3ud
長文書く前にPrologを一回みといた方がイイかもね
2019/12/28(土) 08:32:23.31ID:a/5/w6IP
Prolog
思い出したなんかスゲーとしか思わなかった
バックトラックどうなってるの??な感じ
自分には異次元過ぎてお手上げ

プログラムは扱うデータの物理的量に対し分類選別加工に関係する知的情報は
相対的にみて圧倒的に知的情報の方が小さい
これがたぶん、Prologでは逆転してる
知的プアな人間がPrologに対峙できるはずもなしorz
2019/12/28(土) 09:23:13.93ID:zf+GHSiR
フォルダのアクセス権調べるプログラム作るのにフォルダを調べるプログラム群のクラス名を「フォルダ」にするか「フォルダ探索」にするか悩んでる
どちらが適切と思います?
2019/12/28(土) 09:32:33.90ID:lWCFWx/Q
フォルダを調べる?動詞やろ?クラスじゃないやろ?
785デフォルトの名無しさん
垢版 |
2019/12/28(土) 09:50:25.34ID:un29Kqgd
>>772
どのあたりのあたり、どのへんのへんと言う意味になっていますよ?
2019/12/28(土) 10:12:56.39ID:j+kocMTA
二択ならフォルダ探索
フォルダはねーな
2019/12/28(土) 10:20:48.51ID:lWCFWx/Q
FolderSearch.search()とかいうメソッド作るの?w
2019/12/28(土) 10:28:54.65ID:QrfQPbYx
searcherでおk
2019/12/28(土) 10:58:25.89ID:M9Az72Wi
オブジェクト指向七不思議

@オブジェクト指向の定義
→議論の最後はいっつも「お前はオブジェクト指向をわかっていない!」
そんなやつとハナから議論すんなと
Aオブジェクト指向のメリット
→イマイチ納得できる数字が上がらないのとメリットと言えるロジックが出ない
Bオブジェクト指向言語とのリンク
→どんな思想でこの機能が追加されたのか?オブジェクト指向にそんなのねーじゃん
Cオブジェクト指向って流行ってる?
→これ流行ってるの?誰も話題にしてる奴がいないような気がする
Dオブジェクト指向の歴史
→志村なのか相撲のトークなのかアランケイなのか
E人によって言うことが変わる
→決して一つとして同じものがない、もう、宗教である
F誰もその効果を検証しない&できない
→やっても「お前のはオブジェクト指向ではない!」って言われる。酷い
G死ねよ
→もう死ねよ
790デフォルトの名無しさん
垢版 |
2019/12/28(土) 11:38:52.86ID:AtehPr/g
>>785
なってませんよね
2019/12/28(土) 11:54:24.12ID:O2DjLCkk
FolderUtil.search()
2019/12/28(土) 11:56:11.98ID:1/4z87f4
いずれにせよ具体的な回答はなかったのでお察し
2019/12/28(土) 13:41:35.32ID:zf+GHSiR
クラスが名詞と考えればクラス「フォルダ」のが良いですよね
その中にメソッド「探索」を作ると
ただフォルダが名称だと範囲がデカいなと気にもなってます
2019/12/28(土) 13:56:59.93ID:j+kocMTA
まあ慣れないうちで、小さい規模や個人的なツールならそれでええんちゃう
全然間違ってる訳ちゃうし

フォルダが名前としてデカイって直感は良いと思うよ
まあ色々考えながら、先でリファクタリング&再設計するのも良し
795デフォルトの名無しさん
垢版 |
2019/12/28(土) 14:55:44.57ID:LSs3mrRx
いずれにせよ
名前付けてる時が一番楽しいよな
796デフォルトの名無しさん
垢版 |
2019/12/28(土) 15:17:01.43ID:VCBq52Cm
日本人は狂ってるよな
学校教育という集団洗脳で気違いしかいなくなったよな
お前らは洗脳されてるから気づかないだろうから
俺の言うことを否定したがろうけど
2019/12/28(土) 16:42:18.92ID:E4RrjfjA
>>796
俺の言うことって何?
2019/12/28(土) 17:01:11.44ID:lWCFWx/Q
「私が神である」

とかでは?
799デフォルトの名無しさん
垢版 |
2019/12/28(土) 18:21:44.88ID:p8R0Q+BH
>>798
その神が何なのか誰もわからない。
2019/12/28(土) 19:13:12.04ID:upxxxiuG
とんでもねえあたしゃ神様だよ
2019/12/28(土) 21:41:59.22ID:F144LTY4
神って何?
802デフォルトの名無しさん
垢版 |
2019/12/28(土) 23:04:21.26ID:xHZFg0mi
>>789
オブジェクト指向は俺の股間に付いているが?
803デフォルトの名無しさん
垢版 |
2019/12/28(土) 23:07:17.52ID:AtehPr/g
>>802
????
2019/12/29(日) 00:03:54.87ID:RdzG/nz0
オブジェクト指向アンチスレって需要ある?
2019/12/29(日) 01:42:40.41ID:nNyfpaUU
オブジェクト指向をちゃんと使った場合のメリットについて
具体的な数字が出てこないってアンチはよく言うけど
778-779って結構なエビデンスだよね?

オブジェクト指向以外(あるいは似非で)で同じ物を書いたらどうなるか
非PGだと圧倒的なすごさがピンときにくいのが難だけど

そういう意味では全く同じ物を書かせて単純に比較した
こっちの方はイメージしやすいか?↓
「どうかく?orgから生産性を邪推する」
https://cast-a-spell.at.webry.info/201001/article_7.html

あいにくお題と各言語での回答は失われてしまったけど
こっちでそのおおよそは掴める↓
「どう書く?Orgに感謝を込めての目次」
http://gushwell.ldblog.jp/archives/52400989.html?ref=head_btn_next&;id=164237
806デフォルトの名無しさん
垢版 |
2019/12/29(日) 01:48:52.40ID:oAHsONBK
合うものと合わないものがあるのに何を言っているのかw
2019/12/29(日) 01:55:08.57ID:MrCxy9bb
>>805
具体的な数値っていうのは、
○秒速くなったとか、○行コードが少なくなったかでしょ

速くて少ないほうが良いんだから
808デフォルトの名無しさん
垢版 |
2019/12/29(日) 02:11:04.64ID:2ZGuf6bc
Smalltalkはどちらかというと関数型だから
2019/12/29(日) 03:39:21.24ID:kZZsrS/c
>>807
たかだか2万行程度でここまでは書けんって肌感覚はないの?
2019/12/29(日) 08:49:05.27ID:VWvk7Wxx
>>809
数値化しないと誰にもわからない
通常とそれとで比較
小学生でもわかること
肌感覚で
2019/12/29(日) 08:58:04.76ID:zTCF3X0O
数値化ってオブジェクト指向が使われてる言語の数とか
プロジェクトの数とかでいいの?
2019/12/29(日) 09:17:40.19ID:5kSHoXyj
オブジェクト指向で作られている
という前提があるとないとで引き継ぐ時に全然違う
2019/12/29(日) 09:22:22.55ID:VWvk7Wxx
>>811
数が多い少ないで何を主張するの?
2019/12/29(日) 09:27:25.92ID:zTCF3X0O
>>813
そりゃオブジェクト指向が好まれるプロジェクト数だよ
それとも他になんかいい数字ある?
オブジェクト指向じゃなくていいから
数字出してみてよ
2019/12/29(日) 09:34:38.13ID:VWvk7Wxx
>>814
本当にキミ、プログラマーかい?
816デフォルトの名無しさん
垢版 |
2019/12/29(日) 09:37:48.43ID:PkR84LS6
>>803
繋がっているけれども独立している、それがオブジェクト指向だ。
2019/12/29(日) 09:40:03.81ID:zTCF3X0O
>>815
いや、文句があるなら他にいい数字を出してくれればいいよ
2019/12/29(日) 09:40:36.64ID:zTCF3X0O
オブジェクト指向を採用してる
フレームワーク数やライブラリ数ってのはどうか?
2019/12/29(日) 09:41:44.85ID:VWvk7Wxx
>>814
え?どう主張するの?

if(ooprjnum>定数){
大成功!
}

if(normalprjnum>定数){
大成功!
}


こういう場合って
allooprjnum
okooprjnum
ngooprjnum

allnormalprjnum
ok,ngで1つあたりの成功数の比較が
必要じゃない?
2019/12/29(日) 09:41:51.09ID:dhKBLYWX
オブジェクト指向のメリットを語るのに
遥か昔にオワコン化したsmalltalkを持ち出すのは
ギャグなんだろうか
滅びとるやんw
2019/12/29(日) 09:42:40.14ID:zTCF3X0O
>>819
何が言いたいのかわからん。
具体例で言ってくれ
2019/12/29(日) 09:52:40.74ID:VWvk7Wxx
>>821
アメリカ人と日本人のどちらが優秀ですか?
方法は算数のテストで決めるものとする

ってときに何を持って数字を出す?
2019/12/29(日) 09:55:21.97ID:zTCF3X0O
>>822
知らんがな。だから良い比較方法があるなら
数字を出してくれって、こっちが聞いてるんだが

オブジェクト指向じゃなくていいから
具体例として、比較するのに適切な数字を出してくれよ
○○指向なら○○の数値はこれぐらいとかさ
2019/12/29(日) 10:02:44.09ID:VWvk7Wxx
>>823
お前は大きな間違いをしている

オブジェクト指向の有効性を示したいなら

オブジェクト指向とそうでないプロジェクトの成功率の比較が必要で

そのデータがない、もしくは他の要素の影響が強くて簡単な比較ができないのであれば

オブジェクト指向の有効性は主張できないという結論でいいんだ
無理矢理比較方法をひねり出す必要など無い

わからないことがわかった状態
これはとても大事なことだ
825デフォルトの名無しさん
垢版 |
2019/12/29(日) 10:08:39.08ID:PkR84LS6
>>824
>オブジェクト指向の有効性は主張できないという結論でいいんだ

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

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

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

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
2019/12/29(日) 10:09:20.83ID:VWvk7Wxx
チンの始皇帝
2019/12/29(日) 10:16:21.68ID:zTCF3X0O
>>824
> オブジェクト指向の有効性を示したいなら
逆じゃね?
「お前がオブジェクト指向の有効性を否定したいから」
数字を出せと言ってるんでしょ?

じゃあ何の数字を出したら納得するのか?って聞いてるんだけど


採用数の多さから、オブジェクト指向の有効性は明らかなんだから
その数字では納得できないというのなら、納得する数字を言うのがあんたの義務だよ。
そしてあんたもオブジェクト指向じゃなくていいからその数字を出すこと
2019/12/29(日) 10:21:43.57ID:VWvk7Wxx
>>827
何で?
お前は有効性など主張する必要など無いと思ってるなら
別に俺に付き合う必要など無い

ただ、それが主張できないなら一体お前は何をやっているんだろうな(笑)
2019/12/29(日) 10:25:07.53ID:zTCF3X0O
>>828
だから採用"数"をもってオブジェクト指向の有用性を語ってるんだが?
それに反対するなら、お前が納得する数字を言えって話なんだが、
お前こそオブジェクト指向よりも優れたものがなにか言ってないじゃんか
そんな物無いよってこと?
830デフォルトの名無しさん
垢版 |
2019/12/29(日) 10:27:52.50ID:PkR84LS6
>>829
>お前こそオブジェクト指向よりも優れたものがなにか言ってないじゃんか

オブジェクト指向は俺の股間に付いているが?
2019/12/29(日) 10:35:34.48ID:VWvk7Wxx
>>829
いいや、そんな必要はない
「オブジェクト指向の有効性はわからない」
「オブジェクト指向の有効性またその逆を主張するためにはオブジェクト指向のプロジェクトとそうでないプロジェクトの成功数と失敗数が必要でかつその条件の正当性を検証することは困難を極める」
が現在の結論

それ以上でもそれ以下でもない
これを理解することで
それ以外の主張をする人間は全て詐欺師だと言い切れる
2019/12/29(日) 10:37:04.64ID:zTCF3X0O
>>831
つまりオブジェクト指向以外の実例が皆無と言えるほど
オブジェクト指向ばっかり使われてるってこと?

それもう結論じゃんw
833デフォルトの名無しさん
垢版 |
2019/12/29(日) 10:39:43.57ID:2ZGuf6bc
マクドは世界一食べられてるから世界一おいしい理論
2019/12/29(日) 10:40:59.17ID:VWvk7Wxx
>>832
でも現状デスマばっかりで
大手は金食い虫の開発を自社に置きたくない
技術者はcいくらで買い叩かれ
他の業界と比較しようがないぐらい人身売買まみれになってしまった
これは成功か?
2019/12/29(日) 10:41:37.50ID:zTCF3X0O
× マクドは世界一食べられてるから世界一おいしい理論
○ マクドは世界一食べられてるから世界一優れてる理論

美味しいだけが評価の基準じゃないって話だわな
世界一食べられてるのは、それだけの理由がある
2019/12/29(日) 10:42:08.52ID:zTCF3X0O
>>834
だーかーらー、オブジェクト指向以外でデスマ起きてないというのうなら
それを数字で示せよw
2019/12/29(日) 10:43:29.49ID:VWvk7Wxx
>>836
だからそれを主張することはできないよって話

「オブジェクト指向の有効性はわからない」
「オブジェクト指向の有効性またその逆を主張するためにはオブジェクト指向のプロジェクトとそうでないプロジェクトの成功数と失敗数が必要でかつその条件の正当性を検証することは困難を極める」
が現在の結論

それ以上でもそれ以下でもない
これを理解することで
それ以外の主張をする人間は全て詐欺師だと言い切れる
2019/12/29(日) 10:45:55.80ID:zTCF3X0O
>>837
採用数が多いことでオブジェクト指向の有用性は明らか
2019/12/29(日) 10:47:11.78ID:VWvk7Wxx
現状、オブジェクト指向の有効性もその逆も誰にも主張できない
が正解

まあ、オブジェクト指向ってソースコードのどこに処理を書くかってだけだし
毒にも薬にもなってないが正解じゃない?

ボタンをクリックする処理はどこかには書かなければならないし
その場所はどこでもいい
だからといって書かなくて動くわけではないんだよ
2019/12/29(日) 10:47:58.19ID:VWvk7Wxx
>>838
デスマの数が多いのはオブジェクト指向だからじゃないの?
2019/12/29(日) 10:48:34.10ID:zTCF3X0O
だが採用数が多いということは、それだけみんなが
オブジェクト指向にメリットが有ると言っているということ
2019/12/29(日) 10:48:49.87ID:zTCF3X0O
>>840
その証拠を数字で出せ。
2019/12/29(日) 10:49:33.54ID:VWvk7Wxx
>>842
それは無理だね
だって

「オブジェクト指向の有効性はわからない」
「オブジェクト指向の有効性またその逆を主張するためにはオブジェクト指向のプロジェクトとそうでないプロジェクトの成功数と失敗数が必要でかつその条件の正当性を検証することは困難を極める」
が現在の結論

それ以上でもそれ以下でもない
これを理解することで
それ以外の主張をする人間は全て詐欺師だと言い切れる
2019/12/29(日) 10:50:35.91ID:zTCF3X0O
はい、証言を得ました。


デスマの数が多いのはオブジェクト指向であるという証拠を出すのは無理
2019/12/29(日) 10:51:07.37ID:VWvk7Wxx
>>844
つまりその逆も無理
2019/12/29(日) 10:51:10.31ID:zTCF3X0O
オブジェクト指向が多くのプロジェクトで採用されている

これは事実
2019/12/29(日) 10:52:35.56ID:zTCF3X0O
マクドは世界一食べられてるから世界一需要にマッチしている理論

これも事実
2019/12/29(日) 10:53:28.57ID:VWvk7Wxx
オブジェクト指向が多くのプロジェクトで採用されている

これは事実

その多くのプロジェクトがデスマである

これも事実
849デフォルトの名無しさん
垢版 |
2019/12/29(日) 10:54:02.08ID:2ZGuf6bc
数だけで決めるのは危ういと思うけどね
ただ単に流行してるだけかもしれないし
ランダムに選んでいっても他より数が増えるものはあるものだよ

ドイツのヒトラーもドイツの大多数の人たちが選んだけれども
未来永劫語り継がれるような悲惨な事態を引き起こした
大多数が道を間違えることもあるからね

みんなが選んでるからこれは優れてるんだと思うのは大衆迎合的な
バイアスでしかないから集団的知性が成り立たなくなるんよ

幸福度を調べるのがいんじゃないかな
僕たちはオブジェクト指向でこんなに幸せになりました的な
2019/12/29(日) 10:54:09.80ID:zTCF3X0O
>>848
オブジェクト指向とデスマに関係はないって
はっきりしたばかりだろw
2019/12/29(日) 10:55:27.74ID:VWvk7Wxx
>>850
そうかもな
つまり

オブジェクト指向を使っても使わなくてもデスマになる

でおk
2019/12/29(日) 10:56:54.07ID:zTCF3X0O
残った事実は、マクドナルドとオブジェクト指向の両方が
世界から求められているという事実
853デフォルトの名無しさん
垢版 |
2019/12/29(日) 10:57:39.06ID:2ZGuf6bc
>>852
マクド最後に食べたのいつ?
2019/12/29(日) 11:03:11.75ID:VWvk7Wxx
オブジェクト指向が多くのプロジェクトで採用されている

これは事実

その多くのプロジェクトがデスマである

これも事実

オブジェクト指向がデスマを引き起こしている

これの検証はするべき
2019/12/29(日) 11:10:15.48ID:zTCF3X0O
>>853
3ヶ月ぐらい前だと思うよ
ちょうと近々行こうかと思ってたけど
856デフォルトの名無しさん
垢版 |
2019/12/29(日) 11:17:22.71ID:2ZGuf6bc
>>855
了解です
857デフォルトの名無しさん
垢版 |
2019/12/29(日) 11:17:46.82ID:2ZGuf6bc
僕の話はこれで終わりです、なにも期待しないでください
2019/12/29(日) 11:18:53.47ID:VWvk7Wxx
(こいつ、モスに行ったんじゃね?)
859デフォルトの名無しさん
垢版 |
2019/12/29(日) 11:21:38.60ID:2ZGuf6bc
(フレッシュネスもおいしいよね)
2019/12/29(日) 11:23:02.23ID:zTCF3X0O
マクドは世界一食べられてる〜ってネタは
あれ結論が美味しいになってるのが間違いであって
世界の需要に一番マッチしてるというのなら正しいんだよね。

結局の所マクドは世界一優れたハンバーガーなのは
間違いないので、その正しい結論を言ってしまうと
あの話はすべてが覆ってしまうんだよね
2019/12/29(日) 11:46:28.70ID:u9RizTKl
まだ数値厨居たのか。
こいつと話をしても無駄。
862デフォルトの名無しさん
垢版 |
2019/12/29(日) 13:29:15.66ID:99LmL5HA
需要も価値も意味ない

問題は検索の上位に来るか否か
2019/12/29(日) 15:31:52.17ID:ADVmDYvb
試しに処理の要旨をコメント化してみた
バイナリーサーチのプログラムをコピーしてコメント追加
短い二分探索のコードだけど徹底的に仕様なり要旨なりを残さないと何をやっているのか見失う
テキトーな英語をgoogle翻訳で推敲(意味が伝わるか不明)
バグはご容赦
C++
// Binary search returns key position or key addition position
// key is found, return position
// not found, returns insertion position
// if found, return is 0..len-1
// if not found, return is -1..-len
// illegal call for array size 0 is return -1
// if position < 0, insert position is (abs (insertpos) -1)

int bsf(int v,int *t,int len){
  // ガード、要素数0で呼び出された時の切り分け
  if (len < 1) return -1;

  int right(len), left(-1), vval(v);// ON register?
  while((right - left) > 1){//最小時要素数1、(1 - (-1)) > 1状態になる
    int mid = right - (right - left)/2;//要素数1でmid = 0
    int cval(t[mid]); // ON register?

    if (cval >= vval){
      if (cval == vval) return mid;
      right = mid;
    } else left = mid;
  }
  return -(right +1);
}
2019/12/29(日) 15:45:47.99ID:v8cZXQkF
オブジェクト指向を採用して完遂したプロジェクト数
オブジェクト指向を採用して完遂しなかったプロジェクト数
オブジェクト指向を採用せずに完遂したプロジェクト数
オブジェクト指向を採用せずに完遂しなかったプロジェクト数

を比較すれば明瞭かもしれない。オブジェクト指向を採用する側に
有能な人が集まりやすいという難点があるが
2019/12/29(日) 16:47:03.54ID:APDoEuaT
>>864
> オブジェクト指向を採用して完遂したプロジェクト数
5件

> オブジェクト指向を採用して完遂しなかったプロジェクト数
1件

> オブジェクト指向を採用せずに完遂したプロジェクト数
0件

> オブジェクト指向を採用せずに完遂しなかったプロジェクト数
0件

職場でオブジェクト指向に頼らない案件がない。
学生時代、Win32APIとDXライブラリで非オブジェクト指向なプログラムを何度も書いてたけど...開発歴が300時間越える頃には非OOPに限界を感じたよ。
SONYや任天堂のゲームって何であんな品質を保てるんだろうって考えた結果、オブジェクト指向にたどり着いたよ。
866デフォルトの名無しさん
垢版 |
2019/12/29(日) 17:26:13.25ID:luttIcbV
オブジェクト指向は俺の股間に付いているのであって、オブジェクト指向プログラミングはどうでもいい!
867デフォルトの名無しさん
垢版 |
2019/12/29(日) 18:02:23.82ID:2ZGuf6bc
>>866
https://light.dotup.org/uploda/light.dotup.org628018.png
2019/12/29(日) 18:52:52.68ID:v8cZXQkF
ところでwebアプリはそもそもオブジェクト指向で書けないよね
2019/12/29(日) 19:23:08.64ID:skc+JLvp
>>863はどのレスに対するレスなん?
2019/12/29(日) 19:44:17.60ID:zTCF3X0O
>>868
ウェブアプリの殆どはオブジェクト指向だよ
Railsとか
871デフォルトの名無しさん
垢版 |
2019/12/29(日) 19:45:19.10ID:Jtzyjysr
C++20でコンセプトが入るところ見ると、インターフェースによって持つ特性を表明するという考え方はそんなに間違ってなかったんじゃないかな。
インターフェースはちょっと厳しすぎたのかもしれない。
872デフォルトの名無しさん
垢版 |
2019/12/29(日) 19:51:13.20ID:Jtzyjysr
操作主体が音を出せと命令する場合、命令されたオブジェクトがラジオであっても猫であっても、音を出すはず。
猫とラジオは継承関係にないはずだけど、それでも音は出せるので、どちらにも音を出せと命令できるはず。
2019/12/29(日) 20:16:13.92ID:ADVmDYvb
>>869
オブジェクトの実装に要件定義が必要になると考えます
練習として二分探索のコードの仕様を記述してみました

本来、コメントの次はクラスの定義になります

要件定義ー命名ーリファクタリングこれの繰り返しが
オブジェクト指向にも必要だと思います
2019/12/29(日) 20:43:34.43ID:skc+JLvp
つまり、どのレスに対するレスでも無い?
875デフォルトの名無しさん
垢版 |
2019/12/29(日) 20:45:42.17ID:2ZGuf6bc
難解やな
2019/12/29(日) 23:25:51.89ID:XnQ2dClW
>>870
教科書で教えてるような、is-a 関係などを用いたオブジェクト指向で「直接」書いていない
2019/12/30(月) 00:34:47.79ID:N6gZCBo5
ポテトチップスやカップラーメンは売れているが体に良いわけではない
売れていること使用されていることが必ずしも良い結果に結び付くとは限らない
2019/12/30(月) 01:07:14.20ID:LhIy/9Y8
>>876
それはお前が書いてないだけだろ
フレームワークはオブジェクト指向だ
2019/12/30(月) 01:08:16.44ID:LhIy/9Y8
>>877
それでいい結果になるものは何?
たとえ話じゃなくて、○○指向って言ってみな
2019/12/30(月) 01:46:36.33ID:AO5TGWYI
>>879
数が多い→正しいではない可能性があるということ
もちろん
数が多い→正しい
が正であることもある

つまり

「オブジェクト指向の有効性はわからない」
「オブジェクト指向の有効性またその逆を主張するためにはオブジェクト指向のプロジェクトとそうでないプロジェクトの成功数と失敗数が必要でかつその条件の正当性を検証することは困難を極める」
が現在の結論

それ以上でもそれ以下でもない
これを理解することで
それ以外の主張をする人間は全て詐欺師だと言い切れる
2019/12/30(月) 01:51:51.24ID:LhIy/9Y8
>>880
お前のせいでオブジェクト指向はクソと言えなくなった
2019/12/30(月) 02:26:03.65ID:9SID2b3Z
まあ落ち着きな。オブジェクト指向の採用例が沢山ある、というのは「このスレでは」明らかに証拠として挙げられないよ
Java/Rubyを使っているからオブジェクト指向!という論理が成り立たないからね
これはOO肯定派から出てきた理屈だし、否定派もそれは認めている

あと、建設的になりたいなら、もう一度「OOとは何か?」を棚卸ししてみたほうが良い
昔は盛んに吹聴されていたOOのメリットの多くは、OO以外の方法でやることが増えている
継承はアンチパターンになっているし、多相性はむしろ関数型の方が得意だったりするから余計に
2019/12/30(月) 03:08:30.50ID:zGgGf8ov
オブジェクト指向の継承など特徴的な性質を考えると評価が分かれる
Cの構造体をクラスにまとめて名前の重複等を回避する
パッケージ補助機能と捉えると悪くないと思う
2019/12/30(月) 03:59:26.48ID:LhIy/9Y8
>>882
なぜオブジェクト指向を採用するのか?
という質問をしています
2019/12/30(月) 08:34:31.56ID:OhoL7ro8
たくさん採用されているからだ
886デフォルトの名無しさん
垢版 |
2019/12/30(月) 09:27:05.14ID:dEVU/G9P
なぜたくさん採用されているのかを聞いておるのだ
2019/12/30(月) 12:44:42.94ID:QHPQM7tO
難しい問題はどんな方法論を使って書いても難しいままだし
能力のない人にはどんな優秀な方法論を与えてもぐちゃぐちゃにする

この二点だけは間違えないな
2019/12/30(月) 13:24:27.37ID:wq5pXYrb
>>886
・再利用できるソフトウェアモジュールが作りやすくなるから。
・作業分担がしやすくなるから。
2019/12/30(月) 15:06:49.40ID:kxZAGmZ8
>>886
・たくさんのライブラリがそうできてるし、サンプルに従って書くとそうなる
・そもそも継承しないと使えない機能があって本当は嫌なのに引きづられる

実態はゴミ
モスのがうまい
890デフォルトの名無しさん
垢版 |
2019/12/30(月) 15:40:49.90ID:ULrUlSay
パッケージツール化というのは、他人がしょんべんをしていても自分はしないということ。
チンポはチンポでも、他人のチンポと自分のチンポは違うからだ。
891デフォルトの名無しさん
垢版 |
2019/12/30(月) 15:43:41.10ID:ULrUlSay
チンポは俺というパッケージの中の、名前空間に属する固有のオブジェクトなのだ。
892デフォルトの名無しさん
垢版 |
2019/12/30(月) 15:54:34.26ID:ULrUlSay
チンポは俺自身でありかつ俺の肉片であり、かつ独立した生き物である!
893デフォルトの名無しさん
垢版 |
2019/12/30(月) 16:01:14.78ID:fFRqMrLq
>>887
オブジェクト指向や関数型といったプログラミングパラダイムは
そういう意味では道具に近いのかもしれないね

包丁一つとっても使い慣れてる人とそうじゃない人とでは
できあがりに大きな差がでる
894デフォルトの名無しさん
垢版 |
2019/12/30(月) 16:08:04.78ID:fFRqMrLq
>>886
JavaやC#といったオブジェクト指向型の言語のシェアが高くて
書ける人が多いから人を集めやすかったり
作られたものが多かったりするんじゃないかろうかと

ではなぜJavaが高いシェアを得るに至ったかというと
それ以前に覇権を握っていたC言語と文法が似てたからじゃないかなと
あと理解しやすかったとか少なくともC言語から関数型言語に移行するよりはハードルが低かった
しかもオブジェクト指向はなんか良いものらしいぞという
風潮が当時あって受け入れやすさがあったのだろうと思う
895デフォルトの名無しさん
垢版 |
2019/12/30(月) 18:04:51.08ID:40sR847p
>>894
マイクロソフト製品以外では、Javaくらいしか代替製品がなかった時代があったんだよ。
2019/12/30(月) 21:24:15.27ID:wq5pXYrb
>>889
Q なぜたくさん採用されているのかを聞いておるのだ
A たくさんのライブラリがそうできてるし、サンプルに従って書くとそうなる

どういうことなの
2019/12/30(月) 21:57:28.40ID:XjiFHqdD
いわゆる業界標準(デファクトスタンダード)だな
え、死語?
2019/12/30(月) 22:03:51.44ID:hlIL3yka
>>896
だから引きづられて使うことになってるだけってことだ
2019/12/30(月) 22:24:40.56ID:uzhGO+Dy
偉い人が採用したオブジェクト指向に
引きづられってこと?

結局採用するんだ。オブジェクト指向を
2019/12/30(月) 22:27:34.14ID:zIIaeCaW
>>899
そしてデスマになる
だからデスマになる

オブジェクト指向を疑え
メリットのない技術を信用するな
2019/12/30(月) 22:47:43.62ID:waAjnYXT
>>900
「オブジェクト指向」を何に置き換えても通じるなw
902デフォルトの名無しさん
垢版 |
2019/12/30(月) 23:13:11.96ID:fFRqMrLq
悪魔の証明ではないけれども
オブジェクト指向がダメな理由を指摘できる人は
オブジェクト指向を使いこなしてる人に限られるんじゃないかな
限界を知らないと否定することは難しい

ろくにコード書かないで本だけ読んでわかった気になって
オレオレオブジェクト指向で無駄に複雑なコードを書く人が
出てくるのはどうにかならんもんかなと思う
まあかくいう僕もその道をしっかり歩んで来たわけですが
2019/12/30(月) 23:22:02.92ID:uzhGO+Dy
>>900
オブジェクト指向以外で
まともに作れたソフトなんてごく僅かだよ
904デフォルトの名無しさん
垢版 |
2019/12/31(火) 01:44:39.23ID:II4RvmaH
>>903
頭がおかしいのか?
2019/12/31(火) 03:41:57.44ID:A86Rtjpl
有名なソフトをいくつか言えばいいのに
こういうレスしか返せないわけだ
906デフォルトの名無しさん
垢版 |
2019/12/31(火) 04:25:17.43ID:II4RvmaH
>>905
Windows APIはオブジェクト指向ではない。
2019/12/31(火) 04:44:14.07ID:A86Rtjpl
>>906
APIがオブジェクト指向じゃないだけでしょ?
Windowsはオブジェクト指向で作られてる
2019/12/31(火) 07:13:03.09ID:0N6ZsyYE
Win32はC言語でオブジェクト指向を実践する良い例だね
2019/12/31(火) 07:46:10.44ID:sY8LeJLU
>>907
え?それは嘘やろ
なんかそういう証拠あるん?
2019/12/31(火) 08:11:05.62ID:A86Rtjpl
CreateWindowとか見るとオブジェクト指向やなってわかる
第一引数が、ClassNameだったりするし、引数にhInstanceってあるし
オブジェクト指向を踏まえてるとしか思えない
2019/12/31(火) 08:12:33.56ID:sY8LeJLU
>>910
それ個人の感想ですよね?
2019/12/31(火) 08:20:35.82ID:A86Rtjpl
ClassNameもhInstanceも事実だけど?
2019/12/31(火) 08:34:55.41ID:SaQXAZ0t
とりま「オブジェクト指向」の定義…というか
暗黙のうちに前提にされがちな歴史的経緯を共有しとかないと
お互いに欠けてる部分の揚げ足取りの応酬に終始して議論なんか無理

たとえば定番の↓に書かれてることなんかは全て常識…ってくらいじゃなきゃダメだろう
https://qr.ae/TWsn7X
914デフォルトの名無しさん
垢版 |
2019/12/31(火) 08:42:47.82ID:II4RvmaH
Windows SDKでの開発はオブジェクト指向というわけではない。
2019/12/31(火) 08:51:05.36ID:sY8LeJLU
win32がオブジェクト指向とか言われちゃうとね
2019/12/31(火) 08:58:45.29ID:pGtU2IyD
オブジェクト指向って、文字通り「指向」なのだから、
指向しているかしていないかなんて正確に判定できんだろ
人によって違う

例えばfopenはオブジェクト指向と言う人もいれば言わない人もいる
そこに正解はないよ
917デフォルトの名無しさん
垢版 |
2019/12/31(火) 12:38:24.30ID:ZumonSRm
雑多な実装を雑多なまま扱わないでオブジェクトに落とし込んで扱うって事やろ?
雑多なまま扱った方が速くて解りやすければそうすればいい
それだけの話じゃないのか
2019/12/31(火) 13:52:59.26ID:Ja8RsyWS
Boochの定義が広く一般に使われてるオブジェクト指向の定義

「OBJECT-ORIENTED ANALYSIS AND DESIGN」
Object-oriented programming is a method of implementation in which programs are organized
as cooperative collections of objects, each of which represents an instance of some class,
and whose classes are all members of a hierarchy of classes united via inheritance relationships.
2019/12/31(火) 13:53:10.97ID:uegmaB/s
>>906
仕方がないですよ、あれは C からコールすることを前提に作られているのだから…
920デフォルトの名無しさん
垢版 |
2019/12/31(火) 14:06:30.54ID:yv9yhyfZ
>>911
ピロシキにあこがれてるん?
921デフォルトの名無しさん
垢版 |
2019/12/31(火) 14:08:55.33ID:yv9yhyfZ
>>918
英語過ぎるぞ
2019/12/31(火) 14:54:00.63ID:RX6ZYKJe
>>918
プーチは後にSmalltalkを経験してメッセージング寄りに宗旨替えしている
2019/12/31(火) 15:30:10.73ID:Ja8RsyWS
いい悪いは別にしてカプセル化、継承、ポリモーフィズムの3原則が広まったのもBoochの本によるもの
Boochの定義は「継承を使わずADTを使うだけではオブジェクト指向とは言わない」と明記してるところに価値がある

あとは英語版のWikipediaの定義は平易でいいと思う
(また英語で悪いが日本語版の記述は駄目なので)

Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects",
which can contain data, in the form of fields (often known as attributes or properties),
and code, in the form of procedures (often known as methods).
A feature of objects is an object's procedures that can access and often modify the data fields of the object
with which they are associated (objects have a notion of "this" or "self").
In OOP, computer programs are designed by making them out of objects that interact with one another.
2019/12/31(火) 15:38:34.09ID:uegmaB/s
>>923
継承は要らない子といわれて久しいと思うのですが…継承、要らないんじゃないですか?
2019/12/31(火) 15:39:58.31ID:sY8LeJLU
つーか、そいつ正しいの?
926デフォルトの名無しさん
垢版 |
2019/12/31(火) 15:44:24.56ID:yv9yhyfZ
英語に逃げるな
2019/12/31(火) 15:55:19.87ID:RX6ZYKJe
>>923
プーチはもとも継承のないAdaを使っていたからね
ともあれ経験した言語で主張が変わる定義はダメだろ
928デフォルトの名無しさん
垢版 |
2019/12/31(火) 16:02:44.29ID:yv9yhyfZ
>>924
継承といっても
・型の継承
・実装の継承
・状態の継承
があってそれぞれ必要になることあるじゃんじゃあ残しましょうよ
むしろリスコフの置換原則がいらんのですよ
2019/12/31(火) 16:03:32.10ID:sY8LeJLU
英語ばっかりだし
アメ公バカだから他人の商売邪魔しないじゃん(それが例え詐欺でも)
イスラム圏の方の意見とかも聞きたい
2019/12/31(火) 16:06:52.51ID:M+c7v3Ij
インターフェースに頼りきりだから無理だわ
931デフォルトの名無しさん
垢版 |
2019/12/31(火) 16:12:23.12ID:yv9yhyfZ
>>925
オブジェクト指向プログラミングは、「オブジェクト」の概念に基づいたプログラミングパラダイムです。
オブジェクトにはデータを含めることができます。
オブジェクトにはコードを含めることができます。
オブジェクトの特徴は、オブジェクトのデータにアクセスするコードです。
OOPでは、プログラムは相互に作用するオブジェクトで設計されます。

言ってることはまとも
932デフォルトの名無しさん
垢版 |
2019/12/31(火) 16:16:11.09ID:yv9yhyfZ
貧血ドメインがーとかクラス名は名詞がーとか
オブジェクトに知性をもたせるんだーとか俺のちんぽがーとか
そういう設計論が入り乱れてオブジェクト指向が闇鍋みたいになってる
オブジェクト指向自体はシンプルなんだよね
2019/12/31(火) 17:00:17.32ID:9+YIWQbo
>>927
やってみた結果ダメだった
経験から学んでいるんでいいんじゃないか?
2019/12/31(火) 17:43:57.39ID:uegmaB/s
>>928
>むしろリスコフの置換原則がいらんのですよ
驚きました、継承にするか移譲にするかの重要な判断基準そのものを否定するとは、私には暴挙にみえますね

>継承といっても
>・型の継承
haskell の型クラスを思い浮かべましたが、これにはリスコフが厳密に当てはまりますね、というかリスコフが当てはまらない型クラスなんて使えない…

>・実装の継承
最近、簡単なお題で、移譲と実装継承の両方をやって比較してみましたが、継承による実装の継承では、基底クラスへのキャストという無様な記述が排除できないことがわかりました
これは継承より移譲の方が紛れが少ない、やっぱり継承は要らない子なのではないでしょうか?
https://mevius.5ch.net/test/read.cgi/tech/1573094136/943,960 https://ideone.com/y3ROXS
https://ideone.com/CeQlSq

>・状態の継承
これはコードで記述するとなればどのようになりますか?
2019/12/31(火) 18:04:49.54ID:hySeZCft
>>902
これだわ。
staticおじさんが叩かれた理由もそれに関係しそう。
2019/12/31(火) 18:30:21.61ID:M+c7v3Ij
否定する理由にオブジェクト指向でも避けられている
実装の継承、状態の継承をあげて叩きまくる記事を見ると
使いこなしているのかなと何とも言えない気持ちになる
937デフォルトの名無しさん
垢版 |
2019/12/31(火) 19:53:48.92ID:yv9yhyfZ
>>934
君は継承は要らないって立場なのだから継承か移譲かの判断をリスコフの置換原則で行っているとするならば
継承が要らないものならばその判断基準であるリスコフの置換原則も要らなくなると思うのだけれども

Javaで話をするけど

型の継承はインターフェースの実装が例
AbstractListがListインターフェースを実装してるような

実装の継承はArrayListがAbstractListを継承してるのが例
indexOfなどのコードを引き継いでる

状態の継承はHashMapがAbstractMapを継承してるのが例
keySetやvaluesといったデータを引き継いでる

継承の目的は型の継承を使うことでそれを使用するオブジェクトに
影響を与えないようにすることと、実装の継承を使って差分プログラミングで
コードを共通化して管理しやすくすることの2つに大別されると思ってて

リスコフの置換原則は型の継承では必要だろうけど差分プログラミングでは
必要ないと思うんだよね
938デフォルトの名無しさん
垢版 |
2019/12/31(火) 20:08:29.66ID:yv9yhyfZ
僕はBtoBのWebアプリをいくつか作った経験がある
開発の規模は20人程度

プロプラなフレームワークを使って誰が担当してもある程度の
品質は担保されるようにはなってはいるのだけれども
プロジェクト固有のデータや共通の処理があって
そのために抽象クラスを作って各担当者に継承してもらうってことやった

修正があってもコードは集約されてるから修正しやすかった
リスコフの置換原則は意識してなくても継承が役に立つことは
あるんであまり原則とか気にするものじゃないと思った

状況に応じて良い悪いは変わってくるので
継承は良いものだ悪いものだって考え方ではなくて
どういう目的で継承を使うかってことを考える方が大事だと思う
2019/12/31(火) 20:30:32.83ID:CtOcqjds
>>933
プーチ個人の成長としてはそれでいいけど
議論のベースにする定義には使えないだろうって話だよ
その後「結果ダメだった」って刷新されているんだから
(刷新後のものを使うならともかく)
940デフォルトの名無しさん
垢版 |
2019/12/31(火) 20:43:38.69ID:kgxxaEgP
>>928
チンポは随意筋であり不随意筋であり、これはオブジェクトの多重継承だ。
2019/12/31(火) 20:55:26.15ID:sY8LeJLU
今年もオブジェクト指向にメリットなし
942デフォルトの名無しさん
垢版 |
2019/12/31(火) 21:06:20.88ID:kgxxaEgP
>>941
オブジェクト指向は俺の股間に付いている!
2019/12/31(火) 21:15:48.34ID:sY8LeJLU
>>942
メリットなし!
944デフォルトの名無しさん
垢版 |
2019/12/31(火) 22:56:41.31ID:yv9yhyfZ
>>934
素数のプログラム例について
Javaだとsuperというキーワードが使えますよ
https://paiza.io/projects/_vWOZhOW1Qsbn1-DTxVqfQ

この例だと僕も委譲を使いたいです
委譲なら間違って状態を破壊する恐れがありませんから
多態性が必要ならSieveのインターフェースを切ればいいだけですからね
945デフォルトの名無しさん
垢版 |
2019/12/31(火) 22:57:06.02ID:kgxxaEgP
>>943
繋がっているけれども独立している、これがオブジェクト指向。
2019/12/31(火) 23:18:12.57ID:uegmaB/s
>>944
ありがとうございます。java コードをみました!C++ の知識だけでも十分に理解できます
C++ にはない super は便利ですね、ただ super は一行目/最初にしか書けないのは残念なところです

static class SieveExt extends Sieve {
private static int size(int n) {
for (var i = n; i > 0; i--) {
var r = index(i);
if (r != 0) {
return r;

これは、もとの C++ 関連スレへの質問と関連があります。
このプライベートメソッドは、私はメソッドとして書きたくない、という意向があり、C++11 では私はメソッドを立てずラムダ式で書いておきました
なぜならば、この部分は一箇所(SieveExtコンストラクタ)からしかコールされないから、その一箇所にまとめて書くべきだと思っているのです
947デフォルトの名無しさん
垢版 |
2019/12/31(火) 23:24:51.13ID:yv9yhyfZ
>>946
なるほど、Javaだとどうしようもないから
コンストラクタの代わりにstaticのファクトリメソッドを作るかな
948デフォルトの名無しさん
垢版 |
2020/01/01(水) 00:39:30.70ID:rBYnZ9im
チンポは俺の体のコンポーネントであり、かつ独立している!
949デフォルトの名無しさん
垢版 |
2020/01/01(水) 01:10:14.33ID:rBYnZ9im
カプセル化というのはオブジェクトの独立性であり、チンポが勃起してシコシコするのは本人の意思ではない!
2020/01/01(水) 09:57:23.98ID:8N8gBJv/
お前らのちんこはカプセル被ってんだろ
951デフォルトの名無しさん
垢版 |
2020/01/01(水) 11:53:40.74ID:0sRfQiD4
皮をかぶってるよ
2020/01/01(水) 12:53:08.08ID:jjn6CnVO
>>943
そう思ってるのはお前くらいだから。
つーか、お前、普段何を開発しているんだ?
953デフォルトの名無しさん
垢版 |
2020/01/01(水) 13:34:16.06ID:rBYnZ9im
>>952
システム開発経験なぞ無くても、オブジェクト指向は俺の股間に付いているんだよ!
954デフォルトの名無しさん
垢版 |
2020/01/01(水) 13:36:29.61ID:J+09Ut26
>>950
パンツ穿いてるが?
2020/01/01(水) 13:47:39.18ID:fvR1GV/z
荒らしってアク禁にできんの?
2020/01/01(水) 15:36:02.34ID:ADodxX72
>>952
お前こそ>>942のちんぽを有効活用してるのかよ
2020/01/01(水) 16:39:09.51ID:AV+0j7FA
なんでも動的にやることが偉いと思う馬鹿が増えただけ。
958デフォルトの名無しさん
垢版 |
2020/01/01(水) 17:33:53.41ID:rBYnZ9im
>>957
オシッコは本体と繋がっている静的メソッド、勃起は独立した自己完結型の動的メソッド。
959デフォルトの名無しさん
垢版 |
2020/01/01(水) 17:44:06.55ID:rBYnZ9im
膀胱の中にオシッコが溜まって尿意がする、それはグローバル変数である。
960デフォルトの名無しさん
垢版 |
2020/01/01(水) 17:52:37.07ID:rBYnZ9im
オブジェクト指向の無いシステム開発は、勃起しないチンポと同じだ!
2020/01/02(木) 01:29:21.34ID:ZgXvL7GY
今年もオブジェクト指向にメリットなし
962デフォルトの名無しさん
垢版 |
2020/01/03(金) 20:56:18.57ID:83I730Po
<オブジェクト指向>
宇宙間に存在する千万無量の物体がけっして各個別々に独立自存するものではなくて、
たがいに相依り相待ってひとつの組織体をなしていることを表示するものである。
963デフォルトの名無しさん
垢版 |
2020/01/03(金) 22:07:40.74ID:83I730Po
チンポは自らの意思で勃起するが、勃起することをそのまま関数オブジェクトとして扱うこともできる。
964デフォルトの名無しさん
垢版 |
2020/01/05(日) 13:20:42.78ID:gMznNrOe
「チンポがシコシコする」とは、釈尊によって見出された普遍の道理なのである!
2020/01/05(日) 16:16:44.64ID:97/gcjOR
半年前位からPythonをネットで勉強し始めたんだけど(PG未経験)
最初は手続き型でコード書いて、途中からオブジェクト指向もやってみましょう 的な流れ
今迄は 短く簡潔に を意識してきたつもりなのに・・・何でこうなるん?抵抗がある
少し間を間置いてやって、再度やってみたけどイマイチ理解しづらい
途中から切り替えるんじゃなく、最初からオブジェクト指向で習い始めれば良いんじゃネ
966デフォルトの名無しさん
垢版 |
2020/01/05(日) 16:40:02.96ID:c9ynaIM0
PythonやRubyのライブラリは強力だからね
オブジェクト指向じゃなくても大体のことはシンプルに解決可能
2020/01/05(日) 16:52:17.38ID:MBjOiaqb
>>965
プログラミングのスタイルっていうのはいくつもあるんだよ
場合によって違うし、どれでも使える場合もあるし、どれかが最適な場合もある
必ずしもオブジェクト指向が適切なわけではない。ただしオブジェクト指向が適切な場合が多い

だから複数のスタイルを学ぶことには意味がある。
なんで最初手続き型からやってオブジェクト指向なのかというと
オブジェクト指向の方が覚えることが多いから。いろんな機能が増え
歴史的にもオブジェクト指向の方があとで登場した

30年ぐらい前はほぼ手続き型といっていいし、そこから新しく登場した
オブジェクト指向を導入するという流れで、オブジェクト指向を後で勉強するという流れを
今までの人はずっとやってきた。それを受け継いでいるから、
みんな手続き型をやってオブジェクト指向をやるのが当たり前になってる。

オブジェクト指向でも短く簡潔に書くとういことは変わらない。
君はまだコードの行数でしか簡潔かどうかを判断できないのだろう
短く簡潔に書くべきものは動く処理。テストする対象。オブジェクト指向で増えてるのは
処理ではなく定義。関数定義やクラス定義など。これらは動かない。
そういう定義があることで人間が理解しやくなり大きく複雑な構造を持ったシステムが作れる。

だからオブジェクト指向で短く簡潔だったものが複雑になったわけではない。
新たに構造を表す概念が増えた。概念が増えるというこは勉強するものも増えるので
オブジェクト指向の学習があとになるのは必然
2020/01/05(日) 16:54:05.67ID:MBjOiaqb
オブジェクト指向は大きく複雑なシステムを完結にするものだから
学習最初レベルの短いコードではオブジェクト指向が理解できないのはよくある話。

一人で作ってるシステムを作るのではなくその何倍も大きな物を
複数の人が協力して作ると考えれば、少しでは負担を彫らすために
あったら良い機能ばかりであることに気づくだろう
2020/01/05(日) 17:20:21.89ID:97/gcjOR
>概念が増えるというこは勉強するものも増えるのでオブジェクト指向の学習があとになるのは必然
>学習最初レベルの短いコードではオブジェクト指向が理解できないのはよくある話
誰でも通る道なんですね
先に進むと見えるものがあるかも知れないので もう少し頑張ってみます ありがとうございました
2020/01/06(月) 02:04:16.01ID:kkK411tU
>>969
ttps://i.imgur.com/Y1JgMDU.gif
2020/01/06(月) 21:24:01.71ID:AofNeSVL
たとえばGUIのクラスライブラリって
継承によってうまく表現されてる例じゃないかな?
おまえらどうおもう?

java.lang.Object
 java.awt.Component
  java.awt.Container
   javax.swing.JComponent
    javax.swing.AbstractButton
     javax.swing.JButton

継承関係の無い状態にくらべて
ある場合の上記のような構造が
コード全体を理解する助けになってる気がする
2020/01/06(月) 22:05:53.10ID:5+K8WCzC
イベントリスナを持つことと、
他のGUIを複数載っけてリスナ集約することを上手に設計してると思うよ
2020/01/06(月) 22:18:27.66ID:NtfTHL6y
>>971
チェックボックスとか
テキストボックスとかってどこに所属するの?
2020/01/06(月) 23:12:01.08ID:OM+tF+eC
継承関係の階層構造って、整理した気になるだけで実態把握には使えない
元のクラスを一部改変した派生クラスを楽に作りたい、というのは分かるんだけど、それ以上の意味(is-a関係とか)を提示しちゃうのは良いの?ってなる

例えば>>971で言えば、JButton <: Containerだけど、本当にそれでいいの?ってなるし、
ボタンの特性だと万人が想像する「クリックしたときに何か起こせる」って、他のComponentでもできる
でよく見るとActionを介して制御できるってあるけど、Actionに関する機能は>>971の継承関係とほとんど関係が無い
他にActionが使えるコンポーネント、どこにどれだけあるかすぐ分かる?俺には分からない

「継承でこんなにシンプルに表現できる!OOP凄い!」って思ってる頭で、同時に「奥深い!こんなこともできるなんて!」と思ってない?
俺はそんな分裂症気味の精神を持ちたくないし、traitを知ってしまったのでいよいよ利点が分からない
2020/01/07(火) 04:30:06.77ID:tLIimsUP
>>974
意味がわからんっていうか、お前が分かってないだけじゃないか

> 元のクラスを一部改変した派生クラスを楽に作りたい、というのは分かるんだけど、
派生クラスという用語を使うのはやめろ。それは差分プログラミングだ。
そこでお前が言うべき言葉は「元のコードを一部改変した差分プログラミングをしたい」だ
派生クラスは差分プログラミングに含まれるが、派生クラス=差分プログラミングではない

> それ以上の意味(is-a関係とか)を提示しちゃうのは良いの?ってなる
差分プログラミングをした結果is-a関係ができてしまう、のは間違いに決まってるだろ
派生クラスを作った結果、is-a関係になるのではない。因果関係が逆になってる。
is-a関係を提示したいときに派生クラスを作るんだよ

オブジェクト指向というのは「この何を提示したいか?」を(より多く)コードの中に記述することができる
お前はまず動きそうなコードを書いてしまってる。
何をしたいのか(設計)をコードで記述するというレベルに達していない。
2020/01/07(火) 04:35:27.11ID:tLIimsUP
>>974
> 例えば>>971で言えば、JButton <: Containerだけど、本当にそれでいいの?ってなるし、
お前が設計を読み取れてないだけ
オブジェクト指向は現実を表現するためのものじゃない

それを見れば(現実ではなく)「Javaのswingでは」JButtonはContainerの一種として
作られていることが、設計から読み取れる。

例えばHTMLでは、<input type="button">はコンテナの一種ではないが
<button>その他</button>はコンテナの一種だろう
同じボタンでもコンテナタイプと非コンテナタイプが考えられる

お前は現実世界のボタンはどうなんだろうか?って考えてそれでいいの?って思ってるんだろうが
オブジェクト指向は現実世界を表現するためのものじゃない
継承関係から「JButtonはContainerの一種として設計されてる」という事実が読み取れる。
これが重要なこと
2020/01/07(火) 04:52:45.84ID:tLIimsUP
念のために言っておくが

「ボタンはコンテナの一種として設計するのは正しいのだろうか?」という話はしてない
「継承関係から設計が読み取れる」という話をしてる

「継承関係から設計が読み取れる話」と
「継承関係から設計を読み取った結果、この設計は正しいのだろうか?」というのは全く別の話

設計が間違ってるなら設計が間違ってるってだけの話だろ。
それは継承関係を用いた「設計の一例」の話であって
継承関係で設計が表現できるという事実とは何の関係もない

そもそも継承関係で設計が表現からこそ、その継承関係だけを見て設計の正しさを議論ができわけで
継承関係をコードとしてかけるというのは、素晴らしいことの証明になってるだろ
978デフォルトの名無しさん
垢版 |
2020/01/07(火) 16:59:14.59ID:PuPIfAOU
長方形正方形問題から察するに、実装の継承は問題点が多い。
979デフォルトの名無しさん
垢版 |
2020/01/07(火) 17:21:16.73ID:hfId9fDJ
>>976
>お前が設計を読み取れてないだけ
>オブジェクト指向は現実を表現するためのものじゃない

夢の世界?
2020/01/07(火) 18:46:35.84ID:UOpWbGAG
「現実を表現するためのもの」である
と主張して憚らない人たまにいるよね
マジなんかネタなんか最後までわからんけど
2020/01/07(火) 19:05:58.19ID:BsHoEUh2
オブジェクト指向ではカモノハシを表現できないとかなw
カモノハシを表現するための道具じゃないからwww
2020/01/07(火) 19:23:34.86ID:VQksduWK
僕オブジェクト演算子を作った人だけど
恩師に褒められた部分は
開発環境でのプロパティのアシストが便利で楽
だけ
2020/01/07(火) 19:35:33.44ID:MkSf+UQ1
恩師って無名の素人やろ?w
あ、大学で有名とかそういうのはいいから
ソフトウェア業界で名前が知られてるかどうか
2020/01/07(火) 19:54:07.82ID:VQksduWK
恩師はC89の開発者の一人
名前を知られているかはわからない
2020/01/07(火) 22:47:41.56ID:+L6qE003
結局必要だったのはネームスペースの閉じ込めだけだったのに
余計なことしてくれたという感想しかない。
2020/01/08(水) 00:44:37.39ID:9117F55y
正しさを人が議論しなくちゃいけない、それが継承の限界だよ。俺はフツーに数学とコンピュータの力を借りる。
2020/01/08(水) 03:56:49.03ID:tu5ughcT
>>976
Sunが作ったGUIフレームワークという事前情報があるから
安心してクラス階層から設計を読み取れるんだと思う

例えば俺(または経験不明の第三者)がオレオレGUIフレームワークを作って同じクラス階層を提示したとすると、
継承の使い方が間違っていてそのフレームワークが実現したいことは
そのクラス階層で正しいのかという疑念がどうしても拭えないだろ?

考慮されたクラス階層ですという保証がない限り、
クラス階層から設計を読み取っても疑念が残る、
または、バグに繋がるケースがある
>>971 はそういうことを言いたいんだと思う

単純な例だとC#のApplicationExceptionとか、
昔はユーザが作る例外はApplicationExceptionを継承するべき、
現在はMSのライブラリチームの人がクラス階層間違って使ったせいで継承するべきでないという方針転換してるが
クラス階層は互換性からそのままになってる
2020/01/08(水) 05:35:56.16ID:0mytWgwM
>>987
> 例えば俺(または経験不明の第三者)がオレオレGUIフレームワークを作って同じクラス階層を提示したとすると、
> 継承の使い方が間違っていてそのフレームワークが実現したいことは
> そのクラス階層で正しいのかという疑念がどうしても拭えないだろ?

継承に限らないよね?
お前が書いたコードがクソで、そのやり方ではうまく動かないかもしれないし
メンテナンス性が悪いかもしれない

そして>>977の話に戻す

> 念のために言っておくが
>
> 「ボタンはコンテナの一種として設計するのは正しいのだろうか?」という話はしてない
> 「継承関係から設計が読み取れる」という話をしてる

お前のクラス階層が正しいかどうかの話はしてない
「継承関係から設計が読み取れる」という話をしてる
2020/01/08(水) 12:30:33.00ID:9117F55y
何を読み取れるのって話をしてるんじゃないの?
YはXのサブクラスとしたとき、「YはXの状態と振る舞い全てを持っている」以上の意図は込められないのに、「いやY is a Xだ!」って余計な意図を撒き散らしてる
まずどういう視点でis-a関係なのかの説明が必要だし、別の視点で見るときにそのis-a関係は無価値になる

提示できているかどうかが疑われる方法を使って、提示している知識の価値が低い。そんな不便な道具を使っちゃ駄目だ
2020/01/08(水) 13:14:27.43ID:0mytWgwM
> YはXのサブクラスとしたとき、「YはXの状態と振る舞い全てを持っている」以上の意図は込められないのに、「いやY is a Xだ!」って余計な意図を撒き散らしてる
だから因果関係が逆。

自分でサブクラス作ったことないでしょ?
他人が作ったサブクラス見て、あーだこーだいってるだけでしょ?

はじめに世界がありました。はじめにサブクラスがありました。じゃないんだからさ
最初はなにもない。なにもない所にサブクラスを作り出す。

Y is a Xとしたいと思ったときに、YをXのサブクラスにするんだよ
そうすると状態と振る舞いもついてくる

なんで、とりあえずサブクラスでなんて考えるのかな?
理由なしにサブクラスになんかしないだろ
2020/01/08(水) 13:25:00.58ID:0mytWgwM
> まずどういう視点でis-a関係なのか

そんなもん、(自作、既存問わず)フレームワークやライブラリがあって
そのフレームワークやライブラリはクラスを親クラスとして扱う。
それをサブクラスで拡張やカスタマイズできる。

そういうことをしたいときにサブクラスにするに決まってるじゃん
それ以外に理由なんかあんの?理由なんてたった一つなのにそれを説明しろだなんて
お前がその一つの理由を知らないだけとしか思えんが
2020/01/08(水) 15:32:35.96ID:5eql497N
オブジェクト指向とか便利かもしれないけど
普通にクラスのデザインが不味いとオブジェクト指向とか関係なく放棄されるから
オブジェクト指向であっても普通にクソコードは生まれる
免罪符的な何かを期待してもむりじゃね?
2020/01/08(水) 18:20:38.49ID:0mytWgwM
>>992
当たり前だろ。なんでできないやつ、素人用の道具だと思ってるんだ?
2020/01/08(水) 19:06:01.97ID:jWR4zIzC
OOPの概念 ←難しくない
クラス設計 ←難しい
クラス設計が難しい事を自覚すること ←不可能レベルで難しい
クラス設計が難しい事を自覚することなくOOPを批判 ←ありがち
2020/01/08(水) 19:10:26.55ID:9117F55y
逆じゃねえよ作らねえと分からないのがソフトウェア開発だよ
最初に考えた設計じゃすぐに駄目になるから身軽じゃないといけないし、想定外の使われ方をするから防衛的にしなきゃいけないんだ
そんな世界で、後から変更しづらいことが作る前から分かってる道具を使う理由は何だ?

クラス階層は時間で腐る。最初のロクでもない思いつきがずっと残る。作った奴の意図がコードに込められないから用途も目的もブレる。
継承の階層構造から読み取れる意図なんて幻想だファンタジーだフィクションだ。嘘じゃねえよどれだけ世の中にそびえ立つクソがあるか知ってるだろ?
2020/01/08(水) 19:28:35.60ID:0mytWgwM
クラス使っていても特に変更しづらいことはないし何いってんだこいつ?
2020/01/08(水) 20:42:23.62ID:2scEGSHx
>>995
よく入門書に書いてあったのは
設計書をプログラムに反映するためのオブジェクト指向のハズだったよな?
2020/01/08(水) 20:52:21.66ID:0mytWgwM
>>995みたいなのって、設計もせずにいきなりコード書くんでしょ?
だから、コードを共通化したい=サブクラスじゃぁっていきなりサブクラスが出てくる。
そしてYはXの状態と振る舞いを全部持ってるだけだ、Y is a Xという意図はない!
あとから意図を聞かれてごまかしてる。

最初に設計(意図)をして、それがY is a Xであるときにサブクラスにする
コードを共通化したいときにサブクラスにするのではない
2020/01/08(水) 20:56:07.55ID:0mytWgwM
設計もせずにいきなりコード書くから作らないとわからない
すぐにだめになる。全部書き直し、それはクラスだからみたいな意味不明な結論を持ってくる
最初の設計が破綻してるだけ。そもそも設計してないんだろうがな

最初のロクでもない思いつきでコードを書いてるからそうなる
自分が意図を込めてないから、用途も目的もブレる。
そして相手も意図を込めてないと思ってる。
何も意図を込めてないコードから、意図なんて読み取れるわけがない。
意図が読み取れないのは、書いたやつがクソだけ
世の中にあるクソコード一つが>>995が書いたコード
2020/01/08(水) 21:24:19.44ID:kS+vn00V
そもそも汎用的な雪渓は存在しない
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 92日 5時間 37分 22秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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