『リファクタリング(第2版)』
https://gyazo.com/4b437a06e0f0f508b4a620846a3b5cc6
第1版なのに「新装版」なのかmrsekut.icon
もう1個前になんかあったのかな
こちらはJavaらしい
2014年出版
言語はJavaScript
だけど、JS固有の話は極力減らしてるらしい
他の言語でも応用できるように
本は分厚いけど、コード載りまくりなので意外とサクサク読める
こんな感じでレシピがちょこちょこ出てくるから
ここで「ループの分離 (p.236)」をします
コードの必要な箇所のみに色がついているので読みやすい
なんか、例えば「将来的に要求が増えそうな項目」を型で定義しておくと良さそう、と思ったmrsekut.icon
そういう発想であまり型定義することはないけど
関数の戻り値になる変数は、resultと命名する
関数名がわかりやすければそれで耐えるか、たしかにmrsekut.icon
p.14の変数のインライン化する意味ある?
一時変数をとにかく減らしたいらしい
これが常に良いとはあまり思えないmrsekut.icon
名前を付けることでわかりやすくなる
キモい命名するぐらいならインライン化したほうがいいと思うmrsekut.icon
インライン化することで、修正箇所が微妙に増える
関数呼び出しのオーバーヘッド(気にするほどではない)
フレームワークが分離させないことを強制してくることもある
いや、そうでもないかmrsekut.icon
p.25~あたりの、変数を一つにまとめるやつ、意味ある #?? 関係ない者同士が「ある関数に使われるから」という理由で一つにまとめる意義があるのか?
動的型付け言語でやるとミスりそう
テストがあるならいいかもだけど
まとめることというか、renderPlainText()の引数の型の方の問題
Chap.2 リファクタリングの原則
Chap.3 コードの不吉な臭い
Chap.4 テストの構築
Chap.5 カタログの紹介
Chap.6 リファクタリングはじめの一歩
Chap.7 カプセル化
Chap.8 特性の移動
Chap.9 データの再編成
Chap.10 条件記述の単純化
Chap.11 APIのリファクタリング
Chap.12 継承の取り扱い
文献リスト
訳者あとがき
索引