スパゲティ・コード | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

イタリア製の西部劇を「マカロニ・ウエスタン 」という。海外では「スパゲティ・ウェスタン」と言うのだが、日本では、かの淀川長治氏が「スパゲティでは細くて貧弱そうだ」として、マカロニに変えてしまい、そのまま定着したらしい。


しかし、スパゲティにせよマカロニにせよ、西部劇に冠する言葉として、食べ物の名前を選ぶという感覚は、私にはよく分からない(「ハードボイルド」の語源が卵のゆで方だったり、「上を向いて歩こう」が「スキヤキ」になるのと同じくらい分からない)。



それに比べると、「スパゲティ・コード」という言葉は分かりやすい。「処理の流れや構造を把握しにくく、修正や機能の追加が困難なプログラム(e-Word )」(のソースコード)のことを、スパゲティのからまった麺に例えているのである。


個人的には、最近、スパゲティ・コードという言葉はあまり聞かなくなったような気がする。オブジェクト指向プログラミングの普及と共に、処理の順番にコードを書いていくようなことが少なくなったからだろうか。しかし、もちろん、読解困難なコードが少なくなったということではない。


アンチパターン ソフトウェア危篤患者の救出 」という本にも、「スパゲティコード」という言葉は出てきている。しかし、それは幾つもあるアンチパターンの中のひとつでしかない。つまり、悪いコードは「スパゲティ」という一言では表せないのである。プログラミング言語の発展により、そのパターンは、いっそう多様化してきたようにも見える。


色々な処理を詰め込みすぎたクラス(「アンチパターン」では「肥満児」と呼ばれる)、仕様変更等で多くの処理が使われなくなり中身が空洞化してしまった関数、異常に長くてうねっているように見えるコード(YukiWikiで「うねりコード」 と呼ばれている)・・・。


・・・ラビオリ、マカロニ、エリーケ。まさに、いろんな種類のパスタを見るようではないか。







■関連記事
オブジェクトの気持ち
簡単コピー・プログラミングの罠
しらみつぶし
リファクタリング ~ 動いているプログラムを触る



■関連リンク
スパゲティプログラム(Wikipedia)
パスタ(Wikipedia)
ハードボイルド(Wikipedia)




アンチパターン―ソフトウェア危篤患者の救出
W.J. ブラウン 3,Hays W. McCormick Raphael C. Malveau Thomas J. Mowbray William J. Brown 岩谷 宏
ソフトバンククリエイティブ (2002/07)
売り上げランキング: 68328
おすすめ度の平均: 4.0
4 面白くて勉強になります
4 開発者~管理者まで参考になる
3 良い本だと思うけど星3つの訳


オブジェクト指向における再利用のためのデザインパターン
エリック ガンマ ラルフ ジョンソン リチャード ヘルム ジョン ブリシディース Erich Gamma Ralph Johnson Richard Helm John Vlissides 本位田 真一 吉田 和樹
ソフトバンククリエイティブ (1999/10)
売り上げランキング: 3526
おすすめ度の平均: 4.5
5 オブジェクト指向言語を用いた開発者に必携の本
5 原書は未だにトップランク
5 理解しておくとよい本