X



オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:32:09.36ID:ifygL6bT
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

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

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

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

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
0651デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:48:12.08ID:811LgONL
>>649
methodの中つまり関数の中でだろ
0652デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:50:45.37ID:811LgONL
明日出勤なので寝るぜ
あばよはげどもノシ
0653デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:51:32.33ID:IMi/szTI
>>650
方法論ってなにがほしいのか知らんが、
関数型言語で作ったライブラリは状態を持たないから
汎用的な関数ライブラリになる。
それを便利にオブジェクトで使用する
0654デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:53:09.64ID:kgyl4Ui4
オブジェクト指向のメリットは説明できたかい?

定期的に貼らないと関係ないこと主張する奴がわくからな
これが説明できないならクソ
0655デフォルトの名無しさん
垢版 |
2018/10/08(月) 21:56:30.02ID:IMi/szTI
オブジェクト指向のメリットは状態を
簡潔にわかりやすく持たせることができる

アルゴリズムならともかくシステムから
状態をなくすのは不可能なので
それをどれだけ直感的に扱うか不可欠になる

それが関数型に対するオブジェクト指向のメリット
0656デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:00:12.76ID:811LgONL
>>655
直感ですか…
0657デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:01:29.15ID:r/3VlGF9
OOPのメリットを教えてくれる奴なんていくらでもいたよな
それでOOPが普及して
ふと気付いたらメリットが何だったのか思い出せない

ここでまたメリットを教えられても無限にループするだけだ
0658デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:05:17.61ID:IMi/szTI
>>656
そう。3歳の子供でも、リンゴとミカンの色や形
犬や猫の鳴き声の違いぐらいわかるだろう。
それぐれいオブジェクト指向は人間の思考と一致している
0659デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:05:31.32ID:811LgONL
型クラス、クラスscope、オブジェクトscope,
同じ名前の多態(振る舞いの違い)、
継承によるあっちこっちに無難格納したソースファイルの
似たmethon部分の短冊のような共有による依存性のジャングル

これらについて理論的、科学的に有効性を述べないとだめだよ
0660デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:11:45.44ID:811LgONL
そう、そしてそれらがある程度規模の大きく複雑な
アプリケーションレイヤのソフトウエアの構造表現として
どう有効なのか理論的、科学的に述べないと…
0661デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:19:30.00ID:r/3VlGF9
確実にメリットがあるなら人には教えないで独占する
それが理論的で合理的

確実ではないギャンブルなら人に教える
0662デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:28:08.41ID:811LgONL
>>661
つまりメリットは無いとw
0663デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:33:36.33ID:811LgONL
オブジェクト指向は低学歴にはムリ
それはあってる

オマエも含めてな
0666デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:37:03.95ID:811LgONL
低学歴知恵遅れが自分を大きくみせようと
必死なのはわかる
0667デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:38:24.97ID:811LgONL
だいたいわかる

