嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

使わざるを得ない副作用を使うと悪く言われる 2

敗因

COBOL85で、「全システム全てで使う全ての値を置くことが出来る」置き場を設けて、それ以降は全て副作用無しの関数として取り扱う事が出来る様にしても、大して良く成らなかった敗因は、

  • 「全システム全てで」にしてしまった為

だと思います。

改良案

  • 「全システムの内、『切り分け易い一部分』全てで使う全ての値を置く事が出来る」置き場を設け、
  • その置き場に値をセットする、副作用有りの関数たちと、
  • 値がセットされている事を前提に動く、副作用無しの関数たちを
  • まとめて1固まりとして扱う

様にすると、一歩前進だと思います。

全てで無く一部分なのでテストデータが作り易く、一部分なので小さいプログラムでの(全てで使う全ての値をセットする)コスト差のペナルティも減るからです。

結論

これって、オ