背景
エンジニアとして4年目を迎えようとしており、新規開発やリファクタ等をやるうえで目指すべき理想のアーキテクチャを明確にすべく、下記の本を購入。
1か月かけて読み切ったので、購入を検討される方向けに感想をメモ。
概要
アーキテクトとして必要な知識を丁寧に丁寧に今風の視点から解説した本。
実践的なアーキテクチャの解説から関係者とのコミュニケーションまで様々な角度から知識の説明がなされ多くの場面で読み返したいと感じた。
本書に実際のコードはあまり登場せず、詳細な実装よりも高レベルなアーキテクチャパターンの説明にも重点を置いてる。
良かった点
伝統から先端までアーキテクチャパターンを広く説明している。
本書の中盤では、伝統的なレイヤードアーキテクチャから流行り?のマイクロサービスまで、パフォーマンス・コスト・スケーラビリティ等様々な観点から、多くのページを割いて評価している。
これ一冊を読んでしまえば割と多くのパターンをカバーしてしまえる。良いコード/悪いコードで学ぶ設計入門や現場で役立つシステム設計の原則などの設計入門的な書籍を読んだ後にこの本を読めば新米アーキテクトとして知っておくべき最低限の知識は補完できるのではないだろうか。
アーキテクトの仕事の進め方を具体的な事例で紹介している
開発者とどんな関係性であるべきか、アーキテクチャの理解を進めるためのプレゼンテクニック、ビジネス側との交渉方法など、分析手法からちょっとした言葉遣いまでアーキテクトの具体的な業務の進め方を説明している。
自身が今まで失敗してきた事例はおおむねこの本にアンチパターンとして言及され、対処法まで細かく説明されているので、アーキテクトのみならず開発者も業務に入る前に通読しておくとストレスが少ない。
用語の説明など初心者への導入部分が手厚い
本書の序盤では、そもそもアーキテクチャとは?、何が良いアーキテクチャなのか?など定義や用語の説明に全体の1/3ほどのページを割いており、アーキテクト駆け出しの私でも序盤の説明があるおかげで本書を通読することができた。
また意外と図表も多く用いられており、「この説明図にする必要ある?」と感じるほどだ。(しかしこれが記憶の定着に役立つのかも)
注意が必要な点
本書は具体的なコードはほとんどなく、アーキテクチャの抽象的な説明(ex. イベント駆動)が多いので具体例は引用されているリンクやGitHub上のコードを探して読むと良い。
また丁寧に用語の説明があるとはいえ、私の場合は初めて聞く技術や概念も多かったので、読書中はnotionに知らない単語をメモしつつ適宜調べて文章への理解度を深める工夫をした。
まとめ
今回は「ソフトウェアアーキテクチャの基礎」を読んだ感想を述べた。
場面に応じて読み返すことで、より精密な理解を得られるので普段の業務中に手元に置いておきたい。