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
0331デフォルトの名無しさん
垢版 |
2018/09/27(木) 22:55:44.14ID:pq96CSzd
poco使ってc++でwebサーバーの振る舞い自体を組み込みで書く
0332デフォルトの名無しさん
垢版 |
2018/09/27(木) 23:41:51.25ID:emgF57xx
>>330
>オブジェクト指向ってウェブサイトの構築以外でどうやって使う
一般的なアプリケーション作成全般
よほど高速な実行速度が要求されるもの以外
0334デフォルトの名無しさん
垢版 |
2018/09/28(金) 01:09:58.28ID:2dxGIytS
>>324
functionalは状態の管理手法じゃないのになに言ってんだ。
functionalは構造の再帰的分割による細分化やリスト処理の宣言的記述に有効であって
状態は必要なければなるたけ持たないほうが良いのはいろはのイ、セオリーだぞ
そして状態遷移は本当に必要ならオブジェクト指向を流用するのではなく
状態をきちんと管理するんだよ。
それをgetter/setterで要らぬところに状態持ち込んでishaだのhasaだの言ってるから
子供にまで後ろ指差されて笑われるんだよ。
言っとくが別にオレはfunctionalマンセーじゃないぜ。
0335デフォルトの名無しさん
垢版 |
2018/09/28(金) 02:01:07.68ID:HosvZzhg
オブジェクト指向はWebよりjavaとかc#のイメージのが強いな
Webのがメジャーな人もいるのか
0336デフォルトの名無しさん
垢版 |
2018/09/28(金) 02:06:06.17ID:EiOshXgh
>>334
何言ってんの……?

>状態は必要なければなるたけ持たないほうが良い
あのね、ビジネスソフトには状態が必要なの!!

いくら関数型が状態を排除するのが理想だからって
ビジネスを道具の方に合わせることはできない

そんなことも分からないんだから嫌になる
これじゃいつまでたっても関数型が普及しないよな

>状態をきちんと管理する
だからその具体案を聞いたことがないんだって

本当馬鹿じゃないかと思う
0339デフォルトの名無しさん
垢版 |
2018/09/28(金) 08:05:29.06ID:8utkG/Cm
システムの状態とオブジェクトの状態をごちゃまぜにしちゃう無能がおると聞いて
0340デフォルトの名無しさん
垢版 |
2018/09/28(金) 10:00:32.06ID:bPXaydqo
>>338
その「何言ってんの?」は

何を言ってるかわからないという意味じゃなくて
お前は何(馬鹿なこと)を言ってるの?って意味だろ

日本語の時点で
0341デフォルトの名無しさん
垢版 |
2018/09/28(金) 12:17:05.53ID:pLiz6ELv
オブジェクト内部に状態は持たないほうがいいと言うのは当たり前すぐる気がするけどね
0342デフォルトの名無しさん
垢版 |
2018/09/28(金) 12:54:45.76ID:bPXaydqo
>>341

そこは「オブジェクト外部に状態を持ったほうが良い」と言わなきゃだめ
状態をなくせるわけじゃないんだから
0343デフォルトの名無しさん
垢版 |
2018/09/28(金) 13:12:28.51ID:GxtNhjDw
オブジェクト外部に状態持っても、結局そのオブジェクトを包含している上位のオブジェクトがあるので、行き着くところは「アプリケーションオブジェクトの外部に状態を持ったほうが良い」ってならない?
どこでラインを引くかはセンスってことでOK?
0344デフォルトの名無しさん
垢版 |
2018/09/28(金) 13:19:48.03ID:1UhvtMTy
他のオブジェクトの持つ変数を必要とする事自体がおかしい。
必要な引数を渡したら、処理を任せて、必要な値をリターンさえしてもらえればよい。
0345デフォルトの名無しさん
垢版 |
2018/09/28(金) 13:32:05.28ID:bPXaydqo
>>343
そのアプリケーションオブジェクトの外部ってのが
なんのことかわからない。