ウンコスクリプトしか使えないような低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
0669デフォルトの名無しさん
垢版 |
2018/10/08(月) 22:51:37.06ID:811LgONL
節子それfake
0670デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:13:05.52ID:r/3VlGF9
1bit思考の中で最悪なのは、需要と供給
買う方が100%自己責任と思ってるから売ってる側は罪悪感0
0671デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:18:57.76ID:811LgONL
その論点から起こしてだね、
オブジェクト指向の有効性を非論理的、寝技的に布教しようとするのは
いくらなんでももう、無理があるよ
0672デフォルトの名無しさん
垢版 |
2018/10/08(月) 23:40:30.66ID:C02Vpegg
ここの議論でもそうだけどカプセル化とかインターフェイスに対するプログラミングとか
ここの要素について話すのは意味があるが
「オブジェクト指向」って言葉でまとめると途端にクソ議論になる。
その意味ではやっぱり失敗だろう。
0673デフォルトの名無しさん
垢版 |
2018/10/09(火) 02:31:35.79ID:GxJd+3a3
>>672
その辺はポジティブな意味合いが強いからな
ただメリットがあるからってデメリットがどうなるかは別問題として
0674デフォルトの名無しさん
垢版 |
2018/10/09(火) 06:16:50.45ID:1H6kld1Z
カプセル化とかは「学習コスト」だから100%ネガティブ
コストを消費する代わりに何かメリットがないとポジティブどころか中立にもならねえ
0675デフォルトの名無しさん
垢版 |
2018/10/09(火) 06:53:21.12ID:Fv2MSo0/
今になって思うのは、オブジェクト指向にまつわる説明で特徴的な何々は何々であるだから何々があるはずだ的な事は製作者側の考え方の根本だったんだろうな。
ここに共感してないから触ってても疑問がつきまとう。
それでもってこういう考え方をする奴は布教的な奴が多い。こういう奴らは本当本当に嫌いだわ。人のその後に対する考えなんてみじんも無い。
例えばウェブ上で人気の言語的なランキングで上位に入ってる言語と周りを見渡して実際触られる言語の食い違いがひどい。
他の奴の意見見てると大体同じ感覚で変な笑いがでる。
0676デフォルトの名無しさん
垢版 |
2018/10/09(火) 07:05:27.74ID:xcSr1k5g
振り返ると、信仰宗教みたいな流行だった
0677デフォルトの名無しさん
垢版 |
2018/10/09(火) 10:12:33.99ID:hleJLyKe
オブジェクト指向の宗教的側面と、Rubyの宗教的側面がかけ合わさって
ドン引きするレベルの狂信者が出現した

もはや言語は死につつあるのに狂信者は毎日板を荒らし回ってる
0678デフォルトの名無しさん
垢版 |
2018/10/09(火) 10:58:21.87ID:MhhKJFZu
>>674
学習コストはなんにでも適用できる
一般的すぎて無視できる

プログラムを作るにはカロリーを消費すると
言うようなもの、そらそうだで終わり
0679デフォルトの名無しさん
垢版 |
2018/10/09(火) 11:01:37.61ID:MhhKJFZu
カプセル化してしてデータを閉じ込めることこそ
オブジェクト指向の真髄、データに対する責務を
集約する事でプログラムを作りやすく堅牢で
メンテナンスしやすくできる
0680デフォルトの名無しさん
垢版 |
2018/10/09(火) 11:40:52.35ID:1H6kld1Z
>>678
コストがあるから見返りにメリットが必要だったんだが
コストを無視するならもうメリットがあってもなくてもいいぞ
0683デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:05:55.31ID:MhhKJFZu
オブジェクト指向テクニックを使うと外から壊されにくい
堅牢なデータ構造を作ることができてプログラムの
完全性を保証できる、オブジェクトを組み合わせて
より大きなプログラムを作れるっていうのが
オブジェクト指向のメリット
0684デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:11:49.02ID:1H6kld1Z
当たり前すぎるってあれだよな
反証不可能ってやつ
反証したい勢力と対立煽りするくらいがちょうどいいんだよな
0685デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:12:29.16ID:MhhKJFZu
データ隠蔽が有害っていうのは嘘だ
データは隠してなんぼ、オブジェクトを使う側に
データの存在を意識させないようにする事で堅牢な
プログラムを構築できる
0686デフォルトの名無しさん
垢版 |
2018/10/09(火) 12:44:03.73ID:3cHmJpwL
大規模開発はオブジェクト志向が、
とか喧伝する低偏差値信者もおとなしくなり、
一歩下がって、そんなに良いものだったっけ?と振り帰られる雰囲気がでてきたのは良いこと

いつまでも熱狂信者の思惑通りにはいかないよ
時がたてば、本当にコストペイするものだけが生き残る
0687デフォルトの名無しさん
垢版 |
2018/10/09(火) 15:34:08.86ID:s6lFROtd
>>685
テストもできないのが不味い
結局使用する側が状態を意識しなくてもいい造りなら問題はおきない

でもinitメソッド連発で呼ばれると死ぬだろ現実
initメソッド呼んだんだからどんな状態であれ初期状態に移行しろよ
ってのが呼ぶ側の主張
0690デフォルトの名無しさん
垢版 |
2018/10/09(火) 17:11:39.56ID:UgeI4/Dm
>>687
> でもinitメソッド連発で呼ばれると死ぬだろ現実
> initメソッド呼んだんだからどんな状態であれ初期状態に移行しろよ

