差分

ナビゲーションに移動 検索に移動

スパゲッティコード

2,303 バイト追加, 2014年2月28日 (金) 01:56
ページの作成:「'''スパゲッティコード'''(英語:spaghetti code)とは、スパゲッティのように複雑に絡み合い、理解に苦しむ[[ソースコード]...」
'''スパゲッティコード'''([[英語]]:spaghetti code)とは、スパゲッティのように複雑に絡み合い、理解に苦しむ[[ソースコード]]のことである。

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

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

その結果、
* 大量のクラス
* 迷路のような変数渡し
* 底なしに深いネスト
などといった凄いものが生まれる。
<ref>[http://www.atmarkit.co.jp/ait/articles/1210/17/news146.html IT用語解説系マンガ:食べ超(9):スパゲッティコード・モンスターがやってきた! - @IT]</ref>

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

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

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

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

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

== 関連項目 ==
* [[ペアプログラミング]]
* [[不完全にしておよそ正しくないプログラミング言語小史]]

== 参考文献 ==
{{reflist}}

{{stub}}

案内メニュー