スパゲッティコード

提供: MonoBook
2014年2月28日 (金) 01:56時点におけるimported>Fallout New Tokyoによる版 (ページの作成:「'''スパゲッティコード'''(英語:spaghetti code)とは、スパゲッティのように複雑に絡み合い、理解に苦しむ[[ソースコード]...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

スパゲッティコード英語:spaghetti code)とは、スパゲッティのように複雑に絡み合い、理解に苦しむソースコードのことである。

概要

スパゲッティコードは初級者から中級者までのプログラマーに好発する精神疾患である。

主な原因

中級者病

初級者から中級者という時期は、ほぼ何でも読める程度にプログラミング言語に精通し、または偉いプログラマーの提唱したデザインパターンも一通り理解したくらいである。 すると、プログラミング言語の持つあらゆる機能と、偉いプログラマーの提唱するあらゆる技術を使わねばならないという思い込みが発生する。 そしてHello Worldにまで崇高なオブジェクト指向デザインパターンを適用しようとしだすのである。

その結果、

  • 大量のクラス
  • 迷路のような変数渡し
  • 底なしに深いネスト

などといった凄いものが生まれる。 [1]

善意のスパゲッティコードである。

デスマーチ

デスマーチに陥ったら誰もが迷わず「Write Once, Run Away」を考える。 これには初級者も上級者もない。 むしろ逃げるのは場数を踏んでいる上級者の方が早い。

緊急避難のスパゲッティコードである。

対策

個人による独断と偏見で物事を進めるとスパゲッティコードを発生させやすい。 なぜなら、他人に読ませる前提ではないからである。 履歴書を書くときは一語一句に気を配ったであろう。普通は他人に読ませる前提ならば気を配るものである。

こそで登場するのがコードレビューペアプログラミングである。

関連項目

参考文献