長いので章ごとにしてます。
14章 リファクタリング ー既存コードを成長に導く技ー
- 実務では未熟な設計やコードでスタートするので、この章に期待…!
14.1 リファクタリングの流れ
- また読みにくいコードが…。
- この順番通りに処置していくのがオススメとかあるのかな?
14.1.1 ネストを解消し、見通しを良くする
- せやな。
14.1.2 意味のある単位にロジックをまとめる
- せやな。
14.1.3 条件を読みやすくする
- Rubyは標準ライブラリも否定のメソッドがいっぱいあるので、扱いやすいし、真似たくなります。
14.1.4 ベタ書きロジックを目的を表すメソッドに置き換える
- プログラミングは…要約の作業かも?
Customer.isShortOfPoint
って、ちょっと微妙感ありません?PurchacePoint.isShort
とかダメですかね…?
14.2 ユニットテストでリファクタリングのミスを防ぐ
- 悪魔を呼び寄せるようなコードにはテストがない……わかる……。
- テストを書いてると、アレ?ってなって、コードを改善したくなるから、ひどくなりにくいかと思ってます。
14.2.1 コードの課題を整理する
14.2.2 テストコードを用いたリファクタリングの流れ
- あるべき構造のひな形をつくっておくのはなるほど、ちょっとよさそう…!
- ひな型のクラスに対してテストを書くのは、無駄にならなくて、精神衛生上かなりよさそうです!
- レッド、グリーン、リファクタリング!
14.3 あやふやな仕様を理解するための分析方法
- レガシーコード改善ガイドがおすすめされてる…!
14.3.1 仕様分析方法1:仕様化テスト
- テストコードって、繰り返し実行しやすいから、仕様を探索するのに使いやすいのはわかります…!
- …だけど、こんなに少ない引数のだったら、コードを読むのも苦労しなそう。
- 複雑なときもいけるのかな…?
- 繰り返しやすいから、やっぱりやりやすそうです。
14.3.2 仕様分析方法2:試行リファクタリング
- 読みやすくするためのリファクタリングかあ。
- 捨てる勇気がなかなか…。わかってはいるんですが…。
14.4 IDEのリファクタリング機能
- IDEのリファクタリング、まだあんまり使ったことないんですよね…。
- IntelliJ IDEA、よさそうですが、高いんですよね…。
- ひとつのファイル内なら、copilotにやってもらえるかも。(練習中)
14.4.1 リネーム(名前の変更)
- これ、めっちゃほしい…けど、VSCodeでRuby使ってるときにはないようで…?
- 「シンボルの変更」を試したけど、同一ファイル内しか…。
- 結局、grepして置き換えかあ…。
- それでも、レビューとテストでガードしてれば、ある程度怖くないかも。
14.4.2 メソッド抽出
- こういう細かいのも、やってもらえるならアリなのかなあ?
14.5 リファクタリングで注意すべきこと
- 速いテストと小さい改善は相性がよさそう…。
- テスト、前50分くらいかかってました…。今25分…。
14.5.1 機能追加とリファクタリングを同時にやらない
- 同時にやってしまう理由は…?
- プルリクエストがマージされるまでの時間がかかってしまうこと?
- ほかにはなにかありそう?
14.5.2 スモールステップで実施する
- コミットログでストーリーを語る…やりたいけどなかなかできないです><
14.5.3 無駄な仕様は削除することも視野に
- やるやる、めっちゃやる!