Design It!
デザインイット
プログラマーのためのアーキテクティング入門
- 著者:
- Michael Keeling / 島田 浩二(マイケル キーリング / シマダ コウジ)
- 出版社:
- オライリー・ジャパン
- 出版日:
- 2019年11月23日頃
- ISBN:
- 9784873118956
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
ソフトウェアアーキテクトのビギナーに向けて、アーキテクトの役割から、アーキテクトの仕事に必要な知識を網羅的に解説した書籍です。アーキテクチャ設計のコンテキストが現代のソフトウェア開発に合わせられています。
技書の森解説
ソフトウェアアーキテクトの仕事は、コードを書く技能を積み上げれば自然に身につくものではありません。『Design It!』 (Michael Keeling 著、島田浩二 訳、オライリー・ジャパン発行、オーム社発売、2019 年 11 月刊) は、副題「プログラマーのためのアーキテクティング入門」のとおり、設計スキルを成長させたいプログラマーに向けて、ソフトウェアアーキテクチャの基礎とデザイン思考の考え方から始め、ソフトウェアアーキテクトとしてチームと共に優れたソフトウェアを作り上げていく方法を包括的に解説する入門書です。原書は同名の Design It! で、日本語版には平鍋健児氏による日本語版序文が収録されています。版元は本書を読むことで学べる内容として、適切なステークホルダーを特定してニーズを理解する方法、アーキテクチャ上重要な要求に基づいて技術やアーキテクチャを適切に選択する方法、アーキテクチャを軽量かつ効果的に評価する方法、チームのアーキテクト力を高める方法を挙げています。
3 部 17 章の構成、Lionheart プロジェクトを追いながら学ぶ
構成は 3 部 17 章に付録 A を加えたものです。第 I 部 (1 章と 2 章) でソフトウェアアーキテクトが行うこと、ソフトウェアアーキテクチャとは何か、デザイン思考の 4 つの原則と Think、Do、Check の回し方を押さえます。第 II 部 (3 章から 13 章) が本体で、デザイン戦略を立てる、ステークホルダーに共感する、アーキテクチャ上重要な要求を掘り下げる、アーキテクチャを選ぶ、パターンで土台を作る、意味のあるモデルで複雑さを扱う、アーキテクチャデザインスタジオを開く、設計判断を可視化する、アーキテクチャを記述する、アーキテクチャに通知表をつける、チームのアーキテクト力を強める、という順に設計の営みを一巡します。1 章のケーススタディで登場する Lionheart プロジェクトは第 II 部の各章末に「ここまでのあらすじ」として引き継がれ、13 章の「大団円」まで通しで進むため、抽象的な手法を一つのプロジェクトの判断の流れとして追えます。第 III 部「アーキテクトの道具箱」 (14 章から 17 章) は、問題理解、潜在的な解決策の探索、設計をタンジブルにする、設計の選択肢の評価という 4 つの目的別に 38 のアクティビティを収録しています。
38 のアクティビティとパターンが、設計の進め方を具体化する
アーキテクチャ設計が難しいのは、正解のパターンを知らないからというより、いつどれだけ設計に時間を使い、誰の要求を聞き、どう選択肢を比べて決め、決めたことをどう伝えるかという進め方に定型がないからです。本書はここに手順を与えます。3 章の節題「どれくらい前払いの設計を行うかを決める」「リスクに道案内させる」が示すように、設計に投じる時間はリスクを基準に決める考え方を取り、5 章では制約、品質特性、機能要求の分類を掘り下げて ASR ワークブックを組み立てます。7 章はレイヤー、ポートとアダプター、パイプとフィルター、サービス指向アーキテクチャ、パブリッシュ・サブスクライブ、共有データ、多層、コンピタンスセンター、オープンソース型の貢献、巨大な泥団子を土台となるアーキテクチャパターンとして扱い、既存のパターンに当てはまらないときに新しいパターンを発見する節も置いています。ドメインのロジックを外部技術から切り離す ポートとアダプター のような構造のパターンと、巨大な泥団子のような避けたい状態を同じ章で並べて見られるのは、設計の選択肢を比較するうえで有用です。第 III 部の 38 のアクティビティには、判断の理由を残す アーキテクチャデシジョンレコード、コンテキスト図、イベントストーミング、リスクストーミング、意思決定マトリクス、シナリオウォークスルーなど、設計会議やレビューにそのまま持ち込める作業単位が並びます。
設計を任され始めたプログラマー向けの前提と、向かない期待
版元公式が対象に挙げるのは設計スキルを成長させたいプログラマーで、版元の紹介文ではソフトウェアアーキテクトのビギナーに向けた書籍と位置づけられています。目次に特定の言語やフレームワークを扱う章はなく、内容の中心は要求の掘り下げ方、選択肢の決め方、記述と評価の仕方です。そのため、チームで開発した経験があり、ステークホルダーマップやビジネス目標の発見、聴衆に配慮した記述といった項目を自分の現場に重ねて読める人ほど、得るものが具体的になります。逆に、マイクロサービスやクラウドサービスの具体的な構築手順、特定技術の設計レシピを期待する読者には向きません。2019 年刊ですが、扱うのは技術の世代に左右されにくい設計の進め方であり、版元の紹介文もアーキテクチャ設計のコンテキストを現代のソフトウェア開発に合わせていると説明しています。設計の本全般の読む順番を考えたい人は、設計 / アーキテクチャ本ガイド と併せて位置づけを確認すると選びやすくなります。
設計の判断をチームに説明する場面が増えてきたプログラマー、レビューで構成の理由を言葉にできず悔しい思いをしたことがあるエンジニアにとって、本書は最初の設計会議からアクティビティを試せる実践的な一冊です。アーキテクトという役割を肩書きではなく、チームで設計を進める技能として身につけたい人に、堅実な出発点になります。
言及した記事 (6 件)
非エンジニアサイドに技術的負債や設計を説明するノウハウ
♡ 516DDD, 設計学びなおしで読みなおしたい本 2023 秋
♡ 29読書, まとめソフトウェア設計の本質: 5冊の名著から学ぶ「変更容易性(ETC原則)」
♡ 1オブジェクト指向, 設計, 技術書, アーキテクチャ「Design It!」を読んで学んだアーキテクトのデザインマインド
♡ 0本, アーキテクト『「The Clean Architecture」がWebフロントエンドでしっくりこないのは何故か - 制約から考えるアーキテクチャとテスト』を聞いたメモ
♡ 0アーキテクチャ, フロントエンド【2021→2022版】ソフトウェアアーキテクチャ・設計トレンドの変化まとめ
♡ 0設計, アーキテクチャ, ソフトウェア開発