オブジェクト指向ってクソじゃね?

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん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

952デフォルトの名無しさん2018/10/18(木) 18:20:48.86ID:vIc/Em84
>>951
重複コードがほぼ一掃されるので全体のコード量は減る
利用者側は年齢にまつわる詳細なルールを知らなくても使えるようになるから複雑性も解消される

953デフォルトの名無しさん2018/10/18(木) 18:29:38.57ID:3douRw4T
棒グラフにするの大変やな

954デフォルトの名無しさん2018/10/18(木) 18:32:26.45ID:3douRw4T
平均年齢もきつい

955デフォルトの名無しさん2018/10/18(木) 18:34:20.75ID:7CPcoAfm
設計がおかしいとおかしなクラスが乱造される

一クラス一機能をつら抜いてFileRemoverとかFileRenamerクラス作ってる人は死んだほうがいい
MultiFileRemoverとか本当に必要なら作れよと思う

956デフォルトの名無しさん2018/10/18(木) 18:37:53.29ID:b1Fs59oz
>>952
だから呪い。実際、出来上がってるものの大半は真逆の事になってるんじゃないかね。

957デフォルトの名無しさん2018/10/18(木) 18:42:34.52ID:80M+etW5
オブジェクト指向は書く量と段取りを増やすデメリットをもって
パーツや責任関係の切り分けを行う作業と理解しております

958デフォルトの名無しさん2018/10/18(木) 18:45:45.21ID:b1Fs59oz
それならわかる。

959デフォルトの名無しさん2018/10/18(木) 19:06:46.96ID:vIc/Em84
日付型とかあるじゃん
あれ中身はただの整数値だけどだからってじゃあ整数値のままでいいじゃんとはならない
なぜなら整数値を日付とみなして注意深く扱うよりも
さっさと日付型を作ってしまったほうが間違いが減って問い合わせや演算が楽になり理解しやすくなるから
同じことをドメインでもやりましょうというだけの話なんだけど何をそんなに恐れてるのだろう

960デフォルトの名無しさん2018/10/18(木) 19:25:21.20ID:7CPcoAfm
架空言語にて

private Name name=new Name()

public Person(string name){
Name tmpName=new Name(name);
if(tmpName != null){
this.name=tmpName;
}
}

961デフォルトの名無しさん2018/10/18(木) 19:26:39.70ID:qf9NxgCD
>>947
そう言うのがいるからうちの会社は社用スマホが古いんだから、もっとアプリ軽くしろとか注文入って鯖に処理を移す事になるんだよ。。。
ある程度はどっちに比重置くか考えて作った方がいい。
そういう所こそ設計の腕の見せ所。

962デフォルトの名無しさん2018/10/18(木) 19:30:01.60ID:/ofNkRJS
> そう言うのがいるからうちの会社は社用スマホが古いんだから、もっとアプリ軽くしろとか注文入って鯖に処理を移す事になるんだよ。。。

全く無関係の話をされても困るんだが?

963デフォルトの名無しさん2018/10/18(木) 19:39:03.88ID:qf9NxgCD
理想と現実は違うって事。
人間のこと考えたいけど、仕様変更繰り返すうちにグダグダになる。
出来る事は破綻しない様に事前に想定される事に対処して、その後も破綻しない様に管理することだけ。

964デフォルトの名無しさん2018/10/18(木) 19:50:43.92ID:KBtBXMK/
>>963
だからオブジェクト指向が必要なんだよね

965デフォルトの名無しさん2018/10/18(木) 19:54:07.63ID:qf9NxgCD
>>964
そう。
そのはずだ。
入門書でAnimalクラスを継承してDogクラスとCatクラスが〜とか例えた弊害か、人間の事をとかなる。
人間の事を考えるなら顧客の事だ。

966デフォルトの名無しさん2018/10/18(木) 19:54:59.16ID:/ofNkRJS
従業員かもしれんし、何を言ってんだお前は?

967デフォルトの名無しさん2018/10/18(木) 20:37:26.00ID:4AdjqlvR
>>938
エキスパートと思われる人にヒアリングしたら
そいつが「年齢にまつわる宇宙の真理」とか求め出すというクソ案件はたくさんある。

968デフォルトの名無しさん2018/10/18(木) 21:17:00.48ID:A+ZA0oir
>>947
だからさ、業務によって年齢の扱いが違うんだから、固有の業務に特化した属性なんて実装は避けるべきなんだよ。
やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。
それじゃ無いと、様々な業務に適用させる度に微妙に違う属性を返さなきゃならんくなるだろ?

969デフォルトの名無しさん2018/10/18(木) 21:24:05.33ID:/ofNkRJS
> だからさ、業務によって年齢の扱いが違うんだから、固有の業務に特化した属性なんて実装は避けるべきなんだよ。

Personクラスはそもそも業務に特化したクラスだろう?

現実世界の人間を完全シミュレートする。それがオブジェクト指向だって
考えてるのはお前だけやで

970デフォルトの名無しさん2018/10/18(木) 21:25:37.05ID:A+ZA0oir
>>969
いや、そもそもオブジェクト指向はパーツの使い回しがテーマだからな。

971デフォルトの名無しさん2018/10/18(木) 21:26:42.98ID:/ofNkRJS
パーツの使い回しはオブジェクト指向じゃなくてもできるんで
それは全然違いますー

972デフォルトの名無しさん2018/10/18(木) 21:28:20.39ID:/ofNkRJS
いやはや驚きだ。これが馬鹿というものか

まさか、どんな業務にでも通用する
Personクラスを想定していたとは

世界にたった一つPersonクラスがあれば
ゲームから業務まで何でも使えるものを想定していたとはな

愚かとしか言いようがない

973デフォルトの名無しさん2018/10/18(木) 21:32:01.02ID:A+ZA0oir
少なくとも会社や自分の作るアプリで使い回す為にオブジェクト指向で作るんだからな。
おまえみたいに毎回特定業務に特化してフルスクラッチから作るとかバカしかやらんぞ。

974デフォルトの名無しさん2018/10/18(木) 21:33:57.36ID:/ofNkRJS
>>973

え?お前こういったじゃん

> やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。

お前は、使い回すために業務クラス作ってんのか?
どんな業務でも汎用的に使えるもの = 業務クラスだったのか?

975デフォルトの名無しさん2018/10/18(木) 21:35:16.82ID:/ofNkRJS
使い回さ(せ)ないもの = 業務クラス
Personクラスは使い回せない = 業務クラス

俺はこう言ってるだけなんだが、
こいつは何を言ってるんだろうか?

976デフォルトの名無しさん2018/10/18(木) 21:37:02.39ID:A+ZA0oir
アホに構ってしまった。
personなんて一般的な名前で個別に特化したクラスを作るあほは社会の迷惑だからしんでくれ。

977デフォルトの名無しさん2018/10/18(木) 21:38:08.80ID:/ofNkRJS
>>976
キミはネームスペースというものを知ったほうが良いぞ
多くの言語ではクラスはネームスペースの中に入れるから
一般的な名前が使えるんだよ

978デフォルトの名無しさん2018/10/18(木) 21:43:24.79ID:A+ZA0oir
それじゃ解決できねーんだよw

979デフォルトの名無しさん2018/10/18(木) 21:59:23.07ID:d31P7rqb
マクロ使ってスコープ無視してるんじゃね

980デフォルトの名無しさん2018/10/18(木) 22:04:29.72ID:A+ZA0oir
つうか、使いまわせないから却下。

981デフォルトの名無しさん2018/10/18(木) 22:20:46.14ID:d31P7rqb
名前空間内に入っていてその業務に特化したpersonという標準クラスはok派。
それを継承して使いまわしてもいいじゃない。

982デフォルトの名無しさん2018/10/18(木) 22:53:19.65ID:2FmMLZik
名前空間のせいで型名が長い
その反動で関数名は短すぎるから型を省略したら情報が少なすぎて読めない

型を宣言する言語としない言語の対立が最も激しくなる仕組み

983デフォルトの名無しさん2018/10/18(木) 23:03:48.89ID:vIc/Em84
personに関わる宇宙の真理を考えてる奴がマジでいてクソワロタwww

984デフォルトの名無しさん2018/10/18(木) 23:17:56.72ID:sfuI0a7S
オブジェクト指向で作った時点で失敗

メンバ変数の状態の数だけパターンが増えていく
これを仕様で固定せず
オブジェクトの状態数×オブジェクトの状態数
の工数爆発を汎用性による品質の向上とか思ってるキチガイばっかで救いようがない

無限の汎用性とは無限のバグ数を持っていることを悟るべき

985デフォルトの名無しさん2018/10/18(木) 23:19:33.39ID:/ofNkRJS
> オブジェクト指向で作った時点で失敗

いきなり結論ありきw

986デフォルトの名無しさん2018/10/18(木) 23:19:44.24ID:THsg9J3q
人類クラスからホモクラスを導出するぐらい頭ワルイことを平気でするからな

987デフォルトの名無しさん2018/10/18(木) 23:22:42.95ID:Buojxy+7
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない

988デフォルトの名無しさん2018/10/18(木) 23:25:00.93ID:qf9NxgCD
>>973-974
あー。。。
オブジェクト指向は素晴らしいかもしれん。
だがな。
納期に追われた焦った脳で扱うには手が余る。
精々次の一回使い回せたら使えたってのが現実。
(と言うか、そんなんだから継承は悪とか言われるわけで)

上で誰かがライブラリ的な方が嬉しいとか書いてたろ?
あれが真実。(誓って書いたのは俺じゃあない)
流石にまんま関数をライブラリにしなくて、関数とクラスをまとめたライブラリにするが。(むしろ気持ち悪いかこれは)

だから言ったろ?
現実と理想は違うって。

理想を追い求めて納期間に合わなくて、クビになったら元も子もないやろ?
いつかは。。。とか思いつつ、その連続よ。

989デフォルトの名無しさん2018/10/18(木) 23:26:14.41ID:/ofNkRJS
>>988
お前の現実の話なんか
他人には関係ない

990デフォルトの名無しさん2018/10/18(木) 23:28:09.99ID:qf9NxgCD
そう思うんなら、まだ現実を知らない。

991デフォルトの名無しさん2018/10/18(木) 23:28:24.82ID:THsg9J3q
一番頭ワルイやつが大量にレスしてるわ。。。
まさに典型的な頭の悪さ

992デフォルトの名無しさん2018/10/18(木) 23:28:41.89ID:/ofNkRJS
お前の現実なんか知らんわw

993デフォルトの名無しさん2018/10/18(木) 23:33:25.51ID:/ofNkRJS
>>988
Personのような業務クラスは使いまわしできるわけがないのは常識で
どうせ作る力ないんだから作るな。使え。
オープンソースなんかの汎用クラスを使え
見事にオブジェクト指向で世界中使い回し出来てるんだから。

994デフォルトの名無しさん2018/10/18(木) 23:35:05.22ID:THsg9J3q
業務でどこの馬の作ったか分からんような
ちゃんと試験されたかどうかすらわからんようなコードを使うとかな
コイツは間違いなくニート

995デフォルトの名無しさん2018/10/18(木) 23:43:20.55ID:/ofNkRJS
ちゃんと試験すればいいだけじゃね?

どうせ自分で作っても試験するんだから
他人が作ったものを試験するほうが
作るコストが節約できる

第一そもそも作る能力がないレベルなんだから
他人のが使えませんと言っても
自分で作ることもできませんっていうのが落ちだろう

996デフォルトの名無しさん2018/10/18(木) 23:45:03.61ID:THsg9J3q
クソニートの世界では手続きとういもんがないのは分かる

997デフォルトの名無しさん2018/10/18(木) 23:46:15.45ID:/ofNkRJS
ダメな奴は
できる方法を考えるのではなく
できない理由を考える

998デフォルトの名無しさん2018/10/18(木) 23:46:31.81ID:/ofNkRJS
はい、さっき次スレ立てましたよー

オブジェクト指向ってクソじゃねぇよ? Part2
https://mevius.5ch.net/test/read.cgi/tech/1539872441/

999デフォルトの名無しさん2018/10/18(木) 23:46:57.71ID:THsg9J3q
オマエはこのスレで頭わるいことばっかり書きこむまえに
ハロワへいく必要がある

1000デフォルトの名無しさん2018/10/18(木) 23:47:17.33ID:vIc/Em84
>>984
状態をクラスにカプセル化することによって独立性を保てる境界ができる
すると状態の組み合わせ数が激減するんだよ

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 55日 10時間 15分 8秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。