レガシーコードからの脱却、読み始めた時の予想通り、噛めば噛むほど味が出そうな本でした。
印象に残ったセクションをいくつかピックアップします。
7.2 完了と、完了の完了と、完了の完了の完了が違うことを知る
自分のマシンで機能するだけじゃなく、ビルドに統合され、さらに保守性が保たれた状態になるところまで行ったことを完了の意味と定義する話。
コードじゃない対象について最近考えていたこと:何らかの手順について、それを実行できるというだけでなく、次も自然と実行されるよう普段の業務フローに組み込まれていて、さらにその内容と背景が明文化され維持、改善しやすい状態になるまでやったらやりきったことにするという話との関連が見れて興味深かった。
10.3.1 テストではない
コードを書く前にテストコードを書くから、テストコードを書いた時点ではテスト対象がおらず何もテストしてないので、じゃあそれは何者なの?という話。
それが仮説だということも、最終的な役割は検証で、以後の変更やリファクタリングで動作が変化しないと保証してくれることも認識していたが、テスト対象のコードを書いた瞬間に役割が変わるという変化のタイミングのことをあまり意識できていなかった。
テストコードそれ自体はそのタイミングで変化していないのに、関係性を持つ対象コードの出現で役割ががらっと変わるというのは面白い。
「テストではない」しっくりきた。テストコード自体は最初それが仮説だった時から存在しているが、それ自身が変わらなかったとしてもテスト対象のコードが現れることでテスト(ふるまいの検証)に位置付けが変化する #レガシーコードからの脱却
— Yoichi Nakayama (@yoichi22) October 24, 2019
13.8 2回目は適切にやる
例が1つしかない場合は具体的に書き、2番目、3番目の例が出てきたところで汎化しようという話。
最初から作り込みすぎたり、間違った抽象化の辞め時を逃してコードの見通しが悪くなっているのをたまに目にするので、早すぎる抽象化には注意を払いたい。
早過ぎる最適化の問題は良く聞くけど、早過ぎる汎化の問題ってあまり聞かないのは何でかな?問題自体はたまに見るので、違う言葉で表現されてるのかな?
— Yoichi Nakayama (@yoichi22) October 29, 2019
回想
読み始めたときにふと頭に浮かんだのは「達人プログラマー」
- 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/11
- メディア: 単行本
- 購入: 42人 クリック: 1,099回
- この商品を含むブログ (347件) を見る
手元にあるのはピアソンの初版第5刷で2001年5月発行だった。アジャイルソフトウェア開発宣言が出たのが2001年なのでそれよりも前の本だったのか。
本棚から取り出してぱらぱら眺めると、ツールとか古いなというところはあるが、今でも大事なことがたくさん書いてあるのを再確認できた。
「レガシーコードからの脱却」まだ読み始めたところだが、若い頃「達人プログラマー」を初めて読んだ時を思い出した。何も分かってない時に読み、成長とともに何度も戻ってきて読み返した本。この本もそういう本になりそう(つまりまわりの若者にオススメもするが、自分が何度も読んで成長する!)
— Yoichi Nakayama (@yoichi22) October 7, 2019
読了。読み始めた時の予想通り、噛めば噛むほど味が出そうな本だった。 #レガシーコードからの脱却
— Yoichi Nakayama (@yoichi22) October 30, 2019
レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス
- 作者: David Scott Bernstein,吉羽龍太郎,永瀬美穂,原田騎郎,有野雅士
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/09/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る