ちょっとずつ読んでいる Tidy First? の第一部「整理手法」についてのメモ
本の序文の話は以下に書いた
【技術本まとめ】Tidy First? をちょっとずつ読む - UGA Boxxx
第1部「整理手法」
リファクタリングをしていくときのちょうど良い小さな手法をここでは紹介してる
簡単にまとめる
ガード節(Guard Clauses)
・if文のネストを深くしないようにする(早期リターンの話だと思う)
・https://github.com/Bogdanp/dramatiq/pull/470/filesデッドコード
・不要なコードは削除しましょう
・バージョン管理しておけば良い対称性の正規化 コードの書き方に一貫性をもたせよう
新しいインターフェース・古い実装
・複雑で紛らわしいインターフェースを呼び出す必要がある時、呼び出したいと思える簡潔なインターフェースを作り、それを呼び出すようにする
・新しいインターフェースは単に古いものを呼び出すだけでいい(全て移行したら実装をインライン化する)読む順序
・ファイル内のコードを読み手が読みやすい順序に並び替えよう
・この時に、読んでて難解だと思うところのリファクタリングは極力避ける(あとにする)凝集順序
・影響しあっている結合したコードを変更する場合、変更する前にそれらを近くにおく(同じディレクトリ、同じファイル、同じリポジトリ)宣言と 初期化を近くにおく、一緒に移動する
変数の説明
・長い式、長い表現は変数に切り出すなどの整理を検討する定数の説明 数字、文字列は定数に切り出す
明示的なパラメータ
・params.aやparams.bのように渡された引数をまま付かないようにする
・foo(params.a, params.b)のようにして、パラメータを明示するチャンクステートメント
・コードの大きな塊を読んで、部分の間に空白行を入れる抽出ヘルパー
・共通して変更する必要がある処理を抽出してヘルパー関数を作る1つの山
・コードが分割されすぎて理解しにくい場合は、一度集めて1つのコードにしてから整理するコメントの説明
・コードを読んでいて、そういうことかと思ったらコメントを書く冗長なコメントを削除する
感想
割とリーダブルコードに書いたるような一般的な内容だった
第二部はこれらの小さなリファクタリングをどうやって日常で管理していくかの話
そのあたりも興味あるので読んでいきたい