ウェブエンジニア珍道中

日々の技術的に関する経験を書いていきます。脱線もしますが助けになれば幸いです。

レガシーソフトウェア改善ガイドを読んだ

レガシーソフトウェア改善ガイド (Object Oriented Selection)

レガシーソフトウェア改善ガイド (Object Oriented Selection)

本書は古くて保守や追加開発などが大変なソフトウェアをどう改善していく上でのノウハウが書かれた本です。

著者について

クリス・バーチャルさんという方で、ロンドンのガーディアン紙(The Guardian)で、シニアデベロッパーとしてウェブサイトのバックエンドサービスを担当している人らしいです。

他に情報がないかググってみましたが、「クリストファー・バーチャル」さんというサッカー選手が出てきました。あなたではない。

疑問の答え

  • どこから手を付けていいのかわからない
  • リファクタリングが先か、テストコードを書くのが先か
  • 書き直したほうが早いんじゃないの?

システムの保守をしてると一度は疑問に思うであろう(ソースは自分)疑問に対して丁寧に解説がしてあったので、保守していく上での悩みが結構取れた感がありました。

特徴・感想

本書はソースコードリファクタリングばかりを書いた本ではありませんでした。JenkinsやAnsibleやVagrantを用いた環境構築やデプロイ、IDE(開発統合環境)やFindBugsJavaの静的コード解析ツール)を用いたコード解析など自動化の解説にも力を入れていて、楽に運用ができるようになる内容だと思いました。

「きれいになったかどうかを数値で見える化するといいよ!」や「チームでやった方がいいよ!」といったモチベーション維持のポイントも書いていて面白いです。ここからソースコードにもっと注力したい場合はオブジェクト指向の本とかエリック・エヴァンスドメイン駆動設計とか読めばいいのかな。

ソースコードに関する章もあって、規模に応じてリファクタリングとは別にリアーキテクティングとかビッグリライトがあり、どう進めるのが良いのがも解説してあります。リアーキテクティングとか知らなかったので勉強になりました。

この本では10年以上モノくらいのシステムを対象にしているかなーといった印象です。今自分が運用しているシステムは2~3年くらいのものですが、可視化などやれることは大分見つかったので良い本でした。ちなみに個人的には翻訳に違和感は覚えませんでした。

「仕事を始める日」(テイク2)にはクスっときた。

こういうガッツリした本を読み終わると達成感がありますね。次は何を読もうかな。