探検


オブジェクト指向はオワコン? part2

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2026/08/13(木) 14:38:03.02ID:pdAcKRXu
前スレ
オブジェクト指向はオワコン?
https://mevius.5ch.io/test/read.cgi/tech/1721393540/
2026/08/22(土) 09:50:18.36ID:qikEO/T7
結局ここの住人は、大規模プロジェクトに対してどんなアプローチが適切だと言いたいんだろ?
オブジェクト指向に代わる何かを提唱したりもしないでさw
450デフォルトの名無しさん
垢版 |
2026/08/22(土) 09:54:05.52ID:MVi0Z0Uj
>>441
>>320 こいつを見てくれ、こいつをどう思う?
2026/08/22(土) 09:55:20.61ID:06Fuc+wc
>>448
オワコンかどうかがまずテーマであってだな、代替え案の有無が正当化の理由には全くならない
屁理屈にもならない

それにモジュラリティ―の確保であれば、各言語それこそ様々な手段が既存で
そういうことを論じるスレなのか?ここは。違うよな

それすら自分が分かっていないんだったらそう言うのが、人としてだだしい姿勢だろ
2026/08/22(土) 09:58:32.16ID:06Fuc+wc
>>450
>>320 はある意味いい教師だと思う。反面教師というやつ
わざわざ320を書いた椰子は分かっていてネタとしてイロニーで書いたかもしれない


(いやたぶん本気で地で書いてると個人的には思うがなw
あれが彼にとってのプログラミングであり、ソフトウエアの実装形態なんだろう)
2026/08/22(土) 10:00:07.35ID:06Fuc+wc
小僧相手についムキになっちまったわ

風説に惑わされずせいぜい精進しなされ
2026/08/22(土) 10:00:43.46ID:qikEO/T7
何かを作る時、機能別に分けて作るのは
プログラムに限らず物作りの基本ではある
車しかり、テレビ然り、家然りだ
2026/08/22(土) 10:02:42.42ID:06Fuc+wc
>>454
大上段に振りかぶって何そんな当たり前のことをw

だれがこれまで機能分割を否定したよw

おれが思ったよりも頭ヨワイやつだったんだなw
相手して時間を無駄にした
2026/08/22(土) 10:11:18.42ID:qikEO/T7
瑣末な実装をああだこうだやってるうちは何も分かって無いって事だよ
いちメソッドの実装方法なんて
そんなものは仕様通り動けばどうでもいいんだよ
そんな重箱の隅をつつき合ってオブジェクト指向を語るなんて100年早いわw
2026/08/22(土) 10:15:10.61ID:06Fuc+wc
分かっているなら…(ry

言わせるなよな
2026/08/22(土) 10:17:07.35ID:06Fuc+wc
>>456
こんなにブーメランを自分にザクザク刺す奴って始めて見たかも…
2026/08/22(土) 10:22:49.69ID:qikEO/T7
数十人、数百人規模のプロジェクトの全体設計に導入するから意味があるもので
一人で完結するする様な規模のソフトウェアのいちメソッドに何日も掛けて導入するものじゃ無いからなぁ
2026/08/22(土) 10:25:36.17ID:06Fuc+wc
>>459
そんな大規模プロジェクトに本当に関わって実績を残しているなら

>>441
こういうこと書くかな
もしほんとうにそう思っているなら周りに迷惑かけているだけかもよ
2026/08/22(土) 10:28:07.07ID:qikEO/T7
おまえが分かって無いだけw
2026/08/22(土) 10:29:42.66ID:06Fuc+wc
最後は感情論なんだよなオブジェクト指向厨
結構若輩だったりする
2026/08/22(土) 10:31:59.99ID:SeTr1MjI
オブジェクト指向アレルギーがすごいなww

>>451
オブジェクト指向がオワコンかどうかを判断する基準として、有効な代替え案の有無というのは最も大事な要素の一つなんじゃないのか?
2026/08/22(土) 10:32:19.60ID:qikEO/T7
今ではオブジェクト指向なんてイチイチお題目建てて設計なんかしなくてもだいたいオブジェクト指向の考え方で設計するからなぁ
2026/08/22(土) 10:34:49.79ID:06Fuc+wc
代替え案は各種モジュラリティ―いっぱいあるけど

代替え案の有無は全然重要じゃないよ

考えてもみろよ、代替え案がない問題はこの世に一杯あるが
問題じゃない、無いことにするしかないと言いたいのか?
そしたらこの世の問題のかなりが無問題ということになるぞ

>>463
おまえも頭ヨワイな
2026/08/22(土) 10:35:09.86ID:06Fuc+wc
>>464
しねぇよインチキ言うなw
2026/08/22(土) 10:39:05.58ID:qikEO/T7
>>466
あ、おまえん中がアンチ過ぎただけかw
世の中に追いつけよぼうず
2026/08/22(土) 10:40:07.43ID:06Fuc+wc
>>467
オブジェクト指向を使ってFizzBuzz書いてみて

俺は絵にかいてある
2026/08/22(土) 10:41:41.40ID:qikEO/T7
もしかして、ここのスレ主って、オブジェクト指向はオブジェクト指向言語の事だと思ってないかな?
2026/08/22(土) 10:42:44.88ID:06Fuc+wc
>>468
絵に ー>上に な
2026/08/22(土) 10:43:32.43ID:06Fuc+wc
>>469
そっちへ逃げたかw
煙に巻く気だな
2026/08/22(土) 10:45:24.15ID:06Fuc+wc
>>469
じゃあプログラミング言語でなくてもいいから
オブジェクト指向でFizzBuzzを「記述」してみて
2026/08/22(土) 10:47:03.78ID:SeTr1MjI
>>464
そうなんだよな
上下水道と同じように当たり前のものになったからわざわざ話題として取り上げるものではなくなったという意味のオワコンなら納得
2026/08/22(土) 10:47:15.32ID:06Fuc+wc
「記述」できまいw ニヤニヤ
2026/08/22(土) 10:50:20.53ID:06Fuc+wc
>>473 にとって上下水道と同じように当たり前のものになったオブジェクト指向

オブジェクト指向はオワコン?
https://mevius.5ch.io/test/read.cgi/tech/1721393540/753
2026/08/22(土) 10:52:30.90ID:SeTr1MjI
>>465
めっちゃ詭弁だね

代替案がない問題があるとして
その問題に対する既存の解決策はオワコンなのか?

オブジェクト指向がオワコンかどうかを判断する基準として
君は何が重要だと考えてるのかすら提示できないのなら
ただ議論から尻尾巻いて逃げてるだけだよ
2026/08/22(土) 10:57:05.02ID:06Fuc+wc
>>476
代替案のない問題だとしてもオワコン化は決定できないだろ
誰がそんなこと書いた。ミスリーディングのいい加減にしろ

代替案がないからといって問題では無いということが、問題を正当化する根拠にはならんと書いているのだよ

もう少し理にかなった物の考え方してくれないといくら5chでも
話あいてしててげんなりするぞ
2026/08/22(土) 11:00:08.79ID:06Fuc+wc
モジュラリティ―の方法は様々にあるわけだし
オブジェクト指向に害があって最近はどう回避されるつあるか上で散々論じられている

それに対しオワコンでないというならその根拠を客観的にしめさないと
個人的このみの問題で終わるのは自明だ
2026/08/22(土) 11:02:01.72ID:06Fuc+wc
で、プログラミング言語でなくてもいいから
オブジェクト指向でFizzBuzzを「記述」してみてみ

FizzBuzzが分からないというならもっと簡単なものでもいい
2026/08/22(土) 11:03:52.44ID:06Fuc+wc
「記述」できまいw ニヤニヤ

それが根拠だよ
2026/08/22(土) 11:04:51.40ID:qikEO/T7
確かにカプセル化とか継承とか付随した概念は否定されつつあるが
機能別にまとめたり同じ概念で扱うって考えは新しい言語にも引き継がれてるからなぁ
2026/08/22(土) 11:06:16.41ID:06Fuc+wc
>>480
「機能別にまとめたり同じ概念で扱う」
そのオブジェクト指向でFizzBuzzを「記述」してみてみ
2026/08/22(土) 11:08:09.39ID:qikEO/T7
>>479
そんな単一メソッドに収まるものをわざわざオブジェクト指向で書くって事自体がオブジェクト指向を分かって無いって言ってるんだがw
484デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:09:15.05ID:2u24m9Db
OOPについてオワコンどうこう以前にOOPに厳密な定義を与えられた人間が人類史上いたか?
2026/08/22(土) 11:09:53.57ID:06Fuc+wc
「記述」できまいw ニヤニヤ

まずClass作って、インスタンスメンバ変数作って、getter setter property アクセス修飾設定して
method 書いて、…くちゃくちゃ くちゃくちゃ
2026/08/22(土) 11:11:26.09ID:06Fuc+wc
>>483
大規模だともっと作りにくいぞw
2026/08/22(土) 11:12:17.55ID:06Fuc+wc
なんで調べないかな>>484
2026/08/22(土) 11:13:20.57ID:qikEO/T7
>>486
それはむしろ逆だから否定させてもらう
大規模プロジェクトほど機能単位に分けなきゃ破綻する
489デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:14:30.31ID:C0mupzSl
コードはなくていいけど
どういう役割のオブジェクトを登場させるかくらい書けるやろ
2026/08/22(土) 11:14:55.10ID:06Fuc+wc
>>488
だ・か・だら・だれが機能分割、細分化を否定したよ
そこに論点持って行ってどうするw

話が横滑りしてかみ合わないな―君はw
2026/08/22(土) 11:16:13.14ID:06Fuc+wc
>>489
分かったじゃあID:qikEO/T7がどういう役割のオブジェクトを登場させるかくらいについて書くのかを待つか
2026/08/22(土) 11:16:57.50ID:qikEO/T7
>>490
おまえはオブジェクト指向言語の話しかしてないからなぁw
2026/08/22(土) 11:17:59.05ID:06Fuc+wc
でもかれはオブジェクト指向を表層的な感覚でしか受け止めていないようだから
書けないと思う ニヤニヤ
2026/08/22(土) 11:18:58.56ID:qikEO/T7
FizzBuzzなんて最小公倍数のループ組んで順番に出力するコード書いたら終わりだろ
2026/08/22(土) 11:19:10.87ID:06Fuc+wc
おれプログラミング言語の話した?>>492
2026/08/22(土) 11:20:05.43ID:06Fuc+wc
>>494
じゃあほかの題材でいいよw
2026/08/22(土) 11:21:05.68ID:06Fuc+wc
つか、あやうくみおとしそうになったが最小公倍数かよw
2026/08/22(土) 11:21:33.88ID:qikEO/T7
>>495
コード書いてる時点でもう言語の話になってるだろw
2026/08/22(土) 11:22:51.40ID:06Fuc+wc
>>498
コード書い書いてねーぞ

「言語の話しかしてない」って具体的にどこからどのレスよw
2026/08/22(土) 11:23:44.80ID:06Fuc+wc
なんで最小公倍数よw
501デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:24:25.96ID:MVi0Z0Uj
>>494
組み合わせを書くのは悪手だよ

>>320 を書いた人はこう言ってたけど
> 意味的には15との最大公約数で振り分ける。保守しやすい。
> if文が2つ以上あるとバグが出やすくなる笑。

↓ これに対応できなかった

Fizz、Buzzに加えてPop、Jazz、Rockに対応してください

3 → Fizz
5 → Buzz
7 → Pop
11 → Jazz
13 → Rock

ぜんぜん保守できなかったんだよ
2026/08/22(土) 11:24:57.82ID:06Fuc+wc
きょうもまた、つまらぬものを斬ってしまった…
503デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:31:10.28ID:BHZjd0Jb
手続き型プログラムは、for i ループで
iを基本にして処理する
mod 3
mod 5 全部比較して結果を出す

オブジェクト指向なら for i ループ使っちゃだめだろ?
あくまでもオブジェクトであるFizz野郎とかBuzz野郎に丸投げして、必要なとこに出現しやがれ ってやんないと

全然ダメ、お前ら
2026/08/22(土) 11:37:53.48ID:qikEO/T7
inport math
n = 100
a, b = 3, 5
lcm = math.lcm(a, b)
pattern = []
for i in range(1, lcm):
s = ""
if i % a == 0:
s += "Fizz"
if i % b == 0:
s += "Buzz"
pattern.append(s if s elese str(i))
for i in range(1, n + 1):
print(pattern[(i - 1] % lcm])
2026/08/22(土) 11:39:55.42ID:qikEO/T7
オブジェクト指向にしなくていい場所までオブジェクト指向にする意味がわからない
2026/08/22(土) 11:40:59.88ID:qikEO/T7
FizzやBuzzはルールから導き出される結果であって、オブジェクトじゃ無いだろw
2026/08/22(土) 11:41:33.22ID:06Fuc+wc
>>505
じゃあ、どういう場所をオブジェクト指向にするの?
2026/08/22(土) 11:43:41.36ID:qikEO/T7
1から順に数えるのにループ書かないでとか訳分からない事言ってないでさ
w
2026/08/22(土) 11:45:23.66ID:06Fuc+wc
「意味がわからない」という言い方を最近しばしば聞くが
「意味がわからない」≒「理解できない」≒「読解力が足りない」≒「頭が良くない」
という意味にも受け止められるので使わない用が良いと思う

実際にそうならば別に構わんが
2026/08/22(土) 11:46:54.11ID:06Fuc+wc
ループ書かないでって、どのレス?
2026/08/22(土) 11:47:22.94ID:qikEO/T7
>>510
503
2026/08/22(土) 11:48:49.45ID:qikEO/T7
>>509
おまえの読解力を自己判断したのか?
ご苦労様
2026/08/22(土) 11:49:36.92ID:06Fuc+wc
>>511
ほんとだみおとしてた、これは極論だろうが
そういうやり方もありの世界はあるだろな再帰とか
2026/08/22(土) 11:50:23.63ID:06Fuc+wc
せっかくの土曜の朝っぱらから気分悪くさせてざまーみろw
515デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:51:57.22ID:MVi0Z0Uj
>>503
>>503
オブジェクト指向でforループ使っちゃダメって話は聞いたことがない、staticメソッドも使えるよ

ドメイン駆動設計でFizzBuzzをガチで設計してオブジェクト指向でプログラム書いてみせようか

FizzBuzzにはいろんな概念がある
・プレイヤー・手番・発話・間違い・ルール・数・変換

そのうちこれがないとプログラム書けないという必要最小限のものを抜き出す
・数と文字列の変換規則

これをFizzBuzz変換と呼ぶことにする

FizzBuzz変換
・数字が3で割れる→Fizz
・数字が5で割れる→Buzz
・数字が3でも割れるし5でも割れる→FizzBuzz

FizzBuzz変換がFizzBuzzの概念モデル
516デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:52:07.76ID:C0mupzSl
唯一の正解があるわけではないし
>>503みたいにFizzさんBuzzさんに数字投げるか叩いたら適宜叫ぶってのはありよね
コンストラクタに数字と叫び声を渡すとしたら
Pop, Jazz, Rockさんもすんなり登場できる
2026/08/22(土) 11:52:08.31ID:06Fuc+wc
まあ ID:qikEO/T7 のいうオブジェクト指向なんて初歩的な蘊蓄・ノウハウレベルの
中身かっらぽなものなんだよ
もっと勉強して成長しなさい
518デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:52:29.94ID:MVi0Z0Uj
>>503
これをプログラムコードに落とす

static String fizzBuzz(int n) {
 var s = "";
 s += n % 3 == 0 ? "Fizz" : "";
 s += n % 5 == 0 ? "Buzz" : "";

 if (s.isEmpty()) {
  return "" + n;
 } else {
  return s;
 }
}

これがFizzBuzzのドメインモデル

以上がドメイン駆動設計でFizzBuzzを設計してオブジェクト指向で実装するまで
ご清聴ありがとうございました
2026/08/22(土) 11:53:29.49ID:06Fuc+wc
>>518
またお前かw
520デフォルトの名無しさん
垢版 |
2026/08/22(土) 11:54:50.22ID:MVi0Z0Uj
>>519
あ、その節はどうも、お世話になってます
2026/08/22(土) 11:54:58.97ID:qikEO/T7
それだけじゃFizzBuzzにならんだろw
2026/08/22(土) 11:56:46.35ID:06Fuc+wc
さー突っ込みが入りました
おれは縦読みで見落としたか
2026/08/22(土) 11:58:04.52ID:06Fuc+wc
>>520
確か金かしてたよね3万くらい
いつ返してくれる?
2026/08/22(土) 12:00:01.05ID:qikEO/T7
import math

class FizzBuzzRule:
def __init__(self, divisor, word):
self.divisor = divisor
self.word = word

def apply(self, n):
return self.word if n % self.divisor == 0 else ""

def fizzbuzz_generic(n, rules):
lcm = 1
for r in rules:
lcm = math.lcm(lcm, r.divisor)

pattern = []
for i in range(1, lcm + 1):
s = "".join(r.apply(i) for r in rules)
pattern.append(s if s else str(i))

for i in range(1, n + 1):
print(pattern[(i - 1) % lcm])

rules = [
FizzBuzzRule(3, "Fizz"),
FizzBuzzRule(5, "Buzz"),
]

fizzbuzz_generic(100, rules)
2026/08/22(土) 12:06:01.34ID:06Fuc+wc
>>524
ほう、Pythonを書けるんだ、少しだけ見直したぞ。

だが本当にそういう機能分割がいいのかな。小さいプログラムだから薬にも毒にもならないだろうが
結局オブジェクト指向の害の芽はこのコードにもすでに紛れ込んでいるような…

それはさておきPyhonのClass base オブジェクト指向の仕組みは何度見てもあか抜けないな。
2026/08/22(土) 12:07:43.40ID:06Fuc+wc
PyhonでClass baseオブジェクト指向ってあまりやらなくてもいい希ガス
2026/08/22(土) 12:13:43.20ID:T7yt1axc
>>501
ああ、それって、元の仕様とは意味的に異なり、
複数の倍数を含むときの仕様がないから対処していない。
仕様の不備。
2026/08/22(土) 12:13:44.12ID:qikEO/T7
いや、Copilotに方針教えただけだw
2026/08/22(土) 12:15:15.56ID:qikEO/T7
もうメソッド単位の中身なんてどうでもいいんだよって主張の意味がわかったかな?
2026/08/22(土) 12:18:42.02ID:06Fuc+wc
>>528
なんだよ。
ひで―設計だと思ったけどカワイソウだから言うのがまんしてたけど
これが彼の言う「機能別にまとめたり同じ概念で扱う」かと
それすら自分で書けなかったかw

このPythonコードの何がまずいかワカル?
2026/08/22(土) 12:19:44.28ID:06Fuc+wc
>>529
何で急にそんな変な主張をいきなりし始めるんだw
2026/08/22(土) 12:21:55.64ID:T7yt1axc
>>450
>>320ではなくて、
https://paiza.io/projects/OHbT6kBvhYGdSm036ZGHCg
を参照してほしい。
generator部、と変換部と出力部にわけて、オブジェクト指向で、
UnitTestしやすく分割してある。
3つの部分をドットでバインドしている。
Streamにより速さは確保できないが、フロー型の次世代GPUを想定。
ワンクラスにすることで、チップ化も想定。
考え中の「場のオブジェクト指向」によって量子コンピュータでの実行も実験中。
すべてのメソッドが1行の「式」である、というところがミソ。
2026/08/22(土) 12:23:20.27ID:06Fuc+wc
>>532
正直者ではないおれにはmainしか見えないんだが
2026/08/22(土) 12:23:54.55ID:06Fuc+wc
>>533
すまんタブがあった
2026/08/22(土) 12:29:55.45ID:qikEO/T7
で、なんで実装方法を競うだけの例題にしたの?
だからオブジェクト指向言語の話にしかとれないんだってずっと言ってるし
そんな些末な話題はAIにやらせてもっと本質的な話しなよw
2026/08/22(土) 12:32:39.25ID:06Fuc+wc
>>535
AI未満がよう言うわ
論点ずらし逃げの一手か
これがおまえのいう「機能別にまとめたり同じ概念で扱う」ということか
口先だけの奴め
2026/08/22(土) 12:35:51.21ID:qikEO/T7
ルール拡張も出来るし何が不満なのさw
同じルール概念をまとめてるじゃんw
2026/08/22(土) 12:36:59.34ID:qikEO/T7
こんな事に時間を割いても無駄だよw
まあ、暇だから付き合ってやるけどね
2026/08/22(土) 12:37:26.28ID:06Fuc+wc
>>537
そこ重要か?
そもそもClass使うメリット何よ?
変なコード生成させて悦に入って
実力の底が知れるぞ
2026/08/22(土) 12:38:08.82ID:qikEO/T7
>>539
おまえが言ったんだろw
2026/08/22(土) 12:38:49.37ID:qikEO/T7
頭硬いか自分以外認めない奴かどっちだろうねw
2026/08/22(土) 12:40:26.86ID:06Fuc+wc
>>538
俺は忙しいんだよ他のことしながら一瞬の空き時間でレスかいてんだけれどさ

時間があるなら「機能別にまとめたり同じ概念で扱う」といとかおためごかし言ったり
糞コード生成させたりしてないで有意義にすごせよ
2026/08/22(土) 12:41:49.20ID:qikEO/T7
FuzzBuzzなんて同じパターンを繰り返し出力するだけのループ処理なのに
どうやってそこにプログラム言語としてのオブジェクト指向以外でオブジェクト指向を盛り込ませるってんだかw
2026/08/22(土) 12:42:25.76ID:06Fuc+wc
>>540
書かしてみたらあまりの糞コードで
目が潰れると思ったわ
2026/08/22(土) 12:42:53.84ID:06Fuc+wc
>>543
それがお前はまともに書けなかったんだろw
恥ずかしい奴め
2026/08/22(土) 12:51:27.33ID:T7yt1axc
プログラムはクライスリトリプルなんだから、
圏論解析によってクライスリトリプル化して設計する。
圏論なんだからオブジェクトと射になるので、(圏論的)オブジェクト指向設計になる。
実装やオブジェクト指向言語はまた別の話。
(ただし圏論解析は、まだスタンダードなものができていない)
547デフォルトの名無しさん
垢版 |
2026/08/22(土) 12:53:46.61ID:MVi0Z0Uj
>>527
> 複数の倍数を含むときの仕様がない

複数の倍数を含むときはその組み合わせで文字列を作成してください

例:
21 → FizzPop
105 → FizzBuzzPop
15015 → FizzBuzzPopJazzRock

以上で仕様は伝えたよ
2026/08/22(土) 12:54:25.03ID:qikEO/T7
>>545
FuzzやBuzzは文字オブジェクトだねw
で、概念はある数で割り切れるって事
ちゃんと共通概念で扱ってるよw
■ このスレッドは過去ログ倉庫に格納されています

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