個人的なまとめ個人的なまとめ読者になる個人的なまとめ2014-02-05リファクタリングとテストと私テストわかってたことだけど改めて気づいたのでまとめましたポイントは目的をもってリファクタリング一気になおしたい病を抑えて細かくリファクタリングテストコードがシンプルなものはいいコードであることが多いプログラム性能が悪くなってきたので性能改善のためにリファクタリングをすることになりました。何が遅いかというのはNewRelicを使ってわかってました。ビバNewRelic。どこに注力してなおすか決めないとグダグダになるのは見えてたのでどうなったらいいのか?というゴールを決めましょう。今回はNewRelicとプログラムを見ると特定の条件を満たすと、DBへのアクセス回数が多いのがわかったので、そこをどう減らすかというのに注力することに決めました。SQL周りが絡んでくることと、かなり昔に作られてたコードだったので、最初に修正後の理想の状態の擬似コードをメモ書きしたら、複数の呼び出し元の処理まで変更がはいって(そしてテストコードがない)と数珠つなぎになってきました。この時点で理想の状態を一度横におきました。今の動きを無視してもいいけど、今のプログラムはそれなりに動いてるし。現状動くテストコードを書いてたらそれ自体が冗長になってきました。モックで振るまいを定義したら、モックの量が予想以上に増えてきたのです。ループの中で全く同じモック(例:キャッシュから定数値を取得する)を何度も呼び出す必要が出てきました。自分が書いたコードが綺麗かどうかというのはレビューやCheckStyle,FindBugsとかでも潰せるけど、テストコードがシンプルというのもまた1つの指標なんだなーと改めて実感。10twitterはてなブログをはじめよう!hs_hachiさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。