シリーズ修正可能なシステムのつづきです。
前回、修正可能なシステムで、修正の必要があるかないかは、
・入出力が同じ
・副作用部分が同じ
という話をかいて、副作用について、書かなかったので、今日はその話の続きです。
■副作用とは
副作用とは、あるメソッドの入力(引数)と出力(返り値)以外に、値を変更(追加、削除含む)しているところです。
多くは、ファイル、DB、メモリ(セッションや共有メモリなど)への書き出しになります。
これらの部分への操作が、副作用になります。
■副作用が同じでないといけない
当然、ファイルとか、セッションの設定内容が同じでないといけません。
ただし、ほかのプログラムで、ここを書き変えられてしまった場合、
(つまり、DBの構造が変わってしまった場合、自分はなにも変更してなくっても
修正っていうこと)
で、実は、この副作用の変更が、一番わかりずらく、変なところで、セッションの値を変えられたり、DBの項目の意味を変えられたりします。
この辺の、副作用の管理が、いちばん修正において、重要になってきます
(引数と返り値に関しては、注意がいくけど、副作用の変更までを、網羅しきれないことが多い)
ってなところです。