Magnolia Tech

いつもコードのことばかり考えている人のために。

「データ指向アプリケーションデザイン」を読んだ

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

今年の夏休みの課題図書、「データ指向アプリケーションデザイン」をざっと読んだ。ところどころメモを取りながら進めては行ったけど、さすがに600ページ超えの厚さで全部を同じ集中度では読めなかったので、あまり馴染みのないストリーム処理あたりはかなりの流し読みになってしまった。たぶん2周目が必要。

書籍全体としては分散型のデータ処理基盤を設計するにあたり、どのような課題が有り、現実のソフトウェア(ここが重要!)がどのようにそれを解決しているのか?ということをありとあらゆるテーマについて語り尽くした本。これ以上は、もう実際に運用してみないと分からないレベルだと思う。

かなり分厚い本だけど、まずは第一章「データシステムの基礎」だけでもぜひ読んだ方がいい。「信頼性」「スケーラビリティ」「メンテナンス性」という現代のソフトウェアに求められる要素がコンパクトにまとめられている(ここだけなら20ページくらい)。

データストアよりアプリケーションの方が得意な人は引き続き「2章データモデルとクエリ言語」の「4章 エンコーディングと進化」を先に読むと入りやすいかも。JSONやProtocol Bufferなどのアプリケーションレイヤーの人に馴染みのある話題が出てきます。

夏休みシーズンももう終わりですが、数週間かけて少しずつじっくり読むには最適な本なので、秋の夜長に向けてぜひ読んでみて下さい。

なお、本書の名言としては、「最大限に努力しても、人間には信頼性がないことが知られています」という所ですね:)