ファイルに保存のことなのかもしれないが、保存するまでは
総てのデータはアプリケーション内部にあるわけで
結局、仮想的なストレージ(ようするにメモリ)に
保存するしか無いでしょう?
0346デフォルトの名無しさん
垢版 |
2018/09/28(金) 15:21:40.87ID:GxtNhjDw
>>345
そうだよ、俺もそう思うのでアプリの外に状態はあり得ないだろうと。
なのでどこかで線引きをしないといけないんだけど、結局それはセンスという便利かつ曖昧なな言葉で片付けられちゃいそう。
0347デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:23:35.77ID:KV7CiVPs
>>343
ん?それでテストできるならやれば?
実際は制御不能でしょ?
だから駄目だって言ってんの
0348デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:37:56.35ID:++iDCvgk
>>347
んんん?
じゃ、具体的にアプリケーションオブジェクト以下に状態を一切持たなくてどうやって実装するのん?
BrowserでもOfficeでもいいから、一般的なアプリでアプリケーションオブジェクト外部に通信中にファイルオープン済みか否かやなんやらかんやら全ての状態を無理せず実装するエレガントな方法教えて。
一切の状態をアプリに持ってたら駄目だよ。
いくらなんでもこれは反論する自信あるわ。
0349デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:41:30.51ID:++iDCvgk
>>347
分かってると思うけど、今どの画面が表示されてるとか項目の何が選択されてるかも全て状態だからね。
さぁ、エレガントな説明してみて。
0350デフォルトの名無しさん
垢版 |
2018/09/28(金) 18:57:00.64ID:/ke/2lv3
いつまでずれた馬鹿な話してんの?

例えば犬クラスがあってポチオブジェクトがあった
そいつに餌を毎日おなじ餌をあげてたけど(戻り値 完食)
ある日半分しか食べなかった(戻り値 半分)
後でわかったけどポチは病気だった
かわいそうなポチ

犬クラス内部に状態があって同じメソッドを使ってても動作変わってるのが厄介だと言ってるんだろ
それがわからないのかなあ?
0351デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:01:55.81ID:/ke/2lv3
ポチはたまたま病気だとわかったけど
わからなかったら何で半分しか食べないのかわからない

事前に誰かが餌をやったのかもしれない
失恋でショックだったのかもしれない
気分がたまたまそうじゃなかったとしたら解剖しても理由はわからない

未来のテクノロジーでその時の内部状態を再現した無数のポチを作って条件に分けて
えさやり動作チェックするなんて考えただけでも寒気がする
0352デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:02:47.77ID:1UhvtMTy
それはポリモーフィズムを理解してないだけでは。
0353デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:03:10.43ID:++iDCvgk
>>350
厄介だけど、どこかのレイヤで病気か否の状態は必要だろ?
それがアプリケーションレイヤよりさらに上なんてのはあり得ない。
0354デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:08:25.24ID:++iDCvgk
ポリモーフィズムは参照先インスタンスに依存するので、それは間接的とはいえ状態そのものやね。
0355デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:11:12.35ID:/ke/2lv3
>>353
だから対象オブジェクト内部に値を持たせないで関数のシグネチャーにして渡せと