どんな場合でも初期状態に移行すればいいだけでは?
0694デフォルトの名無しさん
垢版 |
2018/10/09(火) 18:17:11.30ID:o83bbsRF
>>690
でも実際はハードに近い部分のinitだったりするとそうはいかないケースがあるよね?
って可能性が想定できないなら君は設計を語るレベルにないんじゃない?
0697デフォルトの名無しさん
垢版 |
2018/10/09(火) 18:50:57.71ID:UgeI4/Dm
>>696
じゃあそういうケース以外には当てはまらないってことでいいよね
例外中の例外なんてどうでもいいわ
0699デフォルトの名無しさん
垢版 |
2018/10/09(火) 18:52:15.46ID:jSAcVkU7
メソッド呼ぶほうが呼び出し順にナーバスな設計というのが糞
内部を隠蔽できてねーやんというだけのこと
0701デフォルトの名無しさん
垢版 |
2018/10/09(火) 19:31:40.73ID:o83bbsRF
んでそれを踏まえて
お前のクソクラスは息してんの?
って話
レアケースだから死ぬわってお前
言ってるように聞こえるけど
バカなん?
0702デフォルトの名無しさん
垢版 |
2018/10/09(火) 20:06:57.87ID:9OTFAl28
>>689

うるせぇエビフライぶつけんぞ

