はじめに
仕事では2022年までは主にバックエンドサービスの開発リードをしていたが、今後はソフトウェアアーキテクトとしてサービス全体の設計や横断的なシステムの設計をメインでやっていく。自分で悩んだ時の辞書としての役割と、おすすめの本を求められたときのリストとしての役割を兼ねて今まで読んだシステム設計系の本をまとめる。
チームの移り変わりはあったものの、基本的に以下のような環境で働いてきたので、そこで役立つ情報に偏ってる可能性有り。
1部でアーキテクトは何を考える必要があるのか説明され、2部で様々なパターンを学ぶことができる。3部ではアーキテクトが効果的に働くための方法を知ることができる。図や具体例が多くて読みやすくかつ網羅的なのでソフトウェア
アーキテクチャとは何か知りたい人にオススメ。
Clean Architecture 達人に学ぶソフトウェアの構造と設計
多数の設計原則を説明した上でメンテナブルでスケーラブルなクリーン
アーキテクチャを設計する実践的な方法を学ぶことができる。開発チームで設計原則に基づいて意思決定することも多いのでその原則を学ぶだけでも価値がある。自分の場合、肝心の
アーキテクチャ部分は社会人一年目だといまいち価値が理解できなかったので、あとから読み直した。
Design It!
デザイン思考に基づいて良い
アーキテクチャをどう作り上げるかステップ
バイステップで説明される。”第Ⅲ部 アーキテクトの道具箱”ではどうやって問題を理解し、設計を可視化し、評価するかについて、様々なアクションで提案されるので、設計プロセスに困ったら目を通し直す価値あり。
ソフトウェアシステムアーキテクチャ構築の原理
とても分厚い上にあまりわかりやすい具体例はない。しかし、
アーキテクチャのプロセス、考えなければならないことが網羅的にモレなく記述してある。自分の場合、深く設計が必要なときは一度は開く良書となっている。
データ指向アプリケーションデザイン
直接的に
アーキテクチャ設計を取り扱ってはいないが、設計内に含まれるであろうテク
ノロジーの特性や
トレードオフについて学ぶことができる。特に分散システムについての
トレードオフは深く記述されている。アプリケーション内だけでなく、システム全体を設計するのであれば是非読んでほしい。
マイクロサービス
マイクロサービスについて、利点欠点、何をするべきか、どう進めるべきかを幅広く説明している良書。 自分が読んだのは1st edition。 2nd editionはKubernetestとかマイクロフロントエンドとか流行りに合わせてかなり情報が追加されている。また、構成も整理されていて読みやすそう。
マイクロサービスパターン 実践的システムデザインのためのコード解説
具体的なエピソードに沿って、具体的な設計とコードを使ってパターンを解説してくれる。理想的なマイクロサービスを作る難しさを痛感した。
"ソフトウェア
アーキテクチャの基礎"の作者らによる続編。マイクロサービスで出てくる様々な
トレードオフに対してどう考えるかを教えてくれる。設計に関する引き出しを増やし、整理してくれる良書だった。
DDDの哲学が学べる。一回で理解しきれなかったが、実践や他の本を経て戻ってくるとよくまとまっている印象を受けた。実装の具体例は下の2冊で学んだ。
各パターンの意味や実装例がとてもわかりやすいし読みやすい。先にこの本で概要を掴んでから他のDDD本を読みたかった。
現場で役立つシステム設計の原則
特にタイトルにはDDDと入っていないが、DDDを用いた設計がメインの本。
Java,
Spring Frameworkを用いて
オブジェクト指向を突き詰めたような本だった。保守しやすい理想的なアプリケーションの書き方の参考にはなるが、DDD初心者には上2冊のほうがオススメ。
要件定義
はじめよう!プロセス設計 ~要件定義のその前に
はじめよう! 要件定義 ~ビギナーからベテランまで
はじめよう!システム設計 ~要件定義のその後に
要件定義が何かもわかっていない最初の段階で読んだ。要件定義とシステム設計の流れが丁寧に説明されているので新卒にもオススメできる。要件定義から自分でしないとしても、どういう流れで要件が出来上がるか知ることで要件を適切に満たす設計ができるようになるので早めに学ぶと良い。
Web, Web API
Webを支える技術
Webまわりの基本的な技術が丁寧に説明されている。ちょっと古い情報、あまり仕事で出会わない技術も入っているが、REST周りの情報の網羅性が高いので今でもオススメできる。
プロになるためのWeb技術入門
「Webを支える技術」と近い範囲もカバーしているが、この本を読むとWebアプリケーションがどう動くかがより理解できる。
Web API: The Good Parts
Web
APIに特化した本。実践的で網羅性が高く、
API設計初心者のときは何度も参照した。仕事で
API設計するならオススメ。
おわりに
新しいバージョンが出てるものや、読んでから時間が経っているものは読み直したい、、、。