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
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
最近は中抜きはまだまともな行為だと思えてきた。
バカがクソみたいな意見押し通してくるよりマシだ。
そういう意味でベイシックインカム賛成。
0753デフォルトの名無しさん
垢版 |
2018/10/11(木) 17:52:18.63ID:lqVwZR/7
んじゃクロージャ出たから

オブジェクト指向で末端の人、要は上の誰かが作った仕組みやクラス使って自分はそこからオブジェクト弄るだけの人は可能な限りクロージャ使いまくった方がと思うんだよな
よく委譲処理でこのふたつどちらか選ぶ事あると思うんだが末端なら即クロージャ
0754デフォルトの名無しさん
垢版 |
2018/10/11(木) 19:53:44.01ID:hrM+9Jlq
>>714
仕事は範囲が限られているからね
その仕事でやらなければならない範囲だけ出来れば
後は何が出来ようが出来まいが関係なくなるからね
一言で言えば視野が狭い
横文字を多用する人は狭い世界で通じてそれでokになっちゃってる
多種ではないし世界が兎に角狭い
実際ゲームなんかでは敵クラスを作って敵が増えるたびにオブジェクトを生成する
ってやると感覚的に凄く簡単
0755デフォルトの名無しさん
垢版 |
2018/10/11(木) 20:31:48.13ID:m9vsKwrk
>>752
どんな話題が面白いの?
このスレ的にはオブジェクト指向のメリットが説明できなければ
終わりなんだけど
0756デフォルトの名無しさん
垢版 |
2018/10/11(木) 20:34:12.11ID:U1kKB/4M
逆でしょ?説明されれば終わりなのがいやだから
答えが出てるのに、同じことをくり返し聞く
0757デフォルトの名無しさん
垢版 |
2018/10/11(木) 20:38:52.62ID:m9vsKwrk
>>756
え?メリット出てる?
見たことないよ
毎回、バカが長文書くだけで
品質向上なのか工数削減なのか、それが起こるロジックが全くの謎
0758デフォルトの名無しさん
垢版 |
2018/10/11(木) 21:05:36.68ID:o+Pj5MkJ
犬がワン、猫がニャン
→なにそれ美味しいの?

大規模じゃないとメリット説明しにくいよ
→説明できないって、大規模なプログラムを経験して体で覚えろと?

要するに、簡単には説明できないよ
→だったら学習コストとの天秤では?

俺の中ではこんな感じ
0759デフォルトの名無しさん
垢版 |
2018/10/11(木) 21:06:47.80ID:U1kKB/4M
品質向上だし工数削減にもなる

馬鹿はそこでなぜか品質向上と工数削減のために
追加作業が増えるとダメだと話を聞かない
0761デフォルトの名無しさん
垢版 |
2018/10/11(木) 21:48:27.62ID:29n02hV2
いわゆる土方候補生か
0762デフォルトの名無しさん
垢版 |
2018/10/11(木) 22:35:19.32ID:FTrPBrPb
>>753
関数ポインタと汎用のvoidポインタ渡すインターフェイスより明らかに良いとは思うけど、
ガベコレない言語では上手くいかんだろ。
その場合は継承させるしかないっていうc++の選択は間違いじゃない。
0764デフォルトの名無しさん
垢版 |
2018/10/12(金) 00:47:17.48ID:U1NbXGxJ
オレぐらいのレベルでないと
オブジェクト指向は使いこなせない
0765デフォルトの名無しさん
垢版 |
2018/10/12(金) 00:47:48.97ID:U1NbXGxJ
だいたいわかる

低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
0767デフォルトの名無しさん
垢版 |
2018/10/12(金) 07:03:34.63ID:ogDn0rIL
>>762
全く解消されてないだろ。。
キャプチャーしてる変数の寿命を考慮してなきゃならんし、こんなん使わねーわ。
0768デフォルトの名無しさん
垢版 |
2018/10/12(金) 08:23:50.28ID:8+F5vpV5
型の問題と寿命の問題を分離しない
OSとGUIを分離しない
フルスタックな環境を作る密結合指向って感じ
0770デフォルトの名無しさん
垢版 |
2018/10/12(金) 11:04:22.00ID:8+F5vpV5
>>769
その設計にオブジェクト指向が関与していると疑われている
その問題の解決にオブジェクト指向は全く寄与しない、と宣言すれば疑いは晴れる
0772デフォルトの名無しさん
垢版 |
2018/10/12(金) 17:19:28.65ID:5jm0P0/q
オブジェクト指向信者もDI信者も同じ臭いがするね

【Java】DIコンテナって本当に便利か?
http://mevius.5ch.net/test/read.cgi/tech/1219242206/

次は何を担ぐのやら


外国で流行って育っていくのだから、それなりのメリットはあるんだろうけど、なぜか仕事では恩恵にあずかったことはない
0773デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:33:03.38ID:4mK9L0RW
設計のセンスの無い奴はどんな流行が来たって糞な設計しか出来ないんだよなぁ
センスがある奴はなんとなくどんな流行のスタイルでもこなして来るからなぁ
0774デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:41:34.47ID:CecLyO81
どーでもいーけどコーディングの事設計てゆーのいーかげん恥ずかしくね?w
0775デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:45:43.93ID:4mK9L0RW
は?
設計はコーディングじゃねーよw
四角い箱描いて矢印や電線で繋げて遊ぶ奴だぞ。
0776デフォルトの名無しさん
垢版 |
2018/10/12(金) 20:45:57.27ID:SyXP90mj
ある一定以下に対して理解できるような教範が出てこない
だから一部の人しか使えないようになってる
結局は出来る人の間で持て囃されるだけになってしまう
この何か新しいやり方を創造するのと一般に使えるようにする
というのは本来両輪なんだけど
普通以下の人達が使えるようになる教範を作る
というのはかなり難しい上に
それをやる人には余りメリットがないから
なかなか出てこない
だから
オブジェクト指向プログラミングにしても
関数型プログラミングにしてもその他の技術にしても
広く(普通程度以下)使われるのは難しいし
このスレのタイトルみたいな感想を持つしかなくなる
後は自分が出来るけど他の人が出来ないままのほうが出来る人には得だから妨害する
みたいなのが居るくらいだろうかねぇ
0778デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:12:49.59ID:CecLyO81
ガチでわかっとらん奴やったw
0780デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:21:05.43ID:xVyRtSc0
少なくともこのスレにいるような低学歴知恵遅れのドカタには
オブジェクト指向言語を適切に使いこなせない
0781デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:27:17.84ID:d1sPni1g
少なくともこのスレにいるような低学歴知恵遅れのドカタには
オブジェクト指向言語を適切に使いこなせない
0783デフォルトの名無しさん
垢版 |
2018/10/12(金) 23:12:30.21ID:xVyRtSc0
日銀短観のDIは便利
池沼あげのDIはtraitsなみにウンコくさい
0784デフォルトの名無しさん
垢版 |
2018/10/13(土) 10:26:58.14ID:YNebL+WU
今時DIも使いこなせない人材とか組織にとってのリスクでしか無いよ
あっちこっち結合しまくったクソコードを社内リポジトリにばらまくとか悪夢そのものじゃん
0785デフォルトの名無しさん
垢版 |
2018/10/13(土) 10:58:13.65ID:H4Y+M12v
DI使っても結合しまくったくそコードはくそのままだ
業務分析の時点でコケて役割分担がぐちゃぐちゃなんだからDI導入したって解決しない
0786デフォルトの名無しさん
垢版 |
2018/10/13(土) 21:25:17.45ID:YNebL+WU
>>785
DIを使わないから業務分析の時点でコケて役割分担がぐちゃぐちゃになるのでは?
設計者にDIを学習させてDIを使う前提で設計させればそのあたりの分担がキレイになるように意識して設計するようになるよ
0788デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:15:51.44ID:L3Dj2/gz
cのたくさんの構造体にいっぱい変数や関数ポインタもたせて
それ入力にして処理するのと同じ
0789デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:29:25.59ID:HA3RUpZg
DIはたしかにきれいな設計になるが、めんどくて工数がかかる。
作業者にはYAGNIのほうが優先度高いから勝手に採用できない

だからそういうのはトップエンジニアが最初に管理方針としてきめとくもんだ
末端のプログラマーに責任押し付けるのは酷
0790デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:38:19.49ID:HA3RUpZg
今のDIはめんどすぎる
既存コードをいじらないで中身をすげかえる
もっと楽な方法はないものか
0791デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:42:51.86ID:An0DfPZD
DIは言語自体に組み込まれるべきもの
高級言語はどんどん高級になるべきだが
ガベコレ搭載あたりで停滞してしまったからね

本来はDIやデザインパターンやユニットテストや
フレームワークまで高級言語の仕様に含めなきゃいけない
0792デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:44:08.09ID:L3Dj2/gz
インターフェースを決め打ちにしたテンプレート作る間抜けな作りと
大してかわらないからな
0793デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:48:54.83ID:c+yfSqJ1
使用者との合意の無いインターフェースほどクソなモンは無い
独りよがりで考えたものは全部クソなので誰にも見られないうちに捨てて欲しい
0794デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:54:18.52ID:An0DfPZD
逆に言えば使用者との合意のあるインターフェースは問題ない
ということになってしまう。
■ このスレッドは過去ログ倉庫に格納されています

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