はじめに
自分メモ
副作用を起こす関数とは?
例えば、以下のような関数である。 つまり、値に変更が生じる関数
class A{ int count = 0; public function addCount(): void { this.count++; } }
なぜ副作用が問題なのか?
チーム開発をしている際に顕著に現れる。
例)メンバーAが開発した関数をメンバーBが使う場合
メンバーB:この関数使ったらフォーマットが変わってしもうたぁ!
メンバーC:どんまい
このようなことがあると、副作用があるかないかをソースを読むというタスクが増えることになる。
これは辛い。
どうやれば副作用による負担が減るの?
完全になくなるということはないが、副作用には法則がある。
それは、void
型が戻り値である場合はほとんど副作用のある関数になる。
つまり、副作用のある処理はvoid型の関数に切り分けて作ることである程度使う側の負担が減る
最後に
関数を作るときはある程度この辺のことも考えて作ることにしょう。