名前なし
2026/01/31 (土) 22:02:41
07a0d@e9dd8
「スパゲッティコードだからバグが多い」と通ぶる人は海外でも多いけれど、挙動を見る限り、問題の本質はスパゲッティというより 複数のゲームモード・UI・演算処理が絡む多層構造でのパラメータ適用範囲の誤りや、レガシーコードとの互換維持に伴う不整合の方が近い気がする。コードベースが複雑なのは事実だとしても、外部から「スパゲッティかどうか」なんて判断できるわけがない。
通報 ...
煽りではないんだけど、逆にその挙動だけを見てそれらが原因とも言えないとは思う。オープンソースではない以上は内情は誰も分からんし…
木の最後で書いた通りで、自分はあくまで「そういう気がする」という話をしただけよ。一方で、外から挙動だけを見て原因を断定することも当然できないし、そこはおっしゃる通りで、実際のところはもっと多面的だと思う。
「スパゲッティだからバグが多い」と断定する“通ぶり”がちょっと胡散臭いだけで、原因そのものを決めつけるつもりはないよ。
結論先にいうと「長く続く大規模プログラムはスパゲッティになるのが普通だしバグは全部スパゲッティからくる。」スパゲッティって一言で言うと再帰的構造やツリーが深すぎるとかで追いきれないってことで、バグ修正で言うと「バグ直したつもりだったけど治ってなかったわー」とかはそういうものに起因する。10年以上続くサービスで、システムの多様化でスパゲッティになるのは全くおかしなことじゃなくて、たいていそうなってるからそういうもん。例えばお隣の惑星はv2.0にしてプログラムを書き換えて、昔言っていた「10年にわたり技術的負債」とやらを一新した。ゲーム以外で言ったら大ゴケしたけどみずほ銀行は日本IT界のサグラダ・ファミリアと言われるようなシステムに一新してスパゲッティなシステムとおさらばした。もう一度言うけど「スパゲッティ化は普通のこと」で、ついでにいうと何を以てスパゲッティというかは、外野は関係なく、「コード書き換えの際担当者がコードを追えるかどうか」がスパゲッティだと思うよ。
内容は理解できるけど、指摘されているのは「多層化による複雑性」や「レガシーとの整合性」といった構造的な問題で、一般的に言われる“スパゲッティコード”とは性質が少し異なると思う。コードの健全性という観点では、この二つを同一視してしまうと議論の焦点がずれるから注意していきたいよね
「多層化による複雑性」ってまさにスパゲッティコードの意味そのものでは...?
ウィキペディアによると『スパゲティプログラム(英: spaghetti program)またはスパゲティコード(英: spaghetti code)とは、コンピュータプログラムの状態を指すための表現(俗語)であり、命令の実行順が複雑に入り組んでいたり、遠く離れた関連性の薄そうなコード間で共通の変数が使われていたりするなど、処理の流れや構造が把握しにくい見通しの悪い状態になっているプログラムのことである[1]。スパゲッティプログラム、スパゲッティコードとも表記される』ってあるね。これを踏まえるといろんなところで同じコードが使われている(最近会ったミサイルの爆発いじくったらHEATの加害が無くなるバグとか)がそれにあたるのかな?