,.、,、,..,、、.,、,、、..,_  /i
;’`;、、:、. .`゙:.:゙`’’’:,’.´ -‐i
‘、;: …: ,:. :.、..; .;;.‐’゛ ̄  ̄
   ヽ(´・ω・)ノ
     |  /
     UU
0703デフォルトの名無しさん
垢版 |
2018/10/09(火) 20:08:18.35ID:UgeI4/Dm
>>700
オブジェクトが状態を内包するか
オブジェクトの外に状態を置くかの違いでしか無いですね
0704デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:39:06.76ID:o83bbsRF
>>703
だからその一点でクソだって言い続けてるじゃん
カプセル化がどうとかバカの妄想だろ
テメーの状態がわからねーのが一番のリスクなんだよ
何がカプセル化だよ
早く死ねよ
0705デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:45:21.47ID:Z2FoPQmM
localなデータを局所に隠蔽するべきなのはソフトウエア工学上、
当然のことでカプセル化の専売特許ではない。
ほぼすべての最近の言語はlocal scopeを持っている。
だがオブジェクト指向のカプセル化によるデータの内包とアクセサは
他の言語の持つモダンな階層的scopeに管理工学的にはるかに劣る。
ここ勘違いしないように。
0709デフォルトの名無しさん
垢版 |
2018/10/09(火) 21:58:49.50ID:Z2FoPQmM
この程度でテクニカルターム…
0710デフォルトの名無しさん
垢版 |
2018/10/09(火) 22:30:33.22ID:UgeI4/Dm
>>704
ようするにテストはプライベート変数を見たいってだけですよね?
テスト以外では必要ないですよね
カプセル化バンザイですよね?
0711デフォルトの名無しさん
垢版 |
2018/10/09(火) 23:05:57.02ID:5o1aZXWL
どれくらいのアクセス度がいいかはそのクラスのそれぞれによるところはある。
STLのvectorなんて見方によってはかなりオープンだけれどあれはあれで適切な開け方。
0712デフォルトの名無しさん
垢版 |
2018/10/09(火) 23:18:00.29ID:uKgwXIAC
内部の状態が心配なら
ちゃんとクラスに内部の状態を(コンポジションなら当然再帰的に)ダンプする関数ぐらいつけてんだろうな
つけてないならお話にならない

外部で状態を管理して
外部で構造体を監視するのと
そう変わらない
0713デフォルトの名無しさん
垢版 |
2018/10/10(水) 00:01:14.01ID:j7g+1zT7
>>710
テストだけではないな
その関数が同一の結果を返す条件を固定したい
っていうかできねープログラムなんてぶっちゃけクソもいいとこだろ
0714デフォルトの名無しさん
垢版 |
2018/10/10(水) 00:06:10.55ID:+GhPUDy2
仕事関係なく趣味でソフト作ったやつの意見は尊重できる。仕事だけで横文字多様してる奴のはフィルター推奨だな。
0716デフォルトの名無しさん
垢版 |
2018/10/10(水) 00:54:19.42ID:T78UR1cm
本当にそれは状態として動的に管理すべき対象なのか
十分吟味してないだろ
0717デフォルトの名無しさん
垢版 |
2018/10/10(水) 01:07:23.22ID:YM9RoEIA
>>716
ん?
じゃあ、クソインスタンスがどんな状態でメソッドを呼んでも絶対同じ結果返すんだな?
その時点でメンバ変数いらねーけど
0718デフォルトの名無しさん
垢版 |
2018/10/10(水) 01:35:56.64ID:T78UR1cm
>>717
日本語読めるようになってからレスした方が良いよ
0720デフォルトの名無しさん
垢版 |
2018/10/10(水) 02:19:17.93ID:vuJDL2IF
Haskellでいう副作用なら標準入出力、ファイルio、時間、ランダムなどが副作用なるな
モナド並にリッチなシステムをオブジェクト指向で組んで副作用を過敏排除するなら楽しそうやんけ
0721デフォルトの名無しさん
垢版 |
2018/10/10(水) 06:36:14.84ID:az2ldVPt
>>713
> その関数が同一の結果を返す条件を固定したい

引数Aにaを入れる、引数Bにbを入れる、引数Cにcを入れる
引数A、B、Cで関数funcを呼び出す

メソッドAでaを入れる、メソッドBでbを入れる、メソッドCでcを入れる
メソッドfuncを呼び出す


関数の引数に値を入れる代わりにオブジェクトに入れるだけの違いでしか無い
0722デフォルトの名無しさん
垢版 |
2018/10/10(水) 07:54:35.27ID:75F81x8u
>>719
現在時刻しか返ってこねーだろ?
テメーのは指定してもいないのにサマータイム返すクソだろ
0723デフォルトの名無しさん
垢版 |
2018/10/10(水) 07:55:48.71ID:75F81x8u
>>721
でも入力値は使用する側が意図的に入れるものだけど
メンバ変数は何になっているかわからない

この差がデカイ
0724デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:08:36.10ID:WWPIMa8b
>>713
>その関数が同一の結果を返す条件を固定したい
同じ条件で違う結果が返ってくる関数ってハードウェア乱数発生器とかしか思い浮かばないんだけど、具体的にこんな関数ってのある?
0725デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:42:05.46ID:00uAZtDo
>>714
結局それも色々賢そうな事書いてるであろう仕事で書いてる人のコードが見てて凄いと思わないんだよ。
簡単な事を冗長的にフレームワークのようにしたコードが多くてただの社内での点数稼ぎなんだろうと伝わってくる。そして少し環境を変えてシステムを構築し直す時に問題が出て来るのって大抵そういうコードだったりする。
0726デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:49:14.91ID:az2ldVPt
>>723
> でも入力値は使用する側が意図的に入れるものだけど
> メンバ変数は何になっているかわからない

変数に文字列入れたって、それがどういうフォーマットで入っているかなんてわからんだろ

文字コードは何なのか、内部エンコーディングなのか
文字列の最初に文字列長情報がついているのか
文字の終わりは\0なのか

変数に数値入れたって、それがどういうフォーマットで
入っているかなんてわからんだろ

32bitで保存されているのか、64bitなのか

変数に入れようがメソッド呼び出そうが
ある一定の手順の操作を行えば、それで状態は確定するんだよ
0727デフォルトの名無しさん
垢版 |
2018/10/10(水) 08:50:44.41ID:az2ldVPt
>>725
> 結局それも色々賢そうな事書いてるであろう仕事で書いてる人のコードが見てて凄いと思わないんだよ。

あぁ、プロの将棋を素人が見ても、凄さを理解できないのと同じだな
んで、何やってるか理解できないから、直すこともできない
0728デフォルトの名無しさん
垢版 |
2018/10/10(水) 09:25:59.20ID:lh7vR7+I
凄さを理解されなくても半分諦めてるプロって
ラノベ主人公でよくあるやつじゃん
0729デフォルトの名無しさん
垢版 |
2018/10/10(水) 10:18:56.28ID:00uAZtDo
素人とプラグラマーに根本的な差を感じてる奴はちょっと怪しいな。
0730デフォルトの名無しさん
垢版 |
2018/10/10(水) 10:58:13.09ID:00uAZtDo
素人だからこそ言い切れる。プログラミングって9割はツールを使いこなせるでしか無いよ。
将棋に関してもたぶん君は将棋について詳しくない人だと思うな。
0732デフォルトの名無しさん
垢版 |
2018/10/10(水) 11:48:06.40ID:00uAZtDo
ま、分かったじゃあそう思っとけ。このご時世どんなに賢ぶってもそんなに凄いプログラマーが日本に溢れてないのが透けて見えてるんだけどな。
0733デフォルトの名無しさん
垢版 |
2018/10/10(水) 12:27:49.69ID:AVL6Qil2
俺もオブジェクト指向を中途半端にかじった中途半端な優等生が、
これ見よがしに作った自社製フレームワーク(全然便利ではない)しか
見たことないわ

作ったのは一流大卒の大手ベンダーの開発推進チームなんだが、
日本人ってその程度だと思うよ

Stringクラスって便利ー!ぐらいのほうが幸せになれるぞ
0734デフォルトの名無しさん
垢版 |
2018/10/10(水) 12:30:14.49ID:AVL6Qil2
中途半端な優等生の成果物がその程度なんだから、
三流大卒のおまいらの成果物なんて推して知るべくだよな
0735デフォルトの名無しさん
垢版 |
2018/10/10(水) 12:35:08.25ID:Vh7YHzSV
べつに透かさんでも直接見えるやろw変なやつw
0739デフォルトの名無しさん
垢版 |
2018/10/10(水) 14:27:07.52ID:DTkCRDr0
学力ランキングを批判するだけなら良いぞ
だが、学力の対案は性格っていうのがダメだ
おかしな対案を出すより何も出さない方がマシ
0741デフォルトの名無しさん
垢版 |
2018/10/10(水) 17:55:56.61ID:DTc0bT+8
>>733
大手企業のフレームワークは派遣さんがアホなことをしないようにあえて機能を制限してる
生産性が多少犠牲になっても非常識な派遣さんがやらかしてしまうリスクを減らすことが重要と考えたんだね
そういう意味ではオブジェクト指向の基本であるカプセル化は非常に役に立っていると言える
0742デフォルトの名無しさん
垢版 |
2018/10/10(水) 18:01:10.70ID:az2ldVPt
>>741
なら派遣を使うことがリスクなのでそれをやめればいいと思います。

本当のリスクは・・・無理なコスト削減なのでは?
コスト削減のために、無駄なコストをかける。

うーん、馬鹿なのでしょうね
0743デフォルトの名無しさん
垢版 |
2018/10/10(水) 18:25:41.34ID:crjMMeGj
既存のフレームワークにケチつけたい人は
それ以上のものを作れる人なの?
それとも、作れないし作ったことも無いけどケチつけたい人なの?

煽りじゃなくて純粋な疑問
ぜひ、小学生のような瞳をしてそっと教えて欲しい
0747デフォルトの名無しさん
垢版 |
2018/10/10(水) 20:28:30.09ID:DTc0bT+8
>>742
派遣さんを切ったら中抜きで稼いでる人達が困る
派遣さんは使う、でもバカな真似はやらせたくない
このバランスが大事
0748デフォルトの名無しさん
垢版 |
2018/10/10(水) 20:31:47.32ID:1d6HAJSZ
最近は中抜きはまだまともな行為だと思えてきた。
バカがクソみたいな意見押し通してくるよりマシだ。
そういう意味でベイシックインカム賛成。
■ このスレッドは過去ログ倉庫に格納されています