20/05/10(日)20:07:16 三年開... のスレッド詳細
削除依頼やバグ報告は メールフォーム にお願いします。個人情報、名誉毀損、侵害等については積極的に削除しますので、 メールフォーム より該当URLをご連絡いただけると助かります。
画像ファイル名:1589108836951.png 20/05/10(日)20:07:16 No.687856948
三年開発の仕事しててもオブジェクト志向が理解出来ない
1 20/05/10(日)20:10:31 No.687858315
大規模開発の面倒ごとを先に潰しておいてついでに資源を再利用しやすくしとこうって発想だと俺は思ってる
2 20/05/10(日)20:11:16 No.687858663
なんか処理とデータをひとまとめに管理できて 単純な処理をラッパー関数的に使いやすくまとめたりできる くらいの認識
3 20/05/10(日)20:12:36 No.687859296
>資源を再利用しやすく ドキュメントないと再利用できるものがあるかなんてわからんよね… 車輪どんどん再発明しちゃう
4 20/05/10(日)20:14:12 No.687860057
オブジェクト指向だのアスペクト指向だの若い頃はそれなりに勉強したけど全部忘れたわ!
5 20/05/10(日)20:14:34 No.687860178
この図わかりづらくね?
6 20/05/10(日)20:14:43 No.687860253
OOPを最初に考えた人達べつにインスタンスや継承とかやりたいんじゃなくて 本当は単なるメッセージング(そのための手続きのルール化)したかっただけなのでは…
7 <a href="mailto:アラン">20/05/10(日)20:16:12</a> [アラン] No.687860876
smalltalkいいよね…
8 20/05/10(日)20:17:51 No.687861636
外から見てただのブラックボックスでしかないクラスはクソだよ 名前見て何できるかわかるくらいにしろ
9 20/05/10(日)20:17:54 No.687861664
管理する側の目線で考えるとこういう手続き要るよねってのが多い
10 20/05/10(日)20:18:09 No.687861756
プリモフィズム?
11 20/05/10(日)20:18:21 No.687861843
>オブジェクト指向だのアスペクト指向だの若い頃はそれなりに勉強したけど全部忘れたわ! また触りだしたら思い出すよ VSCでも入れてみよう Eclipseでもいいぞ!
12 20/05/10(日)20:18:59 No.687862160
デザインパターンを使うのじゃ!
13 20/05/10(日)20:19:31 No.687862381
>名前見て何できるかわかるくらいにしろ 了解!〇〇Manager!
14 20/05/10(日)20:20:33 No.687862801
犬に鳴けって言うとワンと鳴くらしい
15 20/05/10(日)20:21:01 No.687863031
初めてJavadoc触ったときに感動したけど 結局レビューされないと書かれなくなるし レビューの時間とれなくなって形骸化したのがすごくキツかった
16 20/05/10(日)20:21:52 No.687863400
関数とは違うの?
17 20/05/10(日)20:22:52 No.687863844
デザインパターンやアンチパターンを覚えるのも無意味じゃないけど大事なのは考え方だからね…本来クラスに拘る必要さえ無いものだから
18 20/05/10(日)20:23:01 No.687863912
継承!インターフェース!抽象クラス!
19 20/05/10(日)20:23:25 No.687864067
オブジェクト指向ももう過去のものよ!
20 20/05/10(日)20:23:43 No.687864205
オブジェクト指向の説明ってだいたいコード書くための最低限の知識だけでそもそもどういう発想のものかを教えてくれるの見たことない
21 20/05/10(日)20:24:05 No.687864368
共通化しすぎるとそれはそれでドツボにはまったりするよね
22 20/05/10(日)20:24:50 No.687864675
なんでもかんでも共通化しようとしてベースクラスがメチャクチャ肥大化したり逆になんもなくなったりする
23 20/05/10(日)20:25:09 No.687864842
基本1-2人でやる小規模開発で言語も古めのが中心だから1クラス内で済んで継承とか使う場面がほぼない... 会社自体の環境はいいんだけど時々調べものしてるとこれでいいのかなあとは思ってしまう
24 20/05/10(日)20:25:14 No.687864886
実際設計に答えがないから実例のある書籍もないし現場を参考にすると間違った使われ方もしてるし…
25 20/05/10(日)20:25:20 No.687864933
データ+アルゴリズム=オブジェクト これだけ覚えとけばイナフだ!
26 20/05/10(日)20:26:50 No.687865564
継承はややこしいしめんどいからインターフェースでいいよね…ってなる
27 20/05/10(日)20:26:53 No.687865585
自分は使わねー!って思ってもオブジェクト指向で書かれたソース読めないと死ぬから学ばざるおえない 学んだら意外と便利だったけど
28 20/05/10(日)20:27:02 No.687865642
使わずに済むなら継承なんて使わなくていいんだ
29 20/05/10(日)20:27:51 No.687866023
オブジェクト指向はとにかく再利用がしやすいのがいいよ…
30 20/05/10(日)20:28:27 No.687866269
まずメソッドって発想からもう重そうで不安になってくる事実重い 継承とかインスタンスとかどう考えてもコスト高い発想だろ 全部構造体でいいだろ手続きは関数ポインタでいいだろ
31 20/05/10(日)20:29:16 No.687866661
IDEの機能フル活用しないと書く気になれないのはわかる
32 20/05/10(日)20:30:51 No.687867431
多重継承は悪なんてのはgotoは悪ってのと同じレベルの話だから使うべきときは使っていいんだぞ
33 20/05/10(日)20:32:09 No.687867937
色々インターネット上の文献で色々技術調べると 自分の仕事ではここまで考えないとならないのかな?って思うことが多い
34 20/05/10(日)20:33:14 No.687868414
多重継承は過去のC++で使うととにかく大惨事だったから悪とされたのだ
35 20/05/10(日)20:34:30 No.687868943
とはいえ言語仕様からして多重継承できないのも多いからな…
36 20/05/10(日)20:35:28 No.687869430
インターフェースとか理解してない 開発者ではないんだけど
37 20/05/10(日)20:37:16 No.687870194
一人のプログラムならともかく複数人で弄るならみんなある程度は理解しておいて欲しい…
38 20/05/10(日)20:37:41 No.687870370
オブジェクト指向だけ知っててもデザパタまで覚えてないと使いもんにならんない…
39 20/05/10(日)20:38:22 No.687870631
>多重継承は悪なんてのはgotoは悪ってのと同じレベルの話だから使うのは死を意味するぞ
40 20/05/10(日)20:38:22 No.687870633
継承したいだけの実装とか頭痛くなる 目的とか意味を考えようよ!
41 20/05/10(日)20:39:09 No.687870969
いま若い人gotoとかジャンプ命令なんか言っても その弊害どころか何する命令か分からない気がする
42 20/05/10(日)20:39:29 No.687871102
メソッドは一画面に入るくらいのコードでした方がいいし クラスは一見して分かるように名前つけたりパラメータを用意しないといけない
43 20/05/10(日)20:39:54 No.687871284
フレームワークとかのよく練られた設計で採用するならいいんだろうけど 自前実装はできるだけフラットにしとくのがいいよやっぱり
44 20/05/10(日)20:39:59 No.687871322
ある程度は意識してやらないととんでもないスパゲティが出来ちまうんだ
45 20/05/10(日)20:40:03 No.687871360
OOP勉強不足の人が酷いコードを書いてOOP反対の人を生んで勉強しなくなりさらに酷いOOPのコードが生まれる悪循環
46 20/05/10(日)20:40:17 No.687871463
キャッチスローの正しい作法がわからない 握り潰して全部エラーにする
47 20/05/10(日)20:40:28 No.687871536
勉強して理解出来ない奴もやってりゃそのうちなんと無く分かる 実務で覚えりゃいいのよただし新人に限る
48 20/05/10(日)20:40:40 No.687871616
適当に作ってみたら後から後からいろんなところで使えるすごい便利な関数ができていた…
49 20/05/10(日)20:41:12 No.687871843
多重どころか継承そのものが消されようとしている…
50 20/05/10(日)20:41:51 No.687872126
よい素材屋はよい設計者になれる
51 20/05/10(日)20:42:00 No.687872198
オブジェクト指向エクササイズやるといいよ あと基本的に主要なところをざっくり作って細かいとこは依存性逆転の原則
52 20/05/10(日)20:42:09 No.687872263
>いま若い人gotoとかジャンプ命令なんか言っても >その弊害どころか何する命令か分からない気がする 中学校の必須科目情報でやってる
53 20/05/10(日)20:42:11 No.687872277
動的にメソッドを解決しないといけない時のコストの高さを理解できない人間に与えてはいけない 全部生のCで書かせなさい
54 20/05/10(日)20:42:18 No.687872345
了解! Singletonパターン!
55 20/05/10(日)20:42:55 No.687872704
今どきの言語を使っているならオブジェクト指向に強制参加させられてるようなものなので 深く考えなくて良い
56 20/05/10(日)20:43:16 No.687872914
聞くな 命じろ
57 20/05/10(日)20:43:32 No.687873022
もうオブジェクト指向じゃない実用言語のほうが珍しいんだから 言語の勉強すれば自然に身につくでしょ
58 20/05/10(日)20:43:54 No.687873170
政治・宗教の話ではあるけど俺も継承は嫌いだな 処理を追いかけにくくなるからなるべくinterfaceかcompositionでやりたい 最もC++のinterfaceって結局継承ではあるんだけどもせめて基底にメンバは持たせたくない
59 20/05/10(日)20:44:07 No.687873270
わからない今の開発者はGofパターンも知らない
60 20/05/10(日)20:44:17 No.687873348
オブジェクト指向プログラミングとオブジェクト指向設計はまた違う
61 20/05/10(日)20:44:26 No.687873433
学びたての子にいきなりやらせても意味わからないよな まずクラス禁止で大きいプログラム書かせて管理地獄を体験させないと
62 20/05/10(日)20:44:44 No.687873556
>全部生のCで書かせなさい やめろデストラクタのない言語を使うんじゃない
63 20/05/10(日)20:44:49 No.687873601
>継承はややこしいしめんどいからインターフェースでいいよね…ってなる 実際JavaとかC++とかの反省を活かして設計された最近の言語は継承じゃなくてインターフェース(に似た機能)で表現してるのが多い
64 20/05/10(日)20:45:45 No.687874011
>学びたての子にいきなりやらせても意味わからないよな >まずクラス禁止で大きいプログラム書かせて管理地獄を体験させないと 二万行くらいのサーブレットいいよねよくない 働くようになってこんなの本当に実在するのか…ってなった
65 20/05/10(日)20:46:28 No.687874312
継承はたぶん人類には難しすぎる
66 20/05/10(日)20:46:40 No.687874410
GofパターンはC++などの自由過ぎる古い言語のためのもので パターンの多くがすでにコンポーネントとして供給されてる今どきの言語なら知らなくても扱える
67 20/05/10(日)20:46:59 No.687874543
>継承はたぶん人類には難しすぎる いいよね安易な継承 よくない
68 20/05/10(日)20:47:32 No.687874788
クラスとメソッドを出来るだけ分割すればそれでいいよ
69 20/05/10(日)20:47:55 No.687874965
管理の地獄知ってるかどうかで見方変わるよな…
70 20/05/10(日)20:47:56 No.687874968
>学びたての子にいきなりやらせても意味わからないよな >まずクラス禁止で大きいプログラム書かせて管理地獄を体験させないと それはあるな 就職する前に作ってた自作ゲームで処理の分岐を全てswitchで書いてた結果何が何だか分からなくなったうえに関数長すぎ!ってコンパイラに怒られた それでやっとこういう時にクラスと継承を使うんだなってなんとなく学べたよ 仕事の前にプライベートで何か大きめのものを作ってみるのはすごくいい
71 20/05/10(日)20:48:26 No.687875166
同じ機能持ってるから継承だな!でクソコードいっぱい書いたよ
72 20/05/10(日)20:48:52 No.687875392
>継承はたぶん人類には難しすぎる プログラミング界隈って人類には早すぎる概念発明すること多くない?
73 20/05/10(日)20:49:04 No.687875510
SngletonやStateが削除された新GoFの方はさっぱり話題に挙がらない
74 20/05/10(日)20:49:15 No.687875588
基本は 関数に引数として変数を渡すなら最初から関数と変数を結び付けとけばいいんじゃね? と理解してる
75 20/05/10(日)20:49:36 No.687875722
ドットとか->とか使ってるなら きっと無意識レベルで理解してるはず
76 20/05/10(日)20:50:19 No.687876049
factoryなんたら群とかiteratorとかmementoとかcompositeとか 自前でスクラッチしなくても今日日の近代的なプログラミング言語だと 分厚いライブラリの中で否応無しに触れることになると思う
77 20/05/10(日)20:50:23 No.687876078
未だにvb6でビックリするほど難読なプログラムをいじらされる俺の職場 だから同じ処理ができるプログラムを自分で作り直す方が早い時もある
78 20/05/10(日)20:50:46 No.687876280
たまたま同じ処理なのか本質的に同じ処理なのか本当に親子関係は成立するのか与える引数は同じ概念なのか 継承わからない…
79 20/05/10(日)20:50:49 No.687876294
>学びたての子にいきなりやらせても意味わからないよな >まずクラス禁止で大きいプログラム書かせて管理地獄を体験させないと 大学一年の最初の授業からしてオブジェクト指向だった気がするけど 全く関係ない職についたので問題ありません
80 20/05/10(日)20:51:39 No.687876677
smalltalkのOOPはメッセージパッシングがメインで C++のOOPはクラスと継承がメインなので そこが混ざってるこの図は良くない C++の仮想関数呼び出しをメッセージパッシングと呼ぶ奴居ないだろ
81 20/05/10(日)20:51:49 No.687876749
知らん キャストした 同じに見える 動いた
82 20/05/10(日)20:52:15 No.687876929
動けばよかろうなのだ
83 20/05/10(日)20:52:36 No.687877090
今時の言語だとやっぱ継承使いづらいわってなって 移譲したりトレイトで継承ほどガチガチにならなくしたりしてる
84 20/05/10(日)20:52:52 No.687877212
夜中の2時にエラー吐いた時おめーが調べるならいいよ
85 20/05/10(日)20:52:54 No.687877233
>知らん >キャストした >同じに見える >実行時エラー
86 20/05/10(日)20:53:10 No.687877351
イベント駆動型とかあるじゃろ あれが理解できればいいよ
87 20/05/10(日)20:53:19 No.687877397
>未だにvb6でビックリするほど難読なプログラムをいじらされる俺の職場 >だから同じ処理ができるプログラムを自分で作り直す方が早い時もある 前任者もそうやってやってきたりする フォルダの中は知らないプログラムの卵でいっぱいだ!
88 20/05/10(日)20:53:30 No.687877475
サブクラスが親クラスのメソッド全て実行できるならいいんだっけ なんか原則であった気がするけど
89 20/05/10(日)20:53:38 No.687877535
>基本は >関数に引数として変数を渡すなら最初から関数と変数を結び付けとけばいいんじゃね? >と理解してる それだけじゃなくてその関数が変数(オブジェクト)の内部で完結するものならprivateにして外に出すなってのがミソだな 外部とやりとりする最小限の関数だけをpublicにしておくとprivate部分はクラス内で好き勝手してよくなる そうするとpublic関数の形だけ共通のまったく別のクラスを作っても良くなるからあとは共通部をインターフェースとして抜き出せばポリモーフィズムの完成だ
90 20/05/10(日)20:53:54 No.687877649
>今時の言語だとやっぱ継承使いづらいわってなって >移譲したりトレイトで継承ほどガチガチにならなくしたりしてる 今時のLLのOOPは一度実行するまで解決されなさそうな仕組みでよく性能出てるなと思う
91 20/05/10(日)20:54:00 No.687877691
スーパークラスのスーパークラスのスーパークラス
92 20/05/10(日)20:55:02 No.687878090
>そうするとpublic関数の形だけ共通のまったく別のクラスを作っても良くなるからあとは共通部をインターフェースとして抜き出せばポリモーフィズムの完成だ 分かりやすいわ教師かよ 理解はしてても言葉にするのって難しいよね
93 20/05/10(日)20:55:09 No.687878147
>イベント駆動型とかあるじゃろ >あれが理解できればいいよ 了解!ポーリング!!
94 20/05/10(日)20:57:09 No.687879012
知ってる人間のノウハウで語れば分かりやすいんだろうけど書籍とかでこれがないのは宗教戦争が起こるからかなあ
95 20/05/10(日)20:57:17 No.687879061
大学の時プログラミングめいたことをやる研究室にいたけど みんな好き勝手にコード書いてたしソースの受け渡しなんてアーカイブにして名前に日付つけて管理してたし オブジェクト指向全く理解できなかったな
96 20/05/10(日)20:57:28 No.687879120
ドラえもんの鉄人兵団の知らない機械なら知ってる機械に作り替えて仕舞えばいいんだって言う言葉がよく頭をよぎる…
97 20/05/10(日)20:58:02 No.687879327
カプセル化と分かりやすい命名だけできてればいいよ…
98 20/05/10(日)20:58:08 No.687879373
関数と値にアクセス権を作る発想がおこがましいと思う なにがprivateじゃAspectJで書き換えてやったざまあみろ レイプだ
99 20/05/10(日)20:58:20 No.687879437
一人でこまごましたコード書いてると理解しづらいと思う
100 20/05/10(日)20:58:38 No.687879556
コーディングはリーダブルコードとかコードコンプリートみたいな鉄板書籍あるけど 設計とか概念とかの説明での鉄板ってあるのかな?
101 20/05/10(日)21:00:54 No.687880491
テストするためだけにvirtualを付けるのは 本来の意義を脱している
102 20/05/10(日)21:01:39 No.687880774
そういえば昔staticおじさんなんてのがいて大炎上したなあ…
103 20/05/10(日)21:01:55 No.687880860
>設計とか概念とかの説明での鉄板ってあるのかな? デザインパターンの本とかはそれじゃない?
104 20/05/10(日)21:02:42 No.687881183
>テストするためだけにvirtualを付けるのは >本来の意義を脱している ヨシ! #ifdef ON_TEST virtual #endif
105 20/05/10(日)21:02:56 No.687881274
>みんな好き勝手にコード書いてたしソースの受け渡しなんてアーカイブにして名前に日付つけて管理してたし オブジェクト指向はともかくgit使わないのは時代遅れすぎるぞ
106 20/05/10(日)21:03:58 No.687881660
全部staticで済むならそっちの方が望ましいよ コンパイラもそう言っています