
気づいたら日数経っちゃいます。雑談気味に更新したほうが良いって事に気が付いていますが、良い内容が無いので前回に続いた内容の更新を致します。
今回の内容は自分がプログラムを作っていくときに、プログラムがスパゲッティコード化している時に引き起こすことの例を書いています。他人のソースコードを読む時は大体どのプログラムもスパゲッティコードに見えますので・・・
-------------------------------------------------------------------
スパゲッティコードについて前回説明したので、今回はスパゲッティコードは実際にはどんな問題を引き起こすかについて。スパゲッティコードは基本的にプログラムを作った本人が生み出すものなので、以下のことは自分でプログラムを作っていく時に起こる事を書いています。
・分からない(忘れた)命令をたどっていくと、命令間をたらい回しにされる。
スパゲッティコードの中でも一番良くあるパターンだと思います。自分が分からない(忘れた)命令のひとつを辿っていくうちに、元々何やってたか分からなくなるぐらい命令の移動をするプログラムを作ると起こります。
・命令を使おうと何度も試みるが、失敗(命令がちゃんと扱えない事)を繰り返す。
ちゃんと命令の入出力の理解をしっかりしていれば失敗は殆ど出ませんが、命令に対して例外処理を行っていなかったり、使う時の規則が複雑だと起こります。また汎用性を高めるために命令が処理できるデータの型を必要以上に緩くしてたりすると逆に命令の失敗を生み出す原因になったりします。
・命令に指定したはずのデータがうまく処理されない。原因が特定できない。
上の項目に似ています。大抵は一つの命令がプログラムエラー無しに誤作動を起こしているのが原因ですが、命令が複雑に多くつながっていると原因になってる命令が特定できない状態が起こります。一番頭を悩ませる例がこれです。
・データが収束できない。
特殊な型のデータを出力する命令をたくさん作った場合に、その違う型のデータ同士を収束させようとすると、さらにデータを収束するための命令を作る必要が出てきます。これはプログラム全体の見通しを悪くすることがあります。
・プログラム中に使っている変数を一つ弄ったらエラーが十数個出てくる。
これはスパゲッティコードには依存しない場合が殆どですが、相当酷い時の事例としてあげてみました。値の変更ができるはずの変数の値を弄ったらプログラムがまともに動かなくなるということがあります。
---------------------------------------------------------------------
スパゲッティコードが起こす恐ろしい事は大体こんなところです。
実際はまだまだありますが、起きやすい例をまとめると上のようになります。
今回もこれぐらいで・・・
今回の内容は自分がプログラムを作っていくときに、プログラムがスパゲッティコード化している時に引き起こすことの例を書いています。他人のソースコードを読む時は大体どのプログラムもスパゲッティコードに見えますので・・・
-------------------------------------------------------------------
スパゲッティコードについて前回説明したので、今回はスパゲッティコードは実際にはどんな問題を引き起こすかについて。スパゲッティコードは基本的にプログラムを作った本人が生み出すものなので、以下のことは自分でプログラムを作っていく時に起こる事を書いています。
・分からない(忘れた)命令をたどっていくと、命令間をたらい回しにされる。
スパゲッティコードの中でも一番良くあるパターンだと思います。自分が分からない(忘れた)命令のひとつを辿っていくうちに、元々何やってたか分からなくなるぐらい命令の移動をするプログラムを作ると起こります。
・命令を使おうと何度も試みるが、失敗(命令がちゃんと扱えない事)を繰り返す。
ちゃんと命令の入出力の理解をしっかりしていれば失敗は殆ど出ませんが、命令に対して例外処理を行っていなかったり、使う時の規則が複雑だと起こります。また汎用性を高めるために命令が処理できるデータの型を必要以上に緩くしてたりすると逆に命令の失敗を生み出す原因になったりします。
・命令に指定したはずのデータがうまく処理されない。原因が特定できない。
上の項目に似ています。大抵は一つの命令がプログラムエラー無しに誤作動を起こしているのが原因ですが、命令が複雑に多くつながっていると原因になってる命令が特定できない状態が起こります。一番頭を悩ませる例がこれです。
・データが収束できない。
特殊な型のデータを出力する命令をたくさん作った場合に、その違う型のデータ同士を収束させようとすると、さらにデータを収束するための命令を作る必要が出てきます。これはプログラム全体の見通しを悪くすることがあります。
・プログラム中に使っている変数を一つ弄ったらエラーが十数個出てくる。
これはスパゲッティコードには依存しない場合が殆どですが、相当酷い時の事例としてあげてみました。値の変更ができるはずの変数の値を弄ったらプログラムがまともに動かなくなるということがあります。
---------------------------------------------------------------------
スパゲッティコードが起こす恐ろしい事は大体こんなところです。
実際はまだまだありますが、起きやすい例をまとめると上のようになります。
今回もこれぐらいで・・・