鯨飲馬食

いろいろつまみ食いで勉強したことのメモ書き

「レガシーコードからの脱却」を読んだ

レガシーコードからの脱却、読み始めた時の予想通り、噛めば噛むほど味が出そうな本でした。

印象に残ったセクションをいくつかピックアップします。

7.2 完了と、完了の完了と、完了の完了の完了が違うことを知る

自分のマシンで機能するだけじゃなく、ビルドに統合され、さらに保守性が保たれた状態になるところまで行ったことを完了の意味と定義する話。

コードじゃない対象について最近考えていたこと:何らかの手順について、それを実行できるというだけでなく、次も自然と実行されるよう普段の業務フローに組み込まれていて、さらにその内容と背景が明文化され維持、改善しやすい状態になるまでやったらやりきったことにするという話との関連が見れて興味深かった。

10.3.1 テストではない

コードを書く前にテストコードを書くから、テストコードを書いた時点ではテスト対象がおらず何もテストしてないので、じゃあそれは何者なの?という話。

それが仮説だということも、最終的な役割は検証で、以後の変更やリファクタリングで動作が変化しないと保証してくれることも認識していたが、テスト対象のコードを書いた瞬間に役割が変わるという変化のタイミングのことをあまり意識できていなかった。

テストコードそれ自体はそのタイミングで変化していないのに、関係性を持つ対象コードの出現で役割ががらっと変わるというのは面白い。

13.8 2回目は適切にやる

例が1つしかない場合は具体的に書き、2番目、3番目の例が出てきたところで汎化しようという話。

最初から作り込みすぎたり、間違った抽象化の辞め時を逃してコードの見通しが悪くなっているのをたまに目にするので、早すぎる抽象化には注意を払いたい。

回想

読み始めたときにふと頭に浮かんだのは「達人プログラマー

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (347件) を見る

手元にあるのはピアソンの初版第5刷で2001年5月発行だった。アジャイルソフトウェア開発宣言が出たのが2001年なのでそれよりも前の本だったのか。

本棚から取り出してぱらぱら眺めると、ツールとか古いなというところはあるが、今でも大事なことがたくさん書いてあるのを再確認できた。

レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス