ソフトウェアテストの基礎はソフトウェアテストの教科書によって理解できたので更に深堀りしたいなと思って社内のおすすめ本一覧にあったこの本を読んだ。
気づきがあったのは、このツイートに書いてることで複雑度が高くてhotspotが高いコードはそのままでもバグが起きる場所なんだから早めにリファクタリングしたほうがいいみたいなの書かれてるのはなるほどと思った。
ソフトウェア品質を高める開発者テストを読んでいるのだけど、複雑度が高くhotspotも高いコードはそのままにしててもバグは出るのでリファクタリングしたほうがいいって書いててなるほどと思った
— ひさいち (@hisaichi5518) 2021年12月26日
と書いてて思ったけど、前職でAndroidアプリをリファクタリングしているときは機能追加や変更をする場所からリファクタリングして、リファクタリングが終わったあとに機能追加や変更をしていた。一気にリファクタリングとか出来ないからそうしてたんだけど間違えてなかったんだなと思った。実際かなり早く機能追加の実装が終わったりしてたし。「ソフトウェア品質を担保するにはリファクタリングは必須」と書かれていて僕もそれに同意見でとにかくリファクタリングが重要だと思う。
ただこんな感じでよくわからないところもある。
ソフトウェア品質を高める開発者テスト読んでるけど、クラス図とシーケンス図は書いてくださいって書かれてるけどなんで必要かわからない。クラス図はビッグクラスを防ぎリファクタリング効果の見える化って書いてるけどメトリクスじゃ駄目なのかなあ
— ひさいち (@hisaichi5518) 2021年12月27日
クラス図とか図を書く意味が正直よくわからなくて、実装より前に書くならテストを書いたほうが良いのではないかと思ってしまう。どうなんだ。このあたりはもしかしたらTDDの話につながっていくのかもしれない。
ちなみにこの本は、Kindleに最適化していたので読みやすかった。あとリファクタリングだけじゃなくSHIFT LEFTとかにも言及していたりしてよかった。
そして例のごとく知ってそうなところは飛ばした。