Yuki Watanabe's Blog

Yuki Watanabe's Blog

エンジニアリングと子育てについて

『データベース・リファクタリング』を読んだ

『データベース・リファクタリング』を読んだ。 最近は書籍の感想をXに投稿することが多いのだけど、本書はあまりにも良い内容だったので感想記事も書くことにした。

読み初めの動機

業務でCloud SpannerやBigQueryのスキーマ設計について検討する過程で、データベース関連の書籍を読み漁っていた。 この過程で読んだ(こちらも良書だったのだが)『失敗から学ぶRDBの正しい歩き方』にて本書『データベース・リファクタリング』が紹介されており、興味を持った。

本書は既に絶版であり売価は定価の2倍ほどで購入するか少し迷ったものの、以前8,800円で購入した『リファクタリング:Rubyエディション』は価格以上の価値をもたらしてくれたことを思い出し、購入に踏み切った。

感想

本書を読んで一番良かった点は、データの移行業務(スキーマの更新、データのマイグレーションどちらも移行業務と表現する)を自信を持って行えるようになったことである。 ソフトウェアエンジニアとして働く上で、データ移行の業務を行うことは誰しもあると思うが、この移行作業は一定のリスクを伴うものでもある。 私はこれまでデータ移行に関して体系だった情報を得たことがなかったため、都度移行方法を調べながら手探りで行っていた。

このデータ移行に関して、『データベース・リファクタリング』はあらゆるパターンとその解法が解説されている。 具体的には、大半のリファクタリングパターンについて以下の構成で記されている。

動機やトレードオフについても記されているため、自分が関わる案件と比較しながらどういった方法がベストかを判断するのに活用できる。少なくとも、本書を読む前と比べると自分の考えに自信が持てるようになった。

一方で私が関わる案件とは親和性が低い技術も多く紹介されていた。トリガーやストアドプロシージャ、計算カラムの利用はそもそもRDMSによって使えなかったりする。使えたとしても、アプリケーション側の責務と捉えることもできるため、使わないケースも多いだろうと想像する。

最後に

リファクタリング系の書籍は、『リファクタリング(第2版)』、『リファクタリング:Rubyエディション』に続いて、『データベース・リファクタリング』が3冊目だったが非常に良い内容だった。 マーティン・ファウラーさんの書籍はどれも学びが多いため、他にも読んでいきたい。とはいえ日本語訳されている書籍は多くはないため、いずれは原著を読む必要があるため少し腰が重い。