オブジェクト指向ができないと言われる (324レス)
上下前次1-新
93: 2022/08/04(木)15:10 AAS
俺なら目の前で継承のやり方をドヤ顔で教えて黙らせるね
継承すら知らない無能ならもう知らない
94(2): 1 2022/08/04(木)15:16 AAS
>>92
このスレッドでも言っている人がいるけど、プログラミングの設計手法だよ。
昔はオブジェクト指向がなくて、手続型という手法でプログラミングがされていたんだよ。
手続型プログラミングでも顧客の要件は満たせるんだけど、次の問題があった。
・場当たり的
・同じソースが何度も書かれている
・処理を一つ一つおわないとどう動いているかわからない
省13
95: 1 2022/08/04(木)15:17 AAS
>>94
だから、
車の基本機能を持っているクラスを用意する。
このクラスには、タイヤ、ドア、エンジンを持たせる。
そのクラスを使って、レクサス、ホンダ、トヨタという子供クラスを作る。
これが継承。
レクサスはエンジンがいい、とか、ホンダはタイヤがいい、とかそれぞれに個性を持たせる。
省7
96: 1 2022/08/04(木)15:36 AAS
継承を説明させられるなんてなんて屈辱なんだろう。
これはソースで書くから楽しいのであって、他人にドヤ顔で話すなんて恥ずかしい。
てかもう、オブジェクト指向なんか古いんだよ。
97(1): 2022/08/04(木)18:58 AAS
>>94
書いてる内容だけではピンと来なかったけど、旧来の順を追って全部書くという手続き型の手法で問題となっていた非効率さを、オブジェクトと呼ばれる構成体を使用する事によって効率化を図る設計なりプログラミングの手法がオブジェクト指向という事か。
コードの重複解消、再利用、バグ発生箇所の特定、チームで認識共有、対応柔軟性などで効率化が図れるようだね。
オブジェクトと呼ばれる構成体はデータとデータを操作するメソッド達でなりたち、オブジェクトを定義するのがクラスか。
オブジェクトのデータやメソッドに他から想定外の干渉をさせないのがカプセル化、クラスを機能を引き継いで階層化して各種効率化するのが継承、同じメソッドでも違う結果を出す特性がポリモーフィズムでオブジェクト指向の3大要素。
これが素人が調べた結果。
98(1): 1 2022/08/04(木)19:02 AAS
>>97
素人に説明するときは専門用語使わない方がいいだろ。
インフレの説明も専門用語を使わずに物語形式で、説明できるで。
99: 1 2022/08/04(木)19:07 AAS
ネットで話題になった意識高い系の社長の挨拶文じゃねえかw
インフレの説明させたら、横文字のオンパレードになってなにいってるかわからない状態になる。
100: 2022/08/04(木)19:11 AAS
>>98
俺が書いたのは素人が調べた結果であって素人向けの説明じゃないぞ。
101: 2022/08/04(木)19:28 AAS
オブジェクト指向なんか古いんだよ。
出来るやつにしか出来ない技法なんだからさ。
出来るやつに頼ったやり方は、出来る個人が儲かるだけで
会社の儲けにはならねーんだよ。
102(1): 2022/08/04(木)19:55 AAS
んーなんだかスレ主の性格に問題があるような気がしてきた
説明がくどいのか、相手をイライラさせる傾向がある
結論から話す、へりくだって話すようにした方がいいような気がする
余計なおせっかいかもしれんが
あるいはコードに思想が反映されていないのかも
103: 2022/08/04(木)20:31 AAS
DB読み書きするだけの業務システムにオブジェクト指向なんていらんのよね
デザインパターン踏襲してフレームワーク入れときゃだいたい
処理が同じになるし
むしろゲームプログラミングとかね そっちのが向いてるでしょ
104: 2022/08/04(木)21:34 AAS
そのデザインパターンが高度なオブジェクト指向なんだが
理解しないでコピペしてるだけだともう上はないぞ
105: 2022/08/04(木)21:36 AAS
>>84
OOPの本もデザインパターンの本も英語が原書だし訳されてない英語のものは10倍ほどもあるだろ
英語で書かれてれば神ってなんで勘違いしたの?
106: 2022/08/04(木)21:44 AAS
オブジェクト指向の時代は終わった。理由は単純。オブジェクトとメソッドの関係がわかりにくくなったから。これからは「モダン・スタイル」が主流。このままQiitaの記事一本いける説あります
107: 2022/08/04(木)23:35 AAS
オブジェクト指向を厳密に説明が出来る人は世界でも数人しかいない。と、オブジェクト指向をそれなりに詳しい人なら大概この話をする。だから他人に向かってオブジェクト指向ではないと指摘するという事は詳しければ詳しいほどあり得ない。
108: 2022/08/05(金)04:14 AAS
オブジェクト指向できる議論は必ず
ネットでありふれている検索ワードでのみ議論を許す法律が必要
どこの書籍にも載っていない俺々定義をいきなりブチまけてくるアホが絶えない
そんなに有名ならネットで文字列が見つからないのはおかしい
だからお前のは
真のオブジェクト指向じゃないんだ
省1
109: 2022/08/05(金)09:55 AAS
>>102
ネカマのおっさんが暇つぶししてるだけだと思うぞ
110: 2022/08/05(金)13:01 AAS
健常者のフリをする気がない発達障害者は、だいたいこういう感じだしな
111: 2022/08/06(土)01:07 AAS
関数作るのも、クラス作るのも、オブジェクト指向だよな?
112: 2022/08/06(土)01:35 AAS
クラスの中の関数を全部staticにしてたおじさんいたね
113: 2022/08/06(土)03:12 AAS
クラス毎staticならよくやる
インスタンスいらんならそれに越したことない
114: 2022/08/06(土)09:08 AAS
実際「なぜただの関数じゃダメなんですか?」って問いにオブジェクト指向だからみたいな答えしか返せないならstaticメソッドのほうがいい
修正時にフィールド触ってるかとか、余計なことを考える必要も減る
115: 2022/08/06(土)09:22 AAS
変数毎回リセットすんの?マルチスレッドもガン無視?
仕事でやってんの?
116: 2022/08/06(土)09:27 AAS
もしかして、static変数とstaticメソッドの違いをわかっておられないか
staticメソッド=シングルトンパターンだと思っていらっしゃる?
そんな低いレベルで仕事での開発について行けるの?
117: 2022/08/06(土)09:32 AAS
え?なにまさかクラスに変数持たないで全部メソッドに入れんの?
それ関数型もどきじゃない?
Modelオブジェクトとかどうすんの?ListとかIntegerとか全部オブジェクトなのに自分の書いたとこだけ関数型もどきにするメリットは?
118: 2022/08/06(土)09:45 AAS
まさかとは思うがそう聞こえたんだけど、メソッドのローカル変数で済むものを全部フィールドに持たせることでオブジェクト指向!とかいってる?
後、正しく状態を保持する意味があればクラスにすればいいんじゃない?
staticメソッド以外使わずシステム作ります!とは誰も言ってないんだけど・・・
119: 2022/08/06(土)09:48 AAS
だったら結局ユーティティーメソッドみたいなのしかStaticにならないわけで何を今更言い出してるの?
半分以上Staticで書いてんの?
120: 2022/08/06(土)09:53 AAS
オブジェクト指向より関数型をやった方がいい
より敏感になるから
121: 2022/08/06(土)09:55 AAS
いや関数型なら関数型でいいんだけどね
オブジェクト指向の言語やフレームワークで自分だけStaticまみれじゃStaticおじさんでしょ
122: 2022/08/06(土)10:13 AAS
いや、業務ロジックでも関数でいいようなものは普通に出るよ
思考停止はプログラマを無能にするので、息抜きに疑いながら既存のコードを眺めてみると学べるかもね
プログラム言語の進化はスコープ小さくすることでもあって
グローバル→クラス→関数の順で小さいんだから
関数で終わればそれがいい
123: 2022/08/06(土)10:34 AAS
関数は小さめの方が読みやすいのはそう思うけど関数型とOOPの違いは小さければいいという問題ではないと思うが
半分以上Staticで書いてるの?
もし半分以上でないなら原則としてStaticで書くべき(=理由を述べられない限りStaticにするべき)と言うのは違うよね
Staticで書く理由があるならStaticで書くべきという話でそりゃ当たり前やろ
じゃなきゃStaticなんて無くせばいいんだから
OOPの言語やフレームワークでは原則としてOOPで書くべき(当たり前)で逆
省2
124(1): 2022/08/06(土)10:53 AAS
実際のところフレームワークはクラスだし、状態持ちたい場面も普通に多いので半分はいかないな。
staticおじさんが何故staticにするのかっていうと、呼び出す側ですべてをコントロールする手続き型をやりたいわけじゃん?
オブジェクト指向にしろ関数型にしろ、呼ぶ側は入力だけ与えれば
「あら不思議!それだけで完全な結果が戻ってくる!しかも呼び元に副作用なし!」ってのがやりたいんだし
それが関数1個で仕上がると判断すれば、シンプルなstaticを優先はするだけ。
125(1): 2022/08/06(土)11:00 AAS
staticなんて小規模なアプリとかなら気にすんなって
126(1): 2022/08/06(土)11:36 AAS
>>124
やろ?だから原則はOOPで書けという話なんだよ
理由があるならStaticにしないとそもそもOOPがまるでわかってないStaticおじさんが蔓延る
原則関数型でやるなら言語やフレームワークから関数型でやらんと
実際には最近はOOPでも細かい部分は関数型でやってるけどさ
大規模で全部関数というのは俺はやったことないし見たこともない
127: 2022/08/06(土)11:38 AAS
>>125
まあそりゃ小規模ならなんでもいいよ
128(1): 2022/08/06(土)11:39 AAS
staticメソッドなら、ワザワザnewする必要もないからねぇ。
下手にnewさせちゃうとdeleteを忘れてメモリが溢れたりするバグが後を絶たない。
129: 2022/08/06(土)11:40 AAS
これはStaticおじさん
130: 2022/08/06(土)11:44 AAS
staticおじさん湧くだろうなぁと思ってたら案の定湧いてた
131: 2022/08/06(土)11:47 AAS
>>128
JavaのArrayList<>が全部staticだったらどう思う?
132: 2022/08/06(土)11:51 AAS
staticフィールドだけはやめてくれ...
あれは本気で害悪にしかならん...
133(1): 2022/08/06(土)12:01 AAS
関数型ってlisp系統由来の引数が関数だったりメソッドチェーンを採用したりするニュアンスが強くて、単なる構造化を関数型とは呼ばんだろ
c#ならラムダとか多用されるパターンに転用されてるやつ
staticメソッドとは関係なくねーか
134: 2022/08/06(土)12:04 AAS
そう、オブジェクト指向をちゃんと考えた設計なら、
ところ構わずnewなんてさせないんだよね。
どのタイミングでどの範囲にインスタンスを取るのかってのは、
設計の上では重要だからね、ましてオブジェクト指向なら。
135(1): 2022/08/06(土)12:09 AAS
>>126
「Hoge.fuga()」はオブジェクト指向ではないけど「(new Hoge()).fuga()」はオブジェクト指向!
になるだけで意味がないと思うけどな。どうせfugaの中は手続きが500行くらい書かれることになるし。
自分の頭で考えてない以上、どうころんでもおかしなものしか生まれない。
問題があるのはstaticを使うことではない。
136: 2022/08/06(土)12:28 AAS
>>133
だから「もどき」って置き論破されてんじゃん¥
137(1): 2022/08/06(土)12:32 AAS
>>135
誰もStaticが問題なんて言ってないじゃん
半分以上Staticなら「原則として」意味が説明できないならStaticでいいけどOOPの言語やフレームワークで「意味が説明できないなら原則としてStatic」はおかしいという当たり前の話や
最初の言葉の使い方がおかしいしそこは認めないと
原則としてはちゃんとインスタンス化とかを考えてやらないとただのStaticおじさんやぞ
ちなみにずっとStaticのSが大文字なのは単に日本語のIMEだとそうしないと面倒臭いからで他意はない
138: 2022/08/06(土)13:39 AAS
別に適材適所の話してるだけで、思考停止の原則論の話なんてしてないから、なんか噛み合わないなと思ったけど
staticを許すと、クラスにしたほうがいいかな?なんて誰も考えないで、みんなstaticにするじゃん!って言ってるのか?
つーかクラスにした理由、staticにした理由、どちらにせよ説明できない時点で終わってるので
そうなら、もっとまともな開発者と触れ合えば?って話なんだが・・・
139: 2022/08/06(土)13:42 AAS
誰もStatic許さないなんて一言も言ってないしむしろ逆だし、そもそもすぐ上でそんなこと言ってないって言ってるのにそれは悲しいね
140: 2022/08/06(土)21:43 AAS
なんでstaticで盛り上がってんだろ (´・ω・`)?
俺くらいのアホプログラマーになると
staticは直接編集、instanceはコピーして編集
くらいにしか思ってねぇわ エクセルを共有するかコピーするかみたいなwww
141: 2022/08/06(土)21:58 AAS
staticかどうかは割とどうでもいい
どう見ても単なるデータしかないdtoのようなクラスと、それが保証するべき状態または検証が別クラスにいたり上位の手続きに直書きされてたりすると、無言でそっ閉じしたくなるって話よ
142: 2022/08/07(日)00:46 AAS
速度が速くなるなら使う
143: 2022/08/07(日)10:27 AAS
クラス変数は名前付きのグローバル変数で、
静的関数は名前付きのグローバル関数
クラスが機能を集約したものならば、機能に関連した関数や変数がひとまとめに
入っていること自体は理にかなってると思うだけど
問題はPGがそこら辺のことをちゃんと理解してないと
グローバル変数を作る罪悪感の軽減として、クラス変数をたくさん作ったりする
144: 2022/08/07(日)13:47 AAS
さっきから何を言ってるんだこの人達は
145: 2022/08/07(日)17:29 AAS
OOPが分かってなくても出来る仕事って高度なのばかりという印象
計算科学の世界とか
146: 2022/08/07(日)20:00 AAS
そらOOPも開発技法の一つでしかなくて研究目的のコードなんかは書き捨ての汚いコードが多いこともあるよ。
147: 2022/08/09(火)14:12 AAS
ねね
SOLIDの原則守ったらよくない?
148: 2022/08/09(火)17:15 AAS
SOLIDの原則を崩していい状況はかなり限られてるから
よほどの上級者にならない限りは盲目的に守らないと駄目だと思う
149: 2022/08/09(火)17:20 AAS
大抵の職場は、ド新人以外はSOLIDの原則を無意識に守れていること前提で回ってる
プロジェクトに話の通じないヤバいPGが紛れ込んでしまった時に、
守るルールに従わせる形で彼らを制御するためにこのような原則が明文化された
150: 2022/08/09(火)21:17 AAS
お前らそんなこと言ってるが、後ろ3つはともかく単一責任と開放閉鎖が具体的にどうならないと守れてないか論理的に説明できるか?
大半の人間はふんわりした事やセンスとか言い出すぞ
151: 2022/08/09(火)21:22 AAS
厳密に守れてることが大事なのではなく、明らかに守れてない奴がまずいんだから
倫理的に説明できるか否かなんて問いの建て方自体がナンセンス
152(1): 2022/08/09(火)21:42 AAS
どこまでなら破っていいかの判断基準が出せないならセンスって言ってんのと変わんねーぞ
153: 2022/08/09(火)22:11 AAS
もちろん
動けばいいに決まってるだろ
154: 2022/08/09(火)22:29 AAS
万物に万能の原則なんてないよね
155(1): 2022/08/10(水)17:05 AAS
>>152
理屈ではそうだけど、実務だと明らかにヤバいコード弾ければ十分だから
境界が問題になることはまずない
ヤバい実装でもきちんと動作していて、かつ保守性と拡張性が十分に担保されていればスルー
156: 2022/08/11(木)11:23 AAS
とか言ってる奴ほどバカなバグを仕込んでくる
ユニットテストもガバガバだからそれを指摘すると
「ここは複雑じゃないからこの程度のテストでいいよ」
いや、すり抜けて他の人のパートに悪影響でてるから言ってるんだけど
157: 2022/08/11(木)11:27 AAS
テストいらないだろと思えるくらい簡単なコードほどバグってたりするんだよね
158: 2022/08/11(木)11:28 AAS
テストされてないコードはバグであるって誰かが言ってたけどその通りだわって思った痛い経験はあるなあ
159: 2022/08/16(火)10:58 AAS
>>155
逆だろ
境界をテストしなくてどうすんだ
むしろどうしても選ばなきゃいけないなら境界だけでもいいからテストしろ
160: 2022/08/16(火)11:29 AAS
境界値テストの話じゃなくて、設計がセーフかアウトか境界はどこか、その判断基準は?の話やで
161: 2022/08/23(火)07:02 AAS
オレオレオブジェクト指向
162(1): 2022/08/23(火)07:08 AAS
つか全部スタティックでいけない理由を説明しろよ
163: 2022/08/23(火)07:17 AAS
>>137
意味が説明出来ないなら原則としてスタティックとどこに定められてるの?
どこにも定められていないでしょ?
164(1): 2022/08/23(火)07:25 AAS
>>162
オブジェクト指向の発想に伴っていないから
オブジェクト指向は「オブジェクトに管理を任せること」が根本的な考え方だと思う
全部staticならオブジェクトが管理する状態ではないから好ましくない
165(1): 2022/08/23(火)09:48 AAS
>>164
それじゃ説明になって無いだろ
スタティックがグローバルと勝手に脳内変換すんな
166: 2022/08/23(火)09:52 AAS
スタティックの方がメモリ消費量が一定で管理らくだし、確保したり消したりしないからメモリの断片化も起きないような気がする
設計の綺麗さでいったらライフサイクルあった方が美しいんだろうけど、コンピュータには全部スタティックの方が優しい気がする
167: 2022/08/23(火)09:59 AAS
全部シングルトンで良ければ、全部スタティックでいいよ
168(1): 2022/08/23(火)10:21 AAS
スタティックにすることでromに書かれたアプリみたいに扱えない?システムはいつも同じ結果を返すことが要求される
そういう視点でみたらromに焼いたアプリが一番強くて、スタティックで作ればそれに近づけられると思うんだけど
169: 2022/08/23(火)10:24 AAS
>>168
工場などの電気的ノイズが多い所とかで使う装置なら有効かな
つか、現にそう言うROM化環境はある
170: 2022/08/23(火)12:46 AAS
>>165
グローバルっていうか、
メソッドはクラスオブジェクト(生成された方)に結び付いていて、static付きはクラス(という型)に結びついているからあまりグローバルと大差ないっていう…
171: 2022/08/23(火)20:31 AAS
staticで性能がとか使いがってが良くなるとかそういう
問題じゃないスレッド処理もstaticにする気か?
172: 2022/08/23(火)21:06 AAS
スレッドのメソッドをスタティックにするのは危険な感じ
フォークにすると安全そう
173(1): 2022/08/23(火)22:00 AAS
むしろ、コードやデータの場所が固定されるstaticの方が安全だろ
解放されたオブジェクトにアクセスとか絶対に無いんだから
上下前次1-新書関写板覧索設栞歴
あと 151 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s