オブジェクト指向ってクソじゃねぇかよPart4
レス数が950を超えています。1000を超えると書き込みができなくなります。
無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。
カプセル化(英語: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/ オブジェクト指向がクソに見えるのは、ただ単にサンプルにするコードや書き方の問題だと思う。
Githubにアップロードされているコードや、GoogleやMicrosoftの社員が書いたコードとか見てみた方がいいと思う。
日本だと、SONYやSEGAの社員が書いたコードも見たことがあるが、流石プロって思える実装の仕方がされている。
まぁ、実際に様々な企業と仕事していると信じられないくらいクソ設計がされているプログラムを目にすることはあるんだけどね。
グローバルデータクラスとか言う有象無象のグローバル変数をオブジェクト化した謎設計を見たときは「あっ、こいつオブジェクト指向を誤解してる」って思ったよ。
まぁ、それでもオブジェクトと言い張ればオブジェクトなんだけどさ。 ・・・というわけで、
>>851
>「あっ、こいつオブジェクト指向を誤解してる」
オブジェクト指向は俺の股間に付いているのだ! 時代のトレンドがオブジェクトからモジュールになりつつある >>851
難しいところをただ単にと言い捨てて簡単なことように摩り替えるのはごまかしの詭弁だよ。
企業の業績だってただ単に収益を上げさえすればいいわけだし >>848
工学的なというのはデバイスとかハードアウェアの「物」ではなく
ソフトウエア工学の扱う「事柄」の管理工学だろ誤解を抜きにしても
書いていることが机上の空論にみえてしまう ID:tIcrQX1Y は会社でも「ただ単に」が口癖で
日ごろから詭弁こいて紛糾を招き、
無駄に会議長引かせたり、まわににめいわくかけてそう
ディベートごっこなら別の板でやれば? >>851
SONYやSEGAとかの公開用に練り上げられたサンプルは
担任のふんどし、一般性はない。
ましてや、あんた自身がオブジェクト指向によって
大規模複雑なシステムを
常に速やかに設計、開発 出来ていますよと、
そして>>835のような苦しみはオブジェクト指向によって解消されますよと
責任を持って言わないと説得力0
責任を持って。
そうじゃないなら、茶多入れ不要なので半永久的にROM化どうぞ いやだからそこは単にオブジェクト指向をやればわけだし。
士ねって感じ >>858
え?そんなことないでしょ。
SEGAやSONYは知らんけど、MicrosoftやGoogleは普通にオープンソース公開しているよ?
お前こそ恥ずかしいから一生ROMれば? そして>>835の苦しみって何?
ソフト屋なら、もう少し具体的な質問をしたら?
それ以前に、>>835は質問するつもりで書いたのか疑問だが。 オブジェクト指向プログラムを読み解こうなんて無茶だよ
何のためにUMLがあると思ってるの >>867
何のためにUMLがあるのか、と聞いているのですが あ?
読み解け無い様な複雑なコードとか、逆にオブジェクト指向になってるか疑うわ。
単一部位の独立機能をひとつのオブジェクトにするんだから、たいていのオブジェクト指向のソースコードは読み解くのは容易なはずなんだけどな。
他のオブジェクトとの絡みとか協調動作し出すと途端に理解不能になるのは人間関係と同じで沢山のオブジェクトが色々絡み出すと読み解け無くなるのは、読み方を間違えてるからさ。 >>867
少なくとも、staticマンの書いたプログラムよりは読める。 せっかくオブジェクト指向使ってんのに静的クラスやメソッドのオンパレードな作りにする奴ってなんなんだろうな クラスは常に静的だろ。まさかクラス定義そのものが動的に変わる様なシステムなんか人工知能でもないと扱えないわ。
多分動的オブジェクトの話だと思うが… >>868
静的構造と動作を記述するため
>>869
クラス単位なら単一責務なんだから読みやすいよ
ただクラス間は抽象化で依存が断ち切られるから追えなくなるから、その為にクラス図を描く
逆にサクサク読めるコードの方が抽象化甘くて怖いわ >>869
>単一部位の独立機能をひとつのオブジェクトにするんだから、
俺の股間に付いているな! >>871
職場にシングルトンパターンを乱用する人とかがいて困った事がある。
オブジェクト指向がクソというより、経験の浅いプログラマーがプログラムを書くからそうなるんだろうけどな。
自分も昔、似たようなコードを書いたことがあるし。
まぁ、誰もが最初は初心者だし、仕方がないとは思うけどね。
静的クラスマン、シングルトンマン、どっちも学生の頃に経験済みさ。 治りかけたリファクタ病の古傷を無理やり引っ張ってこじ開けるようなコード見てしまった
いままでも見てたけど意味考えてなかった
わかったらひどい
オブジェクトのメンバをグローバル変数代わりに使ってるすごくよくある勘違い志向のアレ 一箇所で管理してる分には些細な使い方の間違いは気にしないでいいよ。 >>875
やっぱり只の静的オブジェクトの話じゃん。
反対語を当てはめたら全く意味が分からない様な造語はやめて欲しいよな。マイクロソフトさんよ。 ふざけんな
おまえ自身は自分のオブジェクト指向もどきが読めないの
人のせいにしてるじゃねーか
現実逃避するな
おまえのコードは読みづらいんだ >>876
>オブジェクト指向がクソというより、
オブジェクト指向は俺の股間に付いているということだなw >>865
いちいちつられて朝から顔真っ赤
ご苦労さん >>883
privateちんこは誰にもアクセスされずに腐る運命 オブジェクト指向の間違いを学んだだけで正しいオブジェクト指向を理解した気になってる人多いよな
シングルトンクラスの多用は良くない
↓
シングルトンクラスはプロジェクトで1つだけにしよう
↓
神クラス誕生
こういうこと平気でする それはフン
よってもって
オブジェクト指向は
フン
クソ以下フンのパラダイムでソフトウエアの開発に
だまされて
日々不毛ななデバッグという名の限りないExcel梅梅作業に取り組む
非正規市民乙
詰んどるな日本のIT企業
おまえら、だまされるなよ、そいつらの吹聴するオブジェクト指向とやらに
そうじゃないと人生棒に振るぞ じゃスレタイ変えないとな
「オブジェクト指向って糞(フン)じゃねえかよPart4」 >>879
>>870や>>871に対してクラスは常に静的とか言い出しませんでしたか?
あとMicrosoft関係ないから。グローバル変数ってMicrosoftが考えた仕組みだよね並みに間違ってるから。 >>889
お前が使ったことある言語と開発内容を晒してみ?
開発内容は、PCソフト開発なのか、スマホ開発なのか、WEB開発なのかレベルでいいよ。 >>886
実質グローバル変数のstatic邪神クラスですねわかります。
こういう勘違いオブジェクト指向コードを渡されて開発させられる人達って可哀想。人権無さすぎ。
>>835の長文もよく見ると、似たようなことを言ってるし、>>851も同じこといってる。
static邪神による被害者とstatic邪神を生み出すstatic教団のstatic教祖様に苦しめられている人は少なくないのかもね。
あと、関係ないけど...>>891はスルーして頂戴。揚げ足とってるだけな気がしてきた。 フン族のアッティラは最強
あまりにも強すぎて「堕落した人に神が下した罰」と言われていた
つまり、オブジェクト指向は堕落したプログラマに神が下した罰なんだよ >>891
静的なオブジェクトしか生成出来ないクラスであってクラスそのものは常に静的な存在なんだよ?
つうか、クラス≡コードで実行時のワーク≡オブジェクトだから、クラスは常に単一な存在。
わかった? >>885
チンポは自分の意思で勃起する、チンポは誰の指図も受けない。 >>896
うそだ!
Javaでよくstatic classって書いてるから
staticじゃないクラスもあるはずだ! ぼくも性的なクラスに入って性的なメソッドを勉強したいです 再利用できるようにと、何もかもグローバル変数に詰め込んだり。
複数人が同じファイルにコードを追加する形になる共通化?とかもうウンザリ。 昔staticメソッド禁止の開発やったことあるけど
そのうちコンストラクタに処理を書くやつが現れて
int hoge = new Hoge(1, 2, 3).getResult();
こんなコードまみれになってしまった オブジェクト指向で重要なのは、『独立した知能回路』であり、俺の股間に付いているのだ! 処理に関係するパラメータが一か所にまとまっててすごく見やすい
入力に対して出力がいつも一定
基本状態がないからデバッグがすごく簡単
呼ばれる処理が1種類なのが確実
変な依存関係ができないように別クラスとかに定義できる
メリットしかない
むしろクラスメソッドの利点がわからんわ >>901
うわぁ...御愁傷様。
間違ったオブジェクト指向事例集とか言う記事があったら是非、紹介したくなる内容ですね。
>>905
スレタイがスレタイなので、ごめんなさい、失礼承知で質問させてください...。
それ、本気ですか?それとも、staticおじさんみたいなネタですか? >>905
ごめん、やっぱりストップ!
全てstaticクラスにすればいいじゃないと主張しているように勝手に思い込んでしまったのだが...もう少し詳しく!
こっちが早とちりしただけかも >>907
煽るって、どこの部分のこと?
突っ込みとは、誰のどれに対して?対象が色々あってわからん。 つか、体も子供のまま
老いて何も残すこともなく
土に返っていくんだろうな…
ナムアミダブツ(-人-) 嗚呼、
あはれ、秋風よ
こころあらば 伝へてよ
あるところに、男ありて… 質問に答えられないって、反論できない証拠。
論破された人は「池沼」「発達障害」という言葉を使って威嚇することしかできなくなる。
まさに、論破された人の良い例だな。 池沼は自分の考えを持たず他人の考えを受け入れないことによって最強となるが後に残るのは不毛の地である。あたり一帯を焼け野原にして文明を破壊する。 なんかスルーされてるけど、>>905の主張の方が気になる件について。
staticおじさんの主張、ほぼそのまんまじゃん。
お前はstaticおじさんのコメント欄見てこい。 口八丁、手八丁
口ではなんとでも言える
ってやつだろJK オブジェクト指向を正しく使えてる人ってどれくらいいるのだろうか >>923
オブジェクト指向は俺の股間で生きているぞ? >>925
>>905
> 処理に関係するパラメータが一か所にまとまっててすごく見やすい
> 入力に対して出力がいつも一定
> 基本状態がないからデバッグがすごく簡単
> 呼ばれる処理が1種類なのが確実
> 変な依存関係ができないように別クラスとかに定義できる
スタメソのメリットの説明は、まぁ、いい。
インスタンスを生成しなくても使用できるがメリットという大きな理由に触れていないのは気になるが、そこはスルーしてやる。
> メリットしかない
ここが致命的に間違ってるわ。
インスタンスが持つ変数に直接アクセスできないのはオブジェクト指向を台無しにしかねないレベルの最大のデメリットだろ。
わからないことがあれば、質問、どうぞ。 870あたりからの会話の流れを読んでれば、905の解説をする必要性なんてないと思うのだが。 >>926
インスタンス変数にアクセスできないことによってスレッドセーフであることを保証できるわけだからロジックを共通化する手段としてインスタンス変数を持たないクラスには存在価値があるわけですよお!? 入力に対して出力が一定って本当?
基本状態って何? 可変な状態を持つオブジェクトはドメインには必要ない
可変な状態が必要なのはデータ構造
データ構造は標準ライブラリやフレームワーク由来のものを使用するのが基本
オブジェクトにインスタンス変数が必要になったときは設計を見直すしかない
ドメインとデータ構造をごっちゃにするから暗黙の依存関係でぐちゃぐちゃになってオブジェクト指向使わない方がマシという事態を招く スタティックおじさんの感覚は概ね正しい
業務システムのコンサルタントやってる立場から言わせてもらった オブジェクト指向とは俺の股間で生きているそれだけで十分だ! >>929
staticメソッドの使用はオブジェクト指向の基本中の基本、オブジェクトの生成と消滅の概念を壊してしまいます。
オブジェクト指向の基本的な考え方を破壊してまで、スレッドセーフの実現手法にstatic化が適切なのかはと言われると、そうは思いません。
第一、そのような方法によるスレッドセーフ実現がありなら、「インスタンスの生成は1つまで」というルールをつくるのもありだと思います。
まぁ、私はそんな方法でスレッドセーフは実現しませんが。
スレッド間を跨ぐオブジェクトはスレッドセーフ対応コレクションやmutexオブジェクトを使って実現しますけどね。 >>932
931はちょっとスルーして、先に932について尋ねますが、あなたはオブジェクト指向を否定する立場なのですか?肯定する立場なのですか?
それによって私の言うことが少し変わります。
まぁ、「実はオブジェクト指向って、しっくりこないんです」のstaticおじさん側ということは、否定だと思いますが。
それだったら、先程、オブジェクト指向の考えを破壊しかねないstaticメソッド使用は危険が伴うという指摘は、あなたにとってどうでもよかったということになりますね。
どうなのでしょう?
ちなみに、私は肯定している側です。 >>934
> >>929
> オブジェクト指向の基本的な考え
オブジェクト指向は俺の股間に付いている! オブジェクト指向肯定の理由。
>>935
>あなたはオブジェクト指向を否定する立場なのですか?肯定する立場なのですか?
俺の股間に付いているのが、オブジェクト指向で無ければ何だというのか?
オブジェクト同士は常に二人称であり、オブジェクト指向では独立した知能回路が実装される。 時間が時間なので、最後に...
別に、非オブジェクト指向のプログラムでstaticメソッドを使いまくるのは結構です。
ただ、そのプログラムを指差して「オブジェクト指向はクソ」と言われないようにだけしてください。
オブジェクト指向として解釈すると駄目だけど、別のプログラミング手法として解釈すると問題ないというのなら、それはそれでいいです。
>>937
あと、ちんこ哲学者さん、理由はどうであれ肯定ありがとうございます。
このスレで肯定一人は心細かったです。
ちんこ哲学については深すぎて理解が追いつきませんが。 うるせえ大人が現実のプログラムの話してんだお前は学級委員でもやってろ >インスタンスが持つ変数に直接アクセスできないのはオブジェクト指向を台無しにしかねないレベルの最大のデメリットだろ。
>staticメソッドの使用はオブジェクト指向の基本中の基本、オブジェクトの生成と消滅の概念を壊してしまいます。
>オブジェクト指向の基本的な考え方を破壊してまで、スレッドセーフの実現手法にstatic化が適切なのかはと言われると、そうは思いません。
オブジェクト指向押してる連中のこのあたりの
教科書丸写ししただけみたいな感想に寒気をおぼえた
お前は何を言ってるんだ感がすごい >>934
オブジェクトは動的に生成され、そして動的に消滅するのが
ブジェクト指向の基本中の基本だというのは勘違いだぞ。 オブジェクト指向がどうという次元の問題ではない
実際にどんな局面でそれがどう問題になったのか全く想像がつかないんだ
根本的にあたまおかしい
好意的に考えてもふだんからよっぽど酷いオブジェクトの使い方してたとしかおもえん
メンバをグローバル変数代わりにしてるとか
1年生がよくやる オブジェクト指向厨に基本が出来ていない奴が多いのは
確かだな これヤバイなw
こんなめちゃくちゃなモデリングを1000人以上がいいね!しちゃうんだね
役割駆動設計で巨大クラスを爆殺する
https://qiita.com/MinoDriven/items/2a378a09638e234d8614 多分悪い奴ではないんだよ、
でも自分で考え物事を見極める力が足りなかったんじゃないかな
よくいる。
それがオブジェクト指向宣教師にだまされ、迷信にどっぷりつかってしまったんだろ
アーメン >>946
一番ヤバイのは何のためにモデリングをするのか全く理解してないところ
次にヤバイのはユーザーロールとクラスの責務を区別できてないところ >>947
レスが下手だなw 否定するだけで案を書いてない。
俺がテンプレ書いてやるから○○に当てはめてみな
× 一番ヤバイのは何のためにモデリングをするのか全く理解してないところ
○ ○○のためにモデリングということを理解しなければいけない
× 次にヤバイのはユーザーロールとクラスの責務を区別できてないところ
○ ユーザーロールとクラスの責務を区別するために○○をしなければいけない ふつうは番号で管理してる紐づきを直接クラスにぶち込んだらこうなる
EntityFrameworkとか使ってたらありそう
各機能の出力画面に1対1に対応してそうだし
DB設計じゃないからいいのかもしれない >>934
インスタンスが一つでもスレッドセーフにはならんでしょ 938の書き込みを見たとき、絶対、火病起こす人が現れると思いきや案の定だった。 レス数が950を超えています。1000を超えると書き込みができなくなります。