オブジェクト指向ってクソじゃねぇかよPart3
■ このスレッドは過去ログ倉庫に格納されています
無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。
カプセル化(英語: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/ 具体的にはメソッドの呼び出し制限が不明だよね
init呼ぶ前に呼んでおかないと駄目
init呼んでから出ないと駄目 オブジェクト指向の問題じゃなくて静的型付けの問題だろう 話をまとめると、オブジェクト指向をやるには
しっかりテストしてないとだめということかな? オブジェクト指向じゃないプロジェクト
例えばCOBOLなんかだと、
どこでどんなふうに関数が使われているか
わからなくても、大丈夫って話をしているようだ
それが何故なのかさっぱりわからないので
理由を教えてくれ >>36 >>37 呼んじゃいけない状況にそもそもならないように作る
呼んじゃいけない状況で呼んだら例外を投げる
呼んじゃいけない状況を属性やドキュメントコメントに書く
オブジェクト指向はこのへんしっかりしてるから良いね
メインルーチンでグローバルの初期化関数を呼ばないとダメ
関数の呼び出し順序が暗黙に決まってる
入力範囲が決まっててそれに従わないと未定義処理
決まりごとがドキュメントコメントになってなくて分厚いマニュアルから必死になって探さないといけない
このように間違えようとしたら間違えられるのにわかりやすい説明がコードエディタから見れないという悪い構造はむしろ非オブジェクト指向の方が多い > init呼ぶ前に呼んでおかないと駄目
> init呼んでから出ないと駄目
ファイルをオープンする前にリードしたらだめ
だから手続き型は大変なんだ >>40
>どこでどんなふうに関数が使われているか
>わからなくても、大丈夫って話をしているようだ
こんな話は一切してない。
オブジェクト指向的な言語でクラスメソッドにガツガツ詰め込むようなことすると
関数的なものよりも思った以上の暗黙の仮定を置いてるコンテキストでしか動作しないものが
出来上がりやすいと言ってる。 >>41
コードのみで必要情報を示せないからドキュメントに逃げてるだけ。
「ドキュメントも完備しててすばらしい」←あるべき姿
「ドキュメントがないと使い物にならない」←オブジェクト指向の現実
オブジェクト指向によって、ドキュメントがないと使い物にならない状況を生み出す(マッチ)
ドキュメントを必須不可欠のものとする(ポンプ)
無理にオブジェクト指向に拘らなければ存在しなかった問題なのだ。
まーたマッチポンプw 手続き型の反対は宣言型だが、オブジェクト指向は宣言型ではない。 228 名無しさん@ゴーゴーゴーゴー! (ワッチョイ e3bd-rVsz [60.146.119.215]) sage 2018/11/24(土) 08:38:58.23 ID:radxgJ6W0
蠍スレから来た
ラグあるのは事実だから、支える技術本まで買ったが、内容薄すぎていまいちだった
早い話、負荷テストをやっとらんだけやろ
開発用サーバでテストプレイヤー分だけの負荷かけるだけなら、そらヌルヌル動くわな
ping値数msec差の問題よりも、任天堂ハードの処理速度のが問題
せめて提案者は自身の環境くらい書けよ
高スペックPC+有線IPoEとかならあきらかに鯖のメモリ解放失敗とかやろ
実際の環境でって、仮に一部のバトル用サーバ切り離して(できるかしらんが)テストしたところで小負荷なら同じことやろ >>44
逆なんだよね
分厚いドキュメントが必要なのは非オブジェクト指向の方だよ
守らなきゃならないルールを表現するためにいろいろな言語機能が発達したんだよ
例えばカプセル化やインターフェースね
だからオブジェクト指向はドキュメントにそれほど頼らなくても開発できるんだ >>42
でも引数にオープンしないと手に入らないものが必要だろう?
でもオブジェクト指向言語は違うよね? オブジェクト指向オンリーは害悪だが用法容量を守れば便利 オブジェクト指向はクラスの中にコードを書く、というのが神髄である。 クラスはオブジェクト指向の必須要素ではない。
神髄とやらはオブジェクト指向と関係なかったwwwww >>43
> オブジェクト指向的な言語でクラスメソッドにガツガツ詰め込むようなことすると
> 関数的なものよりも思った以上の暗黙の仮定を置いてるコンテキストでしか動作しないものが
> 出来上がりやすいと言ってる。
お前が言った所でなんの信頼性もないよw
まず、そんなことにならない。
お前が下手なだけ オブジェクト指向への批判は、
「それと同じことを非オブジェクト指向でやっても
同じことが起きるよね」で全て反論できる そりゃそうだ
それを言語仕様レベルで規定しているから楽なんだろうが 611 名無し三等兵 (ワッチョイ 7fe7-t9Bb) sage 2018/11/22(木) 12:46:59.97 ID:vFEoyYoC0
>>587
「ちんちん」の語源の1つの説に、
支那の娼婦が幼児語で「入れて入れて」と言った言葉を
当時の出羽守が有難がって日本に広めたという
かなり眉唾物な故事がある。
その説に依るなら「チンポかシコシコする。」は
当然のように入れた側の所感とその転用じゃな。
591 名無し三等兵 (スッップ Sd1f-hEn1) sage 2018/11/22(木) 12:26:55.61 ID:9IvK1JXqd
>>587
シコシコするは他動詞なので、所有者の意思とは無関係にチンポが自立行動するのであれば「イライラする」「ムラムラする」という自動詞を用いるのが正しい
644 名無し三等兵 (アウアウカー Sa87-dVyK) sage 2018/11/22(木) 13:18:34.11 ID:UNLN7beIa
>>587
「胸がドキドキする」
胸は心臓の意味で、行為者として心臓が使われているので「心臓が拍動する」は日本語としておかしくない。
「チンポがシコシコする」
チンポはそのままの意味で、受け手側としてチンポが使われているので「チンポはシコシコされる」又は「チンポをシコシコする」が正しい。(50字) 正方形クラスは長方形クラスを継承するべきだろうか? オブジェクト指向=人工知能、という新定義はどうだろうか?
オブジェクト指向と称するものの多くは、人工知能と称するものの多くは、中身が空っぽだったりする。
この現実世界にあるあらゆる概念(名詞・動詞・形容詞)をプログラミングで表現する、
それが人工知能でありかつオブジェクト指向である。
異論があるなら何なりと! Javaなどのガベージコレクション(メモリ管理自動化機能)も、簡易な人工知能ではないのか? ユークリッド幾何学(真か偽か不明か)の殆どはMathematicaで処理できてしまう。
しかしながらこの現実世界はそのようには出来ておらず、人工知能に出来ることはせいぜい近似値計算。
213 デフォルトの名無しさん 2018/09/24(月) 08:23:13.39 ID:Kxio7RVg
物理は大半が近似でなく、すべて近似
すべて仮説だからな、当然そうなる
近似でなければ物理学は完成してることになる
人間の認識が限界がある以上、現在の科学的方法論では、科学が完成することはない
科学はひたすらその近似の精度をあげていってるだけだからな
で、こっからが重要になるが、観測値に解釈は入らない
定量的な観測値そのまんま
物理にwhyはない、コレ常識だからな
光の速度がなんで光速度なの? とか頭悪いコトいってるのと同じなワケ
観測値が光速度、それ以上の意味はないし解釈もへったくれもない
沸点はただの観測できる定量的な値の一つだからな
物理の場合、仮説をたててその他の条件となる観測値を組み合わせて関係式を作ろうとする
見方をかえれば、沸点を条件とみることもできる
頭悪い日本の文系は、自然言語処理とコレが全く異なるコトが分からない
自然言語処理は、自然科学とまったく異なるただの 形 而 上 学 だからな
はっきりいってな、日本の文系がやってる自然言語処理はオカルトに近い
その認識がないかぎり、これからも進展はない
だから今までずーっとほとんどなんの進展もなかったワケだからな
日本の文系は世界的にみても哲学的な側面でもものすごい頭悪い部類といっていい
AIでムダに騒いでるアホとある意味そっくりだからな >>41
>決まりごとがドキュメントコメントになってなくて分厚いマニュアルから必死になって探さないといけない
英単語を辞書式に沢山覚えていても、コトバの意味を理解していないとどうにもならんよな。
0. 外国語、特に英語、の教え方
「読み書きは出来るが会話ができない」というのは間違い。「読み書き」も出来ない
Decorative artとは、絵画、彫刻、建築を除いた家具、食器、絨毯、藍掛け、花瓶、タイル、
ドアのノッカーなど美術品と見做せるものの総称
表裏は日本語だと「おもて」と「うら」だが、漢文では「外側」の「内側」であり、「裏」は「なか」である。
コインの場合、英語ではhead & tailで、誰かの頭部の像がある方が日本語の「おもて」だが、tailが「うら」とは奇妙
http://hiroomikes20120501.blogspot.com/2014/12/20141212.html 俺はオブジェクト指向の神だ。
おまえらにはオブジェクト指向はまだ早い。
ビジュアルベーシックでもやっておれ。 >>53
下手なだけで済ませるだけいいなら別にオブジェクト指向いらんけどね。 >>65
意味不明。
下手だから、オブジェクト指向を使っても使わなくても
同じ規模のものを作ればひどいことになるって話をしてるんだが 使っても使わなくても酷いならなぜ使うのか。やはりマッチポンプでは…
>>58
平行四辺形…ひし形…
バカみたいだな。
単なるコーディングがつまらんから、って哲学的探求で遊べるように細工しただけ。
実質的な価値はない。 「下手なら」使っても使わなくても酷いって言ったんだけど?
下手じゃないならオブジェクト指向のほうが良いってことだよ 上手ならオブジェクト指向なんか使わなくてもうまくやるよ センス無い人でもOOPなら努力次第でそこそこ良いコードが書ける
でも手続き型は脳のスペックが高くないと理解不能
あれは高学歴理系がパフォーマンス追求するときに使うものであって下々の凡人が使うようなものじゃない
非OOPは難しすぎる > 非OOPは難しすぎる
難しいと言うより大変なんだよな。
非オブジェクト指向で、オブジェクト指向的なことをするための
暗黙的なルールができるから、ドキュメント化されてないルールを守る必要がある 言語の進化っていうのはアセンブラの時代から
一連のコードのパターンに対して、それを明確に示す概念
名前や文法を作ることでもあった
例えば、比較命令 + 条件分岐 に対してループという名前をつけたように
そうやって名前をつけることで、一言で他の人と理解の共有が
できるようになった。
オブジェクト指向でも、一連のコードのパターンに対して
継承や多態性などという言葉ができたわけだが、
これらを使わないと、一言で説明できず
一連のコードを全て説明しなければいけなくなる OOP
思考停止すればかなーり楽なんだよな
グチャグチャのソースになって
手が付けられなくなるけど >>74
そういう人が書いた非OOPは
もっとぐちゃぐちゃ 非OOPでグチャグチャのコード書くのは
意図的にやるなど、逆に大変 手続き型だと複雑すぎて脳の容量をすぐにオーバーして思考停止しちゃう
オブジェクト指向だと簡単に理解できるから、ここがああなって、そうすればどうなるのね、なるほどなるほど、てな具合で思考がスムーズになる >>76
手続き型は全然難しくない
C++,Javaを初め流行のOOP言語は手続き型の上に成り立っている
それから、手続き型はOOPの対義語ではない >>79
継承など使う必要は全然ない
どうしてもpropertyに共通関数を使いたいならmixinでも使っときな >>80
いやめちゃくちゃ難しいよ
OOPと手続き型で同じ要件のコード書いて比較したけどOOPのが圧倒的に早く書けて高品質だった
実験が示す事実なんだから受け入れよう >>82
C++やJavaについて言えば
OOP言語のクラスscopeや継承などのOOP言語固有の書き方以外は
すべて手続き型記述になるはずだが >>83
でも事実としてOOPのほうがずっと書きやすいんだ
実際に比べたのだから疑いようがない
不思議だね C言語でもこれとか使えば
オブジェクト指向は簡単なんだろう
C 言語によるオブジェクト記述法 COOL ver.2
http://www.sage-p.com/process/cool.htm >>83
ということはクラスなどOOP固有の機能がOOP言語の書きやすさに大きく影響しているのだろうね さてどれどれ
http://www.sage-p.com/process/cool.htm#6
6. 集約の記述、継承の記述
集約の記述
継承の記述
多重継承の記述
重複継承の記述
動的継承の記述
絶句(大爆笑) >>85
それは、言っては悪いけど、
あなたがまだ初心者で
ソフトウエアの基礎分かってなくて
手続き型だろうが関数型だろうがOOPだろうが
まだまとまった規模のソフトウエアを開発したことがなくて
とんど初心者の感触的な意見で物事を決め付けて
語っているから oopのが圧倒的に簡単というのはなんか危険な匂いがするな。。
確かにちょっとしてGUIを用意するっていうのならoop系統のフレームワーク使って
てきとうに組むってのが一番楽なのかも知れんが。 >>67
いや、継承するべきではないという明らからしい結論が出ているのだが、これに即答できないなら、設計に関する書籍の一つも読んだことが無いのだから、議論の前にサーベイが必要かも。 >>90
それは、言っては悪いけど、
あなたがまだ初心者で
OOPの基礎分かってなくて
動的型だろうがライブプログラミングだろうがイメージベースだろうが
まだまとまった規模のソフトウエアを開発したことがなくて
とんど初心者の感触的な意見で物事を決め付けて
語っているから つまり
雑魚でも業務システムを安全に組めるのがOOP
玄人にしか使えないのが手続き型
ということですね >>94
人の問題と、技術の問題を別々に考えると、
人は玄人の方が凄い(当たり前)
技術はOOPの方が凄い
ってことにならないか? >>95
雑魚にも使えるからと言って、玄人にも使いやすいかというと、そうとも限らないと思う 玄人もみんなOOP使ってる
アンチOOPは一部の変な人しか居ない
組み込みなど仕方なく手続き型を使うことはあるけど
好んで使う人は滅多にない
統計が示す事実なので受け入れよう >>96
そうとは限らないけど、オブジェクト指向に限っては
玄人にとっても使いやすいね メソッドの呼び出し順番がわからないのは玄人仕様なのか?
単に欠陥品にしか見えんが >>102
だからメソッドの呼び出し順番ってなんですか?って
聞いてるんだが?OpenCLを例に教えてください オブジェクト指向以外でプログラム書けと言われてもどう書けばいいかわからない >>105
Linqやstream api、その他類似のライブラリを使うからループってあまり必要ない
ループ内で条件分岐してコンティニューだとか前N回のループで使ったデータにアクセス(例えば移動平均のような)的な複雑な処理だとループしたくなるけど
オブジェクト指向を正しく使うとそういった複雑なフローですら自然と綺麗に消えるから、結論としてループは不要になるんだね >>108
いやそうでもないよ
Linqは遅いなんて10年前の化石みたいな考え方をしてる人よりはよっぽどパフォーマンスについて理解してっからね
君の書くコードのほうが心配
ぐちゃぐちゃの手続き型じゃキャッシュ処理1つ書くのも大変でしょう? >>109
いや、重いよ
必要のないループ何重にもかけてるでしょ? 普通はワンループで終わるもの
何周もさせてるのに重くないわけないじゃん
脳みそイかれてるの? >>110
必要性は状況次第だっての常識な
なので、なんの前提もなしにそれ必要?などと問う人はアマチュアだってバレバレなんだよね
それと何重にも無駄にループとかさ、お前の脳内で繰り広げられてる妄想を急に押し付けられても困るよ >>112
は?おっせぇのが言い訳こいてんじゃねーよwww >>113
遅いの定義は?
俺の書いたコードを測定したか?
測定結果と遅いの定義を比較して確かに遅いと言えるのか?
この辺りが当たり前にできないようじゃねぇ
パフォーマンスを語るには10年はやい
5chだから俺が相手してやってっけどさ
お前がここと同じノリで業務中に遅い遅いって喚いても誰にも相手にされんぞ?
遅いと主張したいなら遅い速いの定義、測定法の妥当性の理論的証明、測定結果、分析、改善案をレポートにまとめて提出して
それがプロフェッショナルとして最低限の仕事でしょうよ はいはいコーダーさんたち少し落ち着きましょおねぇ〜w こいつ現実でもクソコード直さない言い訳めちゃくちゃしてそうだな。 俺はいつもOOPでエレガントかつハイパフォーマンスのコードを書くからクソコードを書きなおせなんて言われたことはないなぁ
強いて言うなら開発初期のプロトタイプをリファクタリングする時ぐらいか?
でもそれって人に言われることじゃなく自発的にやることだから言われたっていうのは違うか 自分が書いたコード張ればよいんじゃないの。
見てて痛々しすぎる。 言い返せなくなると悪口
君たちほんとワンパターンだね >>114
長文乙
お前のプログラムもそんなんwwww 昔、「プログラミング言語C++」
を読んでオブジェクト指向をマスター
しようとしたが挫折した
笑ってやってくださいw もうマスターとかいう次元じゃないんだよ
オフショアに発注するのにUMLでも何でもいいけど書いて設計わたさなきゃいけないんだから
自称玄人の単価高いだけのオッサンは要らないぞ? 「誰も文句を言わない」って状況に少しは疑問を覚えたほうがいい。
その状況は相当ヤバイ。 高スキル人材でも同じ単価だから
逆にレベル下げれば差額で利ざや稼げる コ ー ド 書 く の は 簡 単 だ け ど 、 コ ー ド 直 す の は 難 し い ん だ よ ! 僕たち地球人〜今日も明日もあさっても〜チンポがシコシコ〜するんだよー!
バ バ ア が 潮 吹 い た ぁ !
http://egg.5ch.net/test/read.cgi/welfare/1539337979/ >>127
さっさとExcel方眼紙の仕様書通りにコードを書くんだ 876 その名前は774人います (JPWW 0Hc7-PNEt) 2018/11/27(火) 01:56:44.19 ID:DNZYahFJH
『スループット』を測定して、ラグ率を公開しろ!
プログラミング言語の性能差
主な言語とスループット
言語 スループット 特性
C/C++ 100 静的言語ネイティブコード
Java 1〜10 静的言語VMバイトコード
Ruby/Python 0.1〜1 動的言語
オンラインゲームのサーバではC/C++が最も使われ
る
http://www.wata-lab.meijo-u.ac.jp/file/seminar/2013/2013-Semi1-Atsushi_Somekawa.pdf
そう思う 0
そう思わない 200 オブジェクト指向は、Ruby で学ぶのがベスト
Duck Typing・動的クラス定義、
メタプログラミングで、DSL も作れる >>9
間違えたにしちゃなかなかいいな
全ての誤りの原動機、か。 ■ このスレッドは過去ログ倉庫に格納されています