コーディングレビュー

ときおり,人が書いたプログラムをコーディングレビューすることがあるんですが,実は苦手です.
何が苦手かというと,とりあえずこのあたりがイマイチだな,というのがあったとき,じゃあどうするの?ってところで困ってしまう.同時に3つくらい修正案があって,さらに修正しない,っていう選択も含めて合計4つあるところから,これが正解……となかなかいかない,ってところにあります.
例えば.あるクラスの中にCreateTempFolderみたいなメソッドがあったとしますよね.そのメソッドの中では設定ファイルを読み込んで作成するフォルダ名を取得してフォルダを作成する,みたいな.なんか,メソッド名が気に入らなくなったりします.これって手続き型っぽい名前だよね,とか.オブジェクト指向だったらやっぱり,TempFolder.Createでしょう,とか.すると設定ファイルを読み込むのはコンストラクタで行なうのが自然で,ほかにもExistとかDeleteとかメソッドがあって,ついでにDeleteでフォルダの中にファイルが残ってたらどうしよう,とかとりとめもなく考えますよね.
そうすると,Folderクラスがあってそれを継承するようにするか,委譲で行くか,あるいは使用するだけにするか,とか考えますよね.一般的には結合度は低いほうがよいでしょうから,使用する関係にしましょうか,といった感じで5秒くらい考えますよね.
そこまで考えて,でもこんな調子でクラスを増やしていったら,クラスの数が多くなりすぎちゃって,管理するのが大変かな?とか思って,やっぱりCreateTempFolderでいいんじゃないか?とか考えて,でもテストユニットで走らせることを考えたら,ディレクトリ操作とかは外に出して,テストユニット走らせるときにはその部分をモックにしたほうがいいだろうし……みたいなことを10秒くらい考えますよね.
……終わらないわけです.だったらペアプロしながらいろいろ試して,フィードバックを確認しながらのほうが,早いし,妥当な解に辿り着きそうな気がする,というところで,だんだん嫌になってくるということです.


他にも嫌いな理由があって,それはまた今度…….