Unlearning Anarchism
Hackability を損なう Bureaucratic だと思って避けてきた習慣、具体的には可視性をきちんと private にするとか、を見直す時期が来た気がしている。コードレビューで指摘されることが多いし、でかいコードだと可視性を厳しくした方が逆にコードをいじりやすい 。その箇所に依存されている心配がなくなるから。
もともとは「自分のチームしからさわらないコードなら可視性厳しくしなくてもどうせ悪いことされないよコードレビューもあるし」という言い分があった。その一方でいま自分が書いているコードへの変更を将来自分以外の誰かがレビューする可能性はけっこうある。そして「チームしかさわらないコードなら最初は private にしといて必要に応じて public にすればいいじゃん」という主張も等しくありうる。
一番の問題だったテスト可能性については、C++/GUnit では FRIEND_TEST なる便利マクロで解決済みなのだった。Java もリフレクションがある。もう悪ぶって可視性全開にするのはやめ、おとなしく隠せるものは隠すよう自分を再教育しないとなあ。