/note/tech

メソッドのprefixをsetではなくupdateやchangeに変えてもthisの値を破壊していることは変わりない

メソッドのprefixをsetではなくupdateやchangeに変えてもthisの値を破壊していることは変わりない。よりよい名前としてはわかるけど、意味は同じなのでsetterを排除できていないと思いますよ。戻り値として新しい状態のインスタンスを返すメソッドに変えてsetterを排除するならわかるけど。

@j5ik2o

既存のインスタンスを変更するのと新しいインスタンスを返却するの、具体的にどういう利益が発生するのか実はよくわかってない。

生存期間が長いインスタンスの内容が自由闊達に書き換わってしまうと、それは実質グローバル変数みたいなものなのでデバッグが困難になるというのは分かる。

ならば、生存期間が短いインスタンスなら別に中身を更新されてもあまり問題にならないのでは?感はある。