X



実は「オブジェクト指向」ってクソじゃね?これデスマーチの原因じゃね?
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@涙目です。(北海道) [US]2018/08/24(金) 19:29:03.98ID:GPtxw3E30?PLT(12015)

カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。

偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
0002名無しさん@涙目です。(茸) [FR]2018/08/24(金) 19:29:35.11ID:yoNfyOyH0
そうだよ
0009名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:32:03.09ID:6X0UAayq0
>>359-364
ハロワ!
0011名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:32:58.31ID:6X0UAayq0
>>360-365
ハロワ!
0012名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:33:15.55ID:6X0UAayq0
>>665-670
ハロワ!
0013名無しさん@涙目です。(庭) [LT]2018/08/24(金) 19:33:30.34ID:PeMxlm9d0
Cしか使わんからオブジェクト指向が全くわからん
この先食いっぱぐれないようにするには勉強した方がいい?
0015名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:33:32.35ID:6X0UAayq0
>>643-648
ハロワ!
0016名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:33:32.35ID:4xiUZ0K80
いやならinitだけ使え
0018名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:33:49.17ID:6X0UAayq0
>>977-982
ハロワ!
0020名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:34:06.21ID:6X0UAayq0
>>943-948
ハロワ!
0022名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:34:23.39ID:6X0UAayq0
>>413-418
ハロワ!
0025名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:34:40.15ID:6X0UAayq0
>>839-844
ハロワ!
0028名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:34:57.10ID:6X0UAayq0
>>885-890
ハロワ!
0030名無しさん@涙目です。(茸) [US]2018/08/24(金) 19:35:14.39ID:6X0UAayq0
>>189-194
ハロワ!
0035名無しさん@涙目です。(東京都) [KR]2018/08/24(金) 19:38:13.03ID:uQPYhGNw0
>>8
8ビット機のBASICが最強なのにオブジェクト指向だのなんだの言って
適当な理屈をこねくり回してクソが出来た
これがデスマーチの原因
0037名無しさん@涙目です。(家) [DE]2018/08/24(金) 19:39:04.64ID:ozqpXwdi0
プログラムが小規模のうちは恩恵がない
大規模になっても恩恵がかならずあるとは限らない
複雑さを整理する知恵の一つ
0038名無しさん@涙目です。(家) [US]2018/08/24(金) 19:39:17.78ID:CkWP7g+Q0
デスマーチって大げさだよねぇ
物理的に終わらない仕事量ってだけで人増やせば解決する問題じゃん
0040名無しさん@涙目です。(SB-iPhone) [US]2018/08/24(金) 19:41:13.78ID:9VYp3cU+0
オブジェクト指向ってのは手段の1つで、手段が目的になるのは感心しない。
0041名無しさん@涙目です。(茸) [JP]2018/08/24(金) 19:41:23.27ID:AUhi6vrJ0
そんなものは昔から変わらない
BASICの「定義せずに使える変数」と同じで
便利なものは馬鹿が使うと危険なトラップになる
0045名無しさん@涙目です。(愛知県) [JP]2018/08/24(金) 19:42:02.48ID:EKK/unzA0
マトモにオブジェクト指向設計できる人が少ない
というかほとんどいない
これはデータ中心設計とか言ってた頃からそうだけど

マトモにモデリングできる人が本当にいない
モデリングの結果が正しいか検証できる人もいない
0046名無しさん@涙目です。(埼玉県) [GB]2018/08/24(金) 19:43:16.31ID:ceNikk780
なんかそれぞれの物には特有の条件や特徴があって
それを一つの塊みたいにプログラムする感じ?
0047名無しさん@涙目です。(東京都) [KR]2018/08/24(金) 19:43:40.85ID:uQPYhGNw0
>>36
だよな

WinアプリならC++でWindowsAPIを直叩き
GUIはもちろんリソーススクリプトを直書き
リソースエディタを使うやつは根性なし

男ならこれが基本
0049名無しさん@涙目です。(dion軍) [CY]2018/08/24(金) 19:44:20.80ID:icnoaUCz0
ヘヴィーオブジェクトのおほほちゃんだいすき
0052名無しさん@涙目です。(新疆ウイグル自治区) [SE]2018/08/24(金) 19:45:41.41ID:BZlys5JQ0
モデリングが正しく出来ない奴がオブジェクト指向設計したら必ずゴミになる
でも何が正しいモデリングが分かって無い奴が大半
だからクルマクラスはタイヤクラスとエンジンクラスとかに分割してとか無批判に考えちゃうし美少女ウンコの問題で結論が出なかったりする
関数型プログラミングのほうがはるかにましだわ
0053名無しさん@涙目です。(愛知県) [JP]2018/08/24(金) 19:45:49.72ID:6rbygSrJ0
やたらめったらクラスを作ったり、親の親の親の変数を参照したり、1つのフォームを何個もの部品に細分化しまくる
1画面はともかく数十画面のマルチモニタがないと1つの処理を把握できないのはクソ
0054名無しさん@涙目です。(やわらか銀行) [CN]2018/08/24(金) 19:46:42.97ID:2/ajvSWb0
それはあとから見て改修が難しいプログラム組んだやつがクソなだけでは
0056名無しさん@涙目です。(空) [US]2018/08/24(金) 19:48:53.28ID:z2m93JmH0
S: 平均的な C プロジェクトの長さをおぼえているかな。だいたい6ヵ月だ。
家族を抱えた人間がまともな水準の暮らしを維持するには短すぎる。で、
同じプロジェクトを C++ でやったらどうなる? 教えてあげよう。1〜2年だ。
素晴らしいね。たった1つの判断ミスで、
安定した仕事が確保されるんだよ。
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
0057名無しさん@涙目です。(愛知県) [JP]2018/08/24(金) 19:48:54.92ID:EKK/unzA0
>>46
いや、システム全体を体系的に分割すること
巨大なシステムでも合理的にモジュール分割され、モジュール間のやり取りが明確になっていれば、
あとは小さくなった各モジュール単位で開発ができる…はず…
0058名無しさん@涙目です。(dion軍) [RU]2018/08/24(金) 19:49:40.54ID:XNfLJQxj0
javaはもちろんのこと、PHP等の他言語もクラスの概念を取り入れてるし、
OOPは別に悪い考えではないやろ。

要は使う人のスキルの問題ですわ。

変数のアクセスしたければput_xxx()、get_xxx()メソッドがあるし、無ければそもそもアクセスするなって事やし。
0059名無しさん@涙目です。(チベット自治区) [ニダ]2018/08/24(金) 19:50:10.85ID:O0rmMUIk0
>>38
人増やせないからデスマーチなんでしょ
0060名無しさん@涙目です。(大阪府) [US]2018/08/24(金) 19:50:12.25ID:5sBNeGzg0
賢い人間が一人で作るにはオブジェクト指向は最高だ
アホな他人のコードはオブジェクト指向だとイライラの元
0061名無しさん@涙目です。(滋賀県) [ニダ]2018/08/24(金) 19:50:23.28ID:Q+VoEjYN0
もう全部publicでええやん
0062名無しさん@涙目です。(新疆ウイグル自治区) [SE]2018/08/24(金) 19:51:11.25ID:BZlys5JQ0
>>45
そうこれ
例えば昔からあるモデリングアプローチのUMLで言うと
ユースケース分析やるのは良いことなんだけど
その成果をアクティビティのフローチャートやクラス図に落とした時点で全部台無しになってるのが大半
結局えいやでモデリングしてて結果後から矛盾が出来てしまい肥大化するというパターン
0064名無しさん@涙目です。(大阪府) [ニダ]2018/08/24(金) 19:52:34.09ID:KFBgEN0Q0
>>13
俺も同じだわ。Cとアセンブラしかわからん。
頭のいい人が考えた言葉はマジで理解出来ない。
年齢とかやる気次第だけどたぶん手遅れ。

古い製品のリニューアルとかローカルなIOやUARTで完結する仕事やってるけど、
何でもかんでも産業用イーサに繋がる製品が増えてるからいずれ干される。
0066名無しさん@涙目です。(新疆ウイグル自治区) [SE]2018/08/24(金) 19:53:44.49ID:BZlys5JQ0
>>60
結局Perlみたいなものだな
しかも追加要件が出たらどうせゴチャゴチャになるのがオブジェクト指向設計
関数型プログラミングのほうがはるかにましだわ
0067名無しさん@涙目です。(庭) [US]2018/08/24(金) 19:54:43.43ID:834PXW4+0
ステートレス
副作用を作り込まない
0068名無しさん@涙目です。(やわらか銀行) [GB]2018/08/24(金) 19:54:52.20ID:q/jisTuT0
またくだらねえ単発質問スレか
0069名無しさん@涙目です。(チベット自治区) [ニダ]2018/08/24(金) 19:56:10.38ID:O0rmMUIk0
>>58
お前>>1一切読んでないだろw
無ければそもそもアクセスするなって隠ぺいしてるデータがあるから大規模改修に耐えられずデスマーチが発生するって書いてるよ
まさにその通りだと思うけどね
0070名無しさん@涙目です。(空) [KR]2018/08/24(金) 19:56:22.11ID:JLm1FQ0a0
>>38
作業をこなすのなら人数をかければ問題がない。
プログラミングが作業をこなす程度のものならね。
だけど、それは仕事じゃないね。
0071名無しさん@涙目です。(庭) [US]2018/08/24(金) 19:56:41.23ID:834PXW4+0
隠蔽されたデータにアクセスするインタフェースを作る

インタフェースを作ればそのインタフェースでアクセスを管理できる

そういうもんでないの?
0072名無しさん@涙目です。(新疆ウイグル自治区) [SE]2018/08/24(金) 19:56:48.28ID:BZlys5JQ0
リーナス・トーバルズもC++みたいなオブジェクト指向言語はウンコ以下だって言ってたな
0078名無しさん@涙目です。(大阪府) [US]2018/08/24(金) 20:00:44.63ID:5sBNeGzg0
多態とかはやり過ぎると客からの要求仕様変更に対応できなくなる恐れがある
あんまり構造を綺麗にしすぎるのも問題だ
0079名無しさん@涙目です。(東京都) [KR]2018/08/24(金) 20:01:12.11ID:uQPYhGNw0
>>73
構造体に関数ポインタで似たような感じにできるしな
継承はさすがに無理だが
0080名無しさん@涙目です。(禿) [CH]2018/08/24(金) 20:01:17.54ID:J/Z9cIc20
オブジェクト指向設計が生きるのは、一からシステム開発する時くらいだな
システム改修とかなった時点で過去の設計思想とか無視されるし
0081名無しさん@涙目です。(東京都) [CA]2018/08/24(金) 20:01:36.45ID:Zh05SKeA0
CとC++とC#の違いがわからん
右に行くほど新しいってのはわかる
0082名無しさん@涙目です。(catv?) [ニダ]2018/08/24(金) 20:02:02.00ID:2BRaDzRB0
システムレベルで継承に継承重ねまくったシステムの中のソースも継承されまくって直すと継承先全てに影響するから全部試験し直しになるので誰も親クラス触れないのが普通。
親クラスだけの修正で済むとか生温いわ。
0084名無しさん@涙目です。(新疆ウイグル自治区) [SE]2018/08/24(金) 20:02:37.05ID:BZlys5JQ0
>>71
それをやってると追加要件でて改修し始めたらぐちゃぐちゃになるのよ
0088名無しさん@涙目です。(茸) [ニダ]2018/08/24(金) 20:04:06.01ID:rIJUXSu50
>>65
うちのシステムで、継承の親クラスのexecuteでif文大量に使って全子クラスの処理まかなってるのあるぞ
子クラスは変数セットとexecuteを呼び出すだけ

画面追加の度にif文増やして全画面回帰テストする気かと
0089名無しさん@涙目です。(新疆ウイグル自治区) [SE]2018/08/24(金) 20:05:24.37ID:BZlys5JQ0
>>83
部品化なら関数で十分だろ
オブジェクト指向アプローチの部品化はゴミよ
0090名無しさん@涙目です。(茸) [US]2018/08/24(金) 20:05:55.12ID:/2UW2+280
Aというデータを入力してAというデータを出力するモジュールを省略すると動かない、ふしぎ!!
0091名無しさん@涙目です。(大阪府) [ニダ]2018/08/24(金) 20:07:04.57ID:KFBgEN0Q0
>>76
なんとなくわかりました。
データの参照とか隠蔽が複雑なサービスを実装する時に便利というか、
検証とか管理の事を考えると実質的にそれでしか出来ないってことですか。
0092名無しさん@涙目です。(千葉県) [ニダ]2018/08/24(金) 20:07:32.27ID:pvJxbz6D0
オブジェクト指向がクソとは思わないけど、これがすべてと言われるようになって久しいのがな。
栄枯盛衰で次が模索されてる時期に来た感じはある。
0094名無しさん@涙目です。(神奈川県) [US]2018/08/24(金) 20:08:39.58ID:+uVHPtpS0
学校で教科書読んでせいぜい文法を知ってるレベルの人材が
「Javaが使えます」とか言い出すこと、そしてそれが通用してしまう環境が悪い
0095名無しさん@涙目です。(空) [US]2018/08/24(金) 20:09:51.48ID:z2m93JmH0
S: それ、本気で信じてるね。実際の C++ プロジェクトの経験はある?
どうなるかって言うとね、まず第一に、いろいろワナを仕掛けてあるから、
よほど小規模なプロジェクト以外は一発では動かないようになっているんだ。
たとえば演算子のオーバーロードがそうだ。たいていの場合、プロジェクトの
終わり頃にはほとんどのモジュールで
演算子をオーバーロードしている。
0096名無しさん@涙目です。(東京都) [KR]2018/08/24(金) 20:11:42.72ID:uQPYhGNw0
>>92
時と場合で使い分ければいいんでないの?
仕様変更がバシバシ入るのが確定な使い捨てツールやシステムに
オブジェクト指向でしっかり設計してとか逆に非効率だろう

天才なら考えられるあらゆる仕様変更に柔軟に対応する設計を
さらっとやってしまうんだろうが、現実問題、そんな人はまず居ない
0097名無しさん@涙目です。(埼玉県) [NO]2018/08/24(金) 20:12:04.64ID:jxBGcth10
>偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
偏差値の高低で教科書の内容が違うの?
0099名無しさん@涙目です。(catv?) [US]2018/08/24(金) 20:12:49.27ID:lU+/zwDZ0
さぁ実験です\(^^)/

directX
DXライブラリ
Siv3D

3つのチームにそれぞれ1つずつ配布してゲームを作ってもらいます。

どのチームがいち早くゲームをリリースできるでしょうか?
0100名無しさん@涙目です。(奈良県) [US]2018/08/24(金) 20:14:41.11ID:JOlUDTiA0
オブジェクト指向設計は本当にキッチリ効率的に設計出来れば良く、大きなPJになればなるほど有用なハズなのに、大きいPJになればなるほど効率的な設計は難しく天才が必要になると言う矛盾

・そもそも天才は少なく破綻
・途中や仕様追加の段階でアホか入って破綻
ってのが多すぎる。個人でやる程度なら問題ないんだがなww

常駐させる場合のJavaのメモリ管理も同じような事がある。キッチリメモリ管理・メモリの使い方の特性を把握してチューニングしないと地獄を見る。
■ このスレッドは過去ログ倉庫に格納されています

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