関数に
病気かどうか
失恋かどうか
気分が悪いかどうか
前食べてからどのぐらい時間がたったか
と餌の量を値として渡せと
0357デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:18:47.60ID:/ke/2lv3
>>356
関数を使うものが渡す
その関数は勝手に知らない場所にある値を使わない
同じ値の組を与えたら必ず同じ値を返す
0358デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:19:57.74ID:UT33gEiF
>>348
え?誰がそんなこと言ったの?
内部に持ってアクセスできないのが駄目だって何度も言ってるじゃん
関数実行したら出力全部出せよ
同じ引数で実行したら絶対同じ結果を返せ
0359デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:22:08.98ID:++iDCvgk
>>357
関数を使う、突き詰めればOfficeのユーザーがどの設定画面のどのタブでどのチェックボックスが有効でどのボタンを押したかを一度に伝えるのん?
俺はそんなことはしてないなぁ。
少なくともどの画面が表示されてて何が選択されてるかはアプリの状態に依存してるわ。
0362デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:25:06.97ID:++iDCvgk
>>358
OKボタン押したら絶対に同じ結果になるのん??
仮に条件によりOKボタンが押せないなら、それはOKボタンを押せない条件がアプリにあるってことになる。
0363デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:32:21.07ID:++iDCvgk
>>362
普通は分かるけどへんに誤解があるかもなので訂正。
誤 OKボタンを押せない条件
正 OKボタンを押せない状態
0365デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:37:20.39ID:UT33gEiF
>>362
そもそもお前のアプリって
同じ画像保存してもクリックするたび画像変わるんだろ?
さっさとクビ吊れよ
0366デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:38:21.84ID:++iDCvgk
俺がはなっから言ってるのは、アプリ以下のどこかに状態は必要なはずで、それよりも外に状態を追い出すのは無理があるってことだけ。
0368デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:44:25.53ID:+9bdVI5n
システムの状態とオブジェクトの状態をごちゃまぜにしちゃう無能がハッスルしちゃっとると聞いてw
0370デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:47:14.39ID:++iDCvgk
システム、つまりアプリの状態は少なくともアプリケーションオブジェクト以下が制御してるので、全てのオブジェクトが状態を管理しないってのは無理があるって話。
最初からそう言ってる。
0371デフォルトの名無しさん
垢版 |
2018/09/28(金) 19:50:57.15ID:lTwZu9zK
つか関数型餌やりだと餌やり関数から出力される犬は入力された犬のクローンじゃないのか?
0373デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:18:19.44ID:+9bdVI5n
>>371にどう答えるかでバカのレベルが計れるw
いまのとこ華麗にスルーした>>372がキングやねw
0374デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:20:36.12ID:++iDCvgk
>>372
具体的にどんな大多数のアプリがそう実装してるの?
悪魔の証明を避けるにはお前に実証責任があるからね。
0375デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:21:59.66ID:+9bdVI5n
>>374
今はおまえがしゃべっていい時間やないで
0377デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:25:39.72ID:+9bdVI5n
>>376
うむ、おまえは既に名誉バカの称号を持っとるからここに参戦すべきやない
すこしおとなしくしとけ
0379デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:28:27.44ID:UT33gEiF
>>374
c言語でグローバル変数使わなかったら他どんな組み方があるの?
引数か戻り値で渡すしかないでしょ?
グローバル変数使用禁止が作法のように語られてたんだから
昔の人は何をするべきかわかってたんだよ
0380デフォルトの名無しさん
垢版 |
2018/09/28(金) 20:56:14.71ID:/X9jOxDh
OOPは糞かもしれんが
じゃあ何がいいのかと言われたら別に他にこれといってないのが現状
0381デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:12:44.75ID:k5h2WtG4
頭悪いヤツにかぎって
うれしがってなんでも継承して抽象化とかいってるからな

ホモを人間クラスから派生するぐらい愚かなことやってる
0382デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:16:43.74ID:l603LAAk
基本は当たり前すぎて、階層化であり局所化であり
順序回的な「無用な」状態保持は極力回避し組みあわせ回路的・関数的構造にし、、、、
関連はネットワーク構造よりもツリー構造を指向して見通しよくし、
関連性の強い物は近くにおき(遠くのファイルからあちこち継承してクロスファイルでmethod取り込むようなことはせず)、
といった、、、アー効けく茶後期ツのための基本セオリー。
その表現技法は言語のパラダイムによって変わるだろう。

問題はオブジェクト指向がそういった基本セオリーに反するような手法として普及してしまったことだよ。
0385デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:25:30.29ID:k5h2WtG4
オレぐらいのレベルでないと
オブジェクト指向は使いこなせない
0386デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:27:24.36ID:l603LAAk
たとえば関数型であれば、クロージャーや部分適用を使うことにより、
クラスをイロイロ作ったり状態instance変数でオブジェクトに特徴をもたせ分けるより
非常にシンプルに表現できるし、
また、解法を関数の段階的 細分化で構成することにより、
内側の回関数は小さくなるにつれ速やかに単純な構造になる上、
(再帰も含めた)関数呼び出しの引数リストと帰り値のスタック階層および局所変数が、
自然と個々の階層の参照する「近くにあるべき」状態を単純な木構増階層のかたちで保持できる。

ちなみに上にも書いたけど俺はfunctinalマンセーじゃないからな。
0387デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:29:55.72ID:l603LAAk
>>385
俺の周りでは、素人に毛がはえたか分からんような又派遣さんが、
専門学校でインチキ教わったのか知らないが、
そういう薀蓄をたれながら、くそコード量産して要らぬバグ入れて
残業大会やってるよ
0388デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:33:34.54ID:k5h2WtG4
あえていえば
できるだけ自律的であることが適切で
なおかつそのようにほぼ自律的に振舞うように実装されていれば
内部状態が保持されることは実装として適切

ただし、すべて外部的な要因で翻弄される続けるオブジェクトが内部状態を保持することは
適切な理由がないかぎり、できるだけ避けるべきといっていい
0389デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:35:43.41ID:l603LAAk
問題によってどうしても必要な内部状態というものはあるからな。
そこまでだれも否定はしてない
0390デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:36:39.96ID:k5h2WtG4
刺身の上にタンポポ乗せる作業なんか
ほっといってもいい

そのクラスだけでほぼ完結できる
0391デフォルトの名無しさん
垢版 |
2018/09/28(金) 21:37:59.71ID:/X9jOxDh
> 外部的な要因で翻弄される続けるオブジェクトが内部状態を保持する

まぁアンタの言うように避けたようがよさげにも見えるが
ここでふと思い出されるのはコンテクストとかビルダの働き

java.awt.Graphicsみたいなコンテクストオブジェクトをグニグニいじったり
java.lang.StringBuilderのようなビルだオブジェクトをグニグニいじったり
そういうところこそにOOPの楽しみがあるように俺には少し思えるんだ
0392デフォルトの名無しさん
垢版 |
2018/09/28(金) 22:12:55.17ID:bBdkrZUa
ボタンやチェックボックスがGUIの共通の振る舞いを制御する親クラスがいるのはC++で書かれる前から実装継承するように設計されていた。

一方、普通預金、当座預金、定期預金の共通関数があったとして、預金というスーパークラスを書いているシステムはないぞ。メガバンクの情報系であってもな。
0393デフォルトの名無しさん
垢版 |
2018/09/28(金) 22:24:55.23ID:+9bdVI5n
お、キングを抜いた奴がでたでw
今は>>389がバカキングなw
0396デフォルトの名無しさん
垢版 |
2018/09/28(金) 23:49:37.69ID:/ke/2lv3
普通はそれってオブジェクト指向エクササイズっていうんだけど
同じ表現だから同じひとなんじゃないかな
0397デフォルトの名無しさん
垢版 |
2018/09/29(土) 01:23:56.63ID:NuLdKSCl
そいやオブジェクト指向てデザパタとかメジャーなのに肝心のこっちは影が薄いな
0399デフォルトの名無しさん
垢版 |
2018/09/29(土) 02:12:47.80ID:IuTgmxg/
バカでも作れる処理は
入力の構造体と出力の構造体を関数に渡す程度で済む処理
0400デフォルトの名無しさん
垢版 |
2018/09/29(土) 09:11:35.70ID:nymKFaQh
>>398
IDEと組み合わせるには相性がよかったのかもね
あと典型的なGUIのパーツであるとか
インスペクトしたときズラズラっと出るのが気持ち良いような物に対しては
0401デフォルトの名無しさん
垢版 |
2018/09/30(日) 01:13:02.43ID:2u8tHsEV
age
0403デフォルトの名無しさん
垢版 |
2018/10/02(火) 01:05:20.08ID:A7JQSPUH
考察が浅い
0405デフォルトの名無しさん
垢版 |
2018/10/02(火) 07:20:53.80ID:JB7ad13/
>>403
確かに浅いな
オブジェクト指向のメリットは全くわからなかった
解説してる内容もそもそもクラスを使う側が構造を知ってないと使えない例で書かれてて笑う
0406デフォルトの名無しさん
垢版 |
2018/10/02(火) 07:35:05.76ID:ju0/OZW1
キータって参考になる記事あんまりないんだよな。ある程度の知識もっているのが前提になってるし
プログラミング関連で検索すると常に上位でヒットするのが嫌だわ
0407デフォルトの名無しさん
垢版 |
2018/10/02(火) 09:44:25.77ID:3qG7W8x7
>>402
こういう嘘歴史書いて悦に入っちゃう自称識者のほうがゴリラみたいな底辺コンサルよりずっと始末が悪い
0410デフォルトの名無しさん
垢版 |
2018/10/02(火) 12:34:43.67ID:AvMzrL7k
ゴリラコンサルの所業

朝礼で歌を歌わせる、挨拶の練習
○○(会社の名前)イズムの継承と言ってブラック労働を肯定する
定期的に変なセミナーに通わされる
0412デフォルトの名無しさん
垢版 |
2018/10/02(火) 18:20:49.67ID:/RdnJML/
qiita.comは動機が不明
なぜ頼まれもしないのに不確かな二次情報を書き散らすのか
なぜ頼まれもしないのにノイズをせっせとネットに増やすのか
あれってお金でももらって記事を書いてるのか?

stackoverflow.comは単純
質問者がいて、答えてあげたい人が要る
質問にも回答にも評価がされるようになっており
有益な情報が共有できるようにつくられてる
質問者、回答者、閲覧者の動機がよくわかる
0416デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:50:57.77ID:eaArETqj
教えたがりのクズのくせに答えたあげたいとか言っちゃう気持ち悪さw
0417デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:56:41.61ID:YaWzkSZx
>>412
書いたことあるけど、昔はもうちょっと面白い場だった。
こんなの面白かったよ、とか試してみた、とか。
今は何かというとポエムやら言う奴が出てきたり、本気でレベル低い人も何番煎じかわからん記事書いたりして、収拾ついてない。
コミュニティとしては死んでいってると思う。
0418デフォルトの名無しさん
垢版 |
2018/10/02(火) 19:59:28.60ID:Weccy6g3
>>412は便所の落書きのアホさ加減が光る書き込み
0419デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:06:51.71ID:eaArETqj
昔は良かったボクちゃんw
0420デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:24:30.19ID:JlZ/oy05
qiitaはメモ帳として結構便利
家で調べて纏めて仕事ですぐ使えるようにする
githubにテンプレートを置いとくと尚良
0422デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:30:00.28ID:clFFurIb
俺は結構便利だと思ってるけどな
新しいことのとっかかりにしたり
頭の中にない情報を得るのに使ってるわ

まあゴミ記事も多いけど
0424デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:38:05.56ID:eaArETqj
そもそもなんでqiita検索しとんねんwアホやろw
0425デフォルトの名無しさん
垢版 |
2018/10/02(火) 20:43:51.32ID:YrRJAaFS
ほんの少しだけいい記事もある。

今オブジェクト指向に関するポエムが乱立してるのはアホみたいだがな。
0426デフォルトの名無しさん
垢版 |
2018/10/02(火) 21:14:37.02ID:R8M7QKDK
qiitaみたいなしょうもない個人の日記帳読んでるヤツいるの
0427デフォルトの名無しさん
垢版 |
2018/10/02(火) 21:27:51.22ID:WxkRXB6W
個人の日記帳として読んでる
0428デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:21:33.48ID:HWestuUb
5chみたいな便所落書き読んでる奴いるの?
0429デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:35:01.96ID:/RdnJML/
便所の落書きはむしろ健全なんだよ
書くほうも読むほうももうそれは分かってるから

>>417
> 何番煎じかわからん記事

ほんとそれ
検索結果を汚すのはもうやめて…
つべの歌ってみたレベルで悲しい
0430デフォルトの名無しさん
垢版 |
2018/10/02(火) 22:35:39.44ID:BVvmn2A/
そんなことは自己紹介板に書きなよ
■ このスレッドは過去ログ倉庫に格納されています

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