オブジェクト指向ができないと言われる (321レス)
上下前次1-新
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で書くべき(当たり前)で逆
まあ話の内容的にあなたが多分Staticおじさんじゃないというのはのはわかったよ
この板たまに(よく?)Staticおじさんが出るんだよ
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つはともかく単一責任と開放閉鎖が具体的にどうならないと守れてないか論理的に説明できるか?
大半の人間はふんわりした事やセンスとか言い出すぞ
上下前次1-新書関写板覧索設栞歴
あと 171 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.019s