FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

「スパゲティ・コード」何それ、おいしいの?

スパゲティ・コードについて適当に解説します。
名前的に電気コードでスパゲティでも作ったみたいな名前ですねw
スパゲティ・プログラムとも言います。
処理の流れ(制御)が複雑で理解しにくく、修正や機能の追加が難しいプログラムのことです。
「goto文」などを多用したプログラムが典型的な例です。

*「goto文」とは、プログラムの処理から別の処理へジャンプする命令のこと

処 理 A←--+
|   ↓   |
|  処理B←+----+
↓   ↓   |    |
処 理 C----+   |
    ↓        |
処 理 D---------+
    ↓
    ・
    ・
    ・                 図書くの下手orz ぐーぐるくろーむで書いた。IEだと崩れる。

処理Aから処理Cにジャンプし、それから処理Aに戻ったり、処理Bへ行ったり・・・
または、A→B→C→D→B→C→Aとなったり・・・
このように、goto文を多用すると、かなり解りずらいプログラムとなってしまうのです。
これがスパゲティ・コードの正体です。

この名前の由来は、プログラムを修正するときに一部を変更すると、全体を変更しなければならないことが、スパゲティを少し取ろうとすると全部付いて来てしまう様子と似ているからだそうです。

このようなコーディングはバグを生みますし、バグの発現条件の特定を困難にさせます。
またバグを直したつもりが新たなバグを生み出してしまうこともあります。
これを改善する方法は、プログラムを一から作り直すことです。(急がば回れとはこのこと)

プログラミングの書籍にはgoto文は「あまり多用しない」又は、「使ってはいけない」と書かれています。
しかし、goto文は多重ループを一気に抜けたい場合とても重宝します。

スパゲティ・コードは特に初心者が起こしやすいです。
慣れて来るとgoto文とは別の方法で上記の処理を書く事ができるようになりますし、もっとシンプルな処理の流れが組めるようになります。
プログラミング初心者の方は気を付けてくださいね。
以上解説終了。

tema:プログラミング - Genre:コンピュータ

  1. 2010/03/28(日) 14:34:36|
  2. 豆知識
  3. | Track back:0
  4. | Comment:0

Comment

Post a comment

Only display to administrator.

Track back

Track Back URL
Track Back to this post(FC2 blog user)