この注文でお急ぎ便、お届け日時指定便を無料体験
Amazonプライム無料体験について
¥4,180 税込
ポイント: 126pt  (3%)  詳細はこちら
無料配送4月6日 日曜日にお届け
詳細を見る
または 最も早い配送 明日 4月5日にお届け(8 時間 19 分以内にご注文の場合)
詳細を見る
在庫あり。 在庫状況について
¥4,180 () 選択したオプションを含めます。 最初の月の支払いと選択されたオプションが含まれています。 詳細
価格
小計
¥4,180
小計
初期支払いの内訳
レジで表示される配送料、配送日、注文合計 (税込)。
出荷元
Amazon.co.jp
Amazon.co.jp
出荷元
Amazon.co.jp
支払い方法
お客様情報を保護しています
お客様情報を保護しています
Amazonはお客様のセキュリティとプライバシーの保護に全力で取り組んでいます。Amazonの支払いセキュリティシステムは、送信中にお客様の情報を暗号化します。お客様のクレジットカード情報を出品者と共有することはありません。また、お客様の情報を他者に販売することはありません。 詳細はこちら
Kindleアプリのロゴ画像

無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません

ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。

携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。

KindleアプリをダウンロードするためのQRコード

著者をフォロー

何か問題が発生しました。後で再度リクエストしてください。

ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ 単行本(ソフトカバー) – 2022/3/8

5つ星のうち4.4 118個の評価

{"desktop_buybox_group_1":[{"displayPrice":"¥4,180","priceAmount":4180.00,"currencySymbol":"¥","integerValue":"4,180","decimalSeparator":null,"fractionalValue":null,"symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"R5IBm%2FOvpdAL496wiCHk6XAmCEomkdly%2F8dstG9rwFD3NBPrrqvXEvAZGNju5czFCifTHnvFMoEk3IViac39sad8VLW58Zjgy9V03eoXdUDG9HwqqHHbH8CaHfJIcUBigkUL%2FbhRx5Y%3D","locale":"ja-JP","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}]}

購入オプションとあわせ買い

ソフトウェアアーキテクチャとは、ソフトウェアシステムの成功に欠かせない重要な土台です。そのためソフトウェア開発者には、効果的なアーキテクチャを実現するスキルが求められます。本書は、そうした効果的なアーキテクチャを設計、構築、維持するアーキテクトになるために必要なスキルや知識を、現代的な視点から整理して包括的に解説する書籍です。
ソフトウェアアーキテクチャの定義から、アーキテクトの役割、モジュールや結合、アーキテクチャスタイルといったアーキテクチャ設計の基礎、チームやステークホルダーと効果的にコラボレーションしていくために必要なソフトスキルまで、さまざまなトピックについて実践的な例とともに説明します。
最大10%ポイント還元:
紙書籍 まとめ買いキャンペーン

よく一緒に購入されている商品

対象商品: ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ
¥4,180
最短で4月6日 日曜日のお届け予定です
在庫あり。
この商品は、Amazon.co.jpが販売および発送します。
+
¥4,180
最短で4月6日 日曜日のお届け予定です
在庫あり。
この商品は、Amazon.co.jpが販売および発送します。
+
¥5,060
最短で4月6日 日曜日のお届け予定です
在庫あり。
この商品は、Amazon.co.jpが販売および発送します。
総額: $00
当社の価格を見るには、これら商品をカートに追加してください。
ポイントの合計: pt
詳細
追加されました
一緒に購入する商品を選択してください。

商品の説明

著者について

Mark Richards(マーク・リチャーズ):経験豊富な現場アーキテクト。アーキテクチャや設計、マイクロサービスをはじめとする分散アーキテクチャの実装に従事している。開発者がソフトウェアアーキテクトになるための道のりを支援するWebサイトであるDeveloperToArchitect.comの創設者。

Neal Ford(ニール・フォード):ThoughtWorksのディレクター、ソフトウェアアーキテクト、ミームラングラー(役職名。情報・文化の遺伝子体現者の意)。ThoughtWorksはエンドツーエンドのソフトウェア開発とデリバリーに特化したグローバルITコンサルタント会社。ThoughtWorksに入社する前は、ソフトウェアのトレーニングと開発で広く知られるThe DSW Group, Ltd.でCTOを務めていた。

登録情報

  • 出版社 ‏ : ‎ オライリージャパン (2022/3/8)
  • 発売日 ‏ : ‎ 2022/3/8
  • 言語 ‏ : ‎ 日本語
  • 単行本(ソフトカバー) ‏ : ‎ 436ページ
  • ISBN-10 ‏ : ‎ 4873119820
  • ISBN-13 ‏ : ‎ 978-4873119823
  • 寸法 ‏ : ‎ 24 x 19 x 2.5 cm
  • カスタマーレビュー:
    5つ星のうち4.4 118個の評価

著者について

著者をフォローして、新作のアップデートや改善されたおすすめを入手してください。
島田 浩二
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

1978年、神奈川県生まれ。電気通信大学電気通信学部卒業。2001年に松下システムエンジニアリング株式会社入社。札幌支社にて携帯電話ソフトウェアの開発業務に従事した後、2006年に独立。2009年に株式会社えにしテックを設立し、現在に至る。2011年からは一般社団法人日本Rubyの会の理事も務めている。

カスタマーレビュー

星5つ中4.4つ
118グローバルレーティング

この商品をレビュー

他のお客様にも意見を伝えましょう

上位レビュー、対象国: 日本

  • 2022年5月6日に日本でレビュー済み
    ソフトウェアアーキテクトとはどういう役割か、どうあるべきかを記した著作。
    ソフトウェアアーキテクトは、ソフトウェアーキテクチャの技術的な側面を理解するだけではなく、様々なステークホルダに自身が選定したアーキテクチャを効果的に伝えるのに必要な主要なコミュニケーションスキルとソフトスキルも備えていなければならない。なぜならば、アーキテクチャの提案をステークホルダに説明するときには常に異議が唱えられるためだ。そのため、自己で選定するアーキテクチャの引き出し、リスク分析技術など技術的内容は当然、企業の政治的状況までを理解し、効果的にステークホルダを説得しその状況を切り抜ける必要がある。さらには、決定したソフトウェアアーキテクチャを開発チームと共有し、リーダシップ性を発揮して効果的なチーム作りを導くスキルも求められている。

    責任のロールの粒度は多少異なるが、情報処理技術者試験でのシステムアーキテクトの立場の人が一番役割として近いのではないだろうか。プロジェクトや規模によっては、リードプログラマ、メインプログラマ(設計も兼ねている)などがその役割を担うと考えられる。そういった立場の人がソフトウェアアーキテクチャの大枠の技術や、広義でもあるコミュニケーション、交渉、折衝スキルの過不足点を洗い直すのに価値が出てくる著作だと感じた。

    以下気になった内容メモ
    ---------

    ●1章:イントロダクション
    ソフトウェアアーキテクチャ:時代と共に変化してきている
    昔はソフトウェアは一度実装すると変更は難しい定義だったが、今はそうではない
    >マイクロサービスなどの台頭

    マイクロサービス:それぞれのサービスに専用のDBを持たせて、分離された独自のマシンで動かす
    昔はライセンスなどで高額で実現は難しかったが、オープンソースの台頭で実現

    アーキテクトへの期待
    ・アーキテクチャ決定を下す
    ・アーキテクチャを継続的に分析
    ・最新のトレンドを把握し続ける
    ・決定の順守を徹底
    ・多様なものに触れ経験している
    ・事業ドメインの知識を持っている
    ・対人スキルを持っている
    ・政治を理解しかじとりする

    プロセスとエンジニアリングプラクティス
    プロセス:チーム形成や管理、ミーティングの進め方、ワークフローの整理の仕方
     >人がどのように組織化され、どのように相互作用するかのメカニズム
    エンジニアリングプラクティス:プロセスに依存しない手法
     >継続的イテレーションなど

    XP:テストの数が多いほど品質が高まるという相関関係から、テストに対するアプローチを極限まで重視。
    テストファーストで開発を行う。

    イテレーティブなプロセスの方がソフトウェアアーキテクチャの性質に適している
    >アジャイル開発

    -----
    ●第一部:基礎

    ●2章:アーキテクチャ思考
    アーキテクトと開発チームに強い双方向の関係を気づく必要がある
    従来は、アーキテクト>開発者と一方通行
    ・技術的な幅
    アーキテクト:技術的な幅
    開発者:技術的な深さ
    ・トレードオフを分析する
    ソフトウェアアーキテクチャは全てがトレードオフ
    ・ビジネスドライバーを理解する
    ・アーキテクティングとコーディングのバランスを取る
     概念実証(PoC)を活用

    ●3章 モジュール性
    モジュール性の計測
    ・凝集度:モジュールの要素がどの程度そのモジュールに収まっているか
    フィールドを介して結合されていないメソッドの総和
      >フィールド変数が各メソッドで流用されていると凝集度が高い
      逆にフィールドが他のメソッドに影響ない場合は、そのフィールドとそれを使うメソッドは別クラスにリファクタリングできる。
    ・結合度:
     求心性結合:コンポーネント、クラス、関数などに外部から入力される接続数を計測
     延伸性結合:コンポーネント、クラス、関数などに出力する接続数を計測
    ・コナーセンス:
     静的なコナーセンス
     動的なコナーセンス

    ●4章 アーキテクチャ特性
    アーキテクチャ特性とは以下の3つの基準を満たすもの
    ・ドメインに依らない、設計に関する考慮事項を明らかにするもの
    ・設計の構造的な側面に影響を与えるもの
    ・アプリケーションの成功に不可欠な重要なもの
    アーキテクチャをできるだけイテレーティブに設計するのがベスト

    ●5章 アーキテクチャの特性を明らかにする
    全てのアーキテクチャ特性をサポートする汎用アーキテクチャの設計はアンチパターン
    >サポート数が増えるごとにシステムが複雑になっていく
    設計をシンプルに保つのが大事

    暗黙的なアーキテクチャ特性を見極める必要がある。
    スケーラビリティだけでなく、バーストアクセスに耐える必要があるかの検討
    >ホテル予約システムと、コンサート予約システムの違い
    暗黙特性:可用性、信頼性、セキュリティ、カスタマイズ性

    ●6章 アーキテクチャ特性の計測と統制
     アーキテクチャ適用度関数でコードを評価
     ・ルートの長さを評価
     ・コストを最小限にすることを評価
     ・総移動時間の短縮を最適化したことを評価
     進化的アーキテクチャでは、この概念を借用してアーキテクチャ適用関数を定義

    ●7章 アーキテクチャ特性のスコープ
    コナーセンス:システム全体の正しさを維持するため、あるコンポーネントの変更が別の
    コンポーネントの変更を必要とする場合、2つのコンポーネントはコーナセント(接続)されている
    静的コナーセンス:静的コード解析によって発見可能
    動的コナーセンス:実行時の振るまいで発見可能
     ・同期的
     ・非同期的

    凝集性:含まれるコードが目的に沿ってどれだけ統一されているか
     例:プロパティ、メソッドが全てCustomerエンティティに関連するものなど
       >高い凝集性

    ●8章 コンポーネントベース思考
    モジュールが物理的にパッケージ化されたもの:コンポーネント
    >Javaのjarファイル, Rubyのgem, .NETのdll
    アーキテクチャにおける最上位分割
    ・技術による分割
    ・ドメインによる分割:マイクロサービスアーキテクチャ

    -----
    ●第2部
    アーキテクチャスタイル

    ●9章 基礎
    ・ユニタリーアーキテクチャ
     一つのマシン上で完結している
    ・クライアント/サーバ
     デスクトップ+データベースサーバ:リッチクライアント
     ブラウザ+Webサーバ
     3層アーキテクチャ

    モノリシックアーキテクチャと分散アーキテクチャ
    ・モノリシック(全てのコードが単一のデプロイメントユニットで構成)
     レイヤードアーキテクチャ
     パイプラインアーキテクチャ
     マイクロカーネルアーキテクチャ
    ・分散(リモートアクセスプロトコルを介して接続された複数のデプロイメントユニット
    で構成)
     サービスベースアーキテクチャ
     イベント駆動アーキテクチャ
     スペースベースアーキテクチャ
     サービス指向アーキテクチャ
     マイクロサービスアーキテクチャ

    ネットワーク
    ・ネットワーク通信は信頼できない
    ・ネットワークはレイテンシは0でない
    ・帯域幅は無限でない
    ・ネットワークは安全でない:悪意あるクライアントの存在
    ・トポロジーは変化する
    ・転送コストはゼロでない
    ・ネットワークは均一でない

    ●10章 レイヤードアーキテクチャ
    n層アーキテクチャとして知られている。
    最も一般的なアーキテクチャスタイルの一つ

    トポロジ
    論理的な水平方向のレイヤーとして編成
    一般的な構成:プレゼン層、ビジネス層、永続化層、データベース層
    関心ごとの分離の概念

    層の分離
    ・閉鎖レイヤー:層をスキップできずに直下の層を経由しなければならない
    ・解放レイヤー:

    特性
    コスト、シンプルさが突出している

    ●11章 パイプラインアーキテクチャ
    Unixターミナルシェル言語の背後にある基本原則にあるアーキテクチャ
    例:コマンド  ps -ef | grep hoge | sort -f | more

    トポロジ
    パイプとフィルタから構成される
    ・パイプ:フィルター間の通信チャンネルを形成
    ・フィルター:自己完結型で他のフィルターとは独立している
     プロデューサー:処理の開始地点、出力のみ
     トランスフォーマー:入力を受け、データの一部または全部を改変し出力パイプに送る

     テスター:入力を受け付け、1つ以上の基準について検査し、オプションで検査に基づく出力を生成
     コンシューマー:パイプラインフロー終了点

    特性
    コスト、シンプルさが突出している

    ●12章 マイクロカーネルアーキテクチャ
    製品ベースのアプリケーションにうまくフィットしている
    カスマムビジネスアプリケーションでも広く使用されている

    トポロジ
    コアシステムとプラグインの2つのコンポーネントで構成
    基本的なコアシステムと、独立したプラグインコンポーネントと別れている
    アプリ機能やカスタム処理ロジックの拡張性、適応性、分離性を実現
    例:Eclipse IDEとプラグイン
    ・コアシステム:システムを実行するのに必要な最低限の機能
    ・プラグインコンポーネント:コアシステムを強化、拡張する特殊な処理や機能追加など

    ・レジストリ:利用可能なプラグインモジュールやその入手方法の詳細情報を管理

    特性
    コスト、シンプルさが突出

    ●13章 サービスベースアーキテクチャ
    マイクロサービスアーキテクチャのハイブリッド
    最も実用的なアーキテクチャスタイルの一つ

    トポロジ
    分散型のマクロなレイヤード構造
    個別にデプロイされたUI、個別にデプロイされた粒度の粗いリモートサービス、モノリシ
    ック(一枚岩)なデータベース
    UIの背後に、複数のレイヤードアーキテクチャがあり、それらがモノリシックのDBを参照
    している

    トポロジーの種類
    ユーザインタフェースを分割して、その背後のレイヤードアーキテクチャ(ドメインサービス)を分けてもいいし、一つのユーザインタフェースごとにレイヤードアーキテクチャを対応させてもいい
    DBにおいても、特定のレイヤーおアーキテクチャに対応したDBを複数に分けてもいい
    ユーザインタフェースとドメインサービスの間にAPI層(プロキシ、またはゲートウェイ)を追加してもよい
    各ドメインサービス:APIファサード層、ビジネス層、永続化層などで構成(技術分割)
    または、APIファサード層の下をドメイン分割により、複数のコンポーネントを参照する構成

    特性
    デプロイ容易性、耐障害性、モジュール性、コスト、信頼性、テスト容易性などが突出

    ●14章 イベント駆動アーキテクチャ
    分散非同期型のアーキテクチャ
    小規模、大規模なアプリケーションに用いることが可能
    イベント駆動アーキテクチャは非同期にイベントを受信して処理する、分離されたイベント処理コンポーネントで構成
    単体でアーキテクチャとして活用できるし、他のアーキテクチャ(イベント駆動マイクロサービスアーキテクチャ)などに組み込むこともできる。

    トポロジ
    ブローカーとメディエーターという2つの主要なトポロジー
    ・ブローカー:イベント処理に対して高度な応答性と動的な制御が必要な場合に使用
     軽量メッセージブローカー(RabbitMQ,AtiveMQ..etc)を介して、チェーン上のブロードキャスト方式でイベント処理コンポーネントに分散
     ・開始イベント:イベントフローを開始する最初の「イベント」のこと
     ・イベントブローカー:開始イベントを受け取ると呼び出される
     ・イベントプロセッサー:単一のイベントプロセッサーがイベントブローカーから開始イベントを受け入れ、そのイベント処理を開始する
     ・処理イベント:イベントプロセッサーで作成される「イベント」。何をしたかの通知。別のイベントブローカーに渡されたりもする
    ・メディエーター:イベント処理のワークフロー処理が必要な場合に使用
     ブローカートポロジのいくつかの欠点を解消する
     イベントメディエーターは、複数のイベントプロセッサーの調整を必要とするイベントを開始するためのワークフローを管理・制御する
     ・開始イベント
     ・イベントキュー:開始イベント用のキュー
     ・イベントメディエーター:キューからの開始イベントを受け取り、対応する処理イベントを生成して、専用のイベントチャンネルに送信
     ・イベントチャンネル
     ・イベントプロセッサー:専用のイベントチャンネルで待ち受け、イベントを処理し、通常はメディエーターに自分の作業が完了したことを返信

    データロスの問題:非同期メッセージ伝達間のシステムクラッシュなどが原因
    ・インメモリにメッセージを保存するだけでなく、何らかのデータストア(ファイルシステムやDBなど)にメッセージを永続化する。そうすればメッセージブローカーが落ちた場合でも、復旧後にメッセージを処理できる。
    ・メッセージが永続化されたことをブローカーが確認するまで、メッセージプロデューサーがブロック待ちをする
    上記2つのテクニックで、イベントプロデューサーとキューの間でメッセージが失われることはない

    キューからメッセージを取得後、そのイベントをする前にイベントプロセッサーがクラッシュ:クライアント応答モードと呼ばれるメッセージングのテクニックで解決できる
     *キューにメッセージを残しつつ、クライアントIDをメッセージに付けることで、他のコンシューマがメッセージを読めないようにする。

    特性
    進化性、耐障害性、パフォーマンス、スケーラビリティで突出

    ●15章 スペースベースアーキテクチャ
    トポロジ
    複数の並列プロセッサーが共有メモリを介して通信する技術
    高い弾力性、パフォーマンスは、DBからレプリケートされたインメモリデータグリッドを活用して実現
    処理ユニットごとにアプリケーションのデータはインメモリでメモリ内に保持され、全てのアクティブな処理ユニット間でレプリケートされる。処理ユニットは、データを更新すると。非同期にデータベースに送信。
    負荷状況に応じて処理ユニット単位でスケール
    ・処理ユニット:Webベースのコンポーネントやバックエンドのビジネスロジッックが含まれる

    特性
    弾力性、パフォーマンス、スケーラビリティで突出

    ●16章 オーケストレーション駆動サービス指向アーキテクチャ

    ●17章 マイクロサービスアーキテクチャ
    トポロジー
    ひとつのAPIレイヤーの背後に、APIレイヤーの種類ごとにデータベースを持ったサービス(モジュール群)を持つ。
    各自のサービスは独自のプロセスで実行される分散アーキテクチャを形成する
    クラウドリソースとコンテナ技術により、各ドメインが独自のインフラをもてるようになった
    パフォーマンス:分散型の性質がもたらす負の副作用がある。ネットワーク呼び出しは、メソッド呼び出しより時間がかかる。各エンドポイントでのデータ検証で処理時間がかかるなど。>サービス境界を超えたトランザクションの使用を避けるのがよい

    特性
    弾力性、進化性、モジュール性、スケーラビリティで突出
    *パフォーマンスはある程度犠牲になる

    ●18章 適切なアーキテクチャスタイルを選ぶ
    新しいアーキテクチャデザインには、過去のアーキテクチャスタイルの欠点が反映される

    判断基準
    ・ドメイン:設計するドメインの主要な側面の理解
    ・構造に影響を与えるアーキテクチャ特性
    ・データアーキテクチャ
    ・組織的な要因
    ・プロセス、チーム、および運用上の関心ごとに関する知識
    ・ドメイン/アーキテクチャの同型性
    ・モノリスか分散か
    ・データをどこに書くべきか
    ・サービス間の通信スタイルは、同期型か非同期型か

    -----
    ●第3部
    テクニックとソフトスキル
    有能なソフトウェアアーキテクト
     ソフトウェアーキテクチャの技術的な側面を理解するだけでは足りない
     アーキテクトとして考え、開発チームを導き、様々なステークホルダにアーキテクチャを効果的に伝えるのに必要な主要なテクニックとソフトスキルも備えていなければならない

    ●19章 アーキテクチャの決定
    アンチパターン
    ・資産防御アンチパターン:選択を恐れてアーキテクチャ決定を先延ばししてしまうパターン
    ・グランドホッグデータアンチパターン:ある決定が下された理由がわからずに、繰り返し何度も議論されてしまうパターン
    ・メール駆動アーキテクチャアンチパターン:人々がアーキテクチャ決定を見失ったり、忘れたり、決定されたことを知らないため、そのアーキテクチャ決定を実装できなくなってしまうパターン

    アーキテクチャ上重要なものとは
    ・構造
    ・非機能特性
    ・依存関係
    ・インタフェース
    ・構築手法
    上記に影響を与える決定の内容が重要なもの

    アーキテクチャ決定を文書化する方法の一つ
    ・アーキテクチャデシジョンレコード:タイトル、ステータス、コンテキスト、決定、影響という5つの主要セクションから構成(コンプライアンス、備考も追加)

    ●20章 アーキテクチャ上のリスクを分析する
    リスクマトリックスの活用
     リスクアセスメント構築にも利用できる
    リスクストーミング
     複数のアーキテクトの参加、シニア開発者やテックリードの参加
    ユーザーストーリリスク分析

    ●21章 アーキテクチャの図解やプレゼンテーション
    図解標準:
    ・UML
    ・C4
    ・Archimate
    プレゼンテーション
     蜂の巣にされた死体アンチパターン:スライドが基本的に発表社のメモであり、全て人に見えるように投影されているアンチパターン。聞き手の大半はスライドが映るとそれらのメモを読んでしまい、そのあと発表社がその文章を読み上げるのを待つという耐えがたい経験となる

    ●22章 効果的なチームにする
    チーム境界
    ・境界がきついとフラストレーションが溜まる
    ・境界が緩いと混乱をまねく
    ・適切な境界は効果的なチームを作る

    アーキテクトのパーソナリティ
    ・コントロールフリークアーキテクト
     あらゆる詳細な側面までコントロールしようとする
    ・アームチェアーキテクト
     アーキテクチャを作成する際に実装の詳細を考慮しなすぎる
    ・効果的なアーキテクト

    管理
    ・チームの親しさ
    ・チームサイズ規模
    ・メンバの全体的な経験
    ・プロジェクトの複雑さ
    ・プロジェクトの期間

    チームの警告サイン
    ・プロセスロス:人を増やすほどプロジェクトにかかる時間が増える
    ・多次元無知:内心で否定していることに対して、自分が何か見落としているのだろうと考え、全員が同意してしまう現象
    ・責任の分散

    ガイダンスの提供
    設計指針を用いてガイダンスを提供することで、チームを効果的にできる

    ●23章 交渉のリーダシップのスキル
    企業の政治的状況を理解し、その政治的な状況を切り抜けられなければならない
    >決定には異議が唱えられるため

    ビジネスステークホルダーとの交渉
    他のアーキテクトとの交渉
    開発者との交渉

    リーダーとしてのソフトウェアアーキテクト
    ・プラグマティックでありながらもビジョナリーであること
     ビジョナリー:想像力や知恵をもって、未来を考えたり、計画したりすること
     プラグマティック:机上の空論でなく、実勢に基づくやり方で現実的に物事に対処

    ●24章 キャリアパスを開く
    1日最低20分を使って、未知の未知を既知の未知に昇華させる
    ソーシャルメディアを活用し、アドバイスをもらえる尊敬できる技術者を見つける

    ●付録A 自己評価のためのチェックリスト
     本文の各章ごとのキー項目の質問が複数用意されている

    以上
    50人のお客様がこれが役に立ったと考えています
    レポート
  • 2023年4月24日に日本でレビュー済み
    他の方も書かれている通りアーキテクトの基礎本。
    タイトルから個人的には第Ⅱ部がもっと詳細にあるような本だと思っていたが、
    読後にオライリーの書籍紹介を見直したら、アーキテクトになるための解説本と書いてあったのでもっと事前確認しておけばよかったと後悔。

    内容は、開発経験があってこれからアーキテクチャに関わりだす人向けで、
    アーキテクトになるための解説本としてみれば参考になることが多い。
    アーキテクチャを少しかじったことがあれば知っていることも多いと思う。

    ★を1つ減らしたのは、翻訳が少しわかりづらい。
    IT本は英単語をそのままカタカナにしていることが多いけど、この本はその割合が多く、これもカタカナなのかと思うことが多くわかりづらかった。翻訳本ならもう少し翻訳してほしい。
    8人のお客様がこれが役に立ったと考えています
    レポート
  • 2023年9月5日に日本でレビュー済み
    Amazonで購入
    アーキテクトがすべきこと、アーキテクチャとはなにか、そのパターン毎に点数付けされています。どのアーキテクチャをどの様な観点で選ぶべきがが述べられており、参考になります。
    4人のお客様がこれが役に立ったと考えています
    レポート
  • 2022年10月26日に日本でレビュー済み
    Amazonで購入
    内容は、アーキテクチャ選定の基本的な考え方、用語、代表的なアーキテクチャの解説、アーキテクトとして働くコツなど。

    アーキテクトになる予定のない人も教養として読むことをおすすめします。
    10人のお客様がこれが役に立ったと考えています
    レポート
  • 2022年7月17日に日本でレビュー済み
    アーキテクトとして持つべきマインドセット、設計する際の基本的な考え方や様々なアーキテクチャーの概要が網羅されています。設計の際重視するべきポイントを抑えたり、アーキテクトの考え方のプレゼンには役立ちそうですが、それぞれの考え方やアーキテクチャの背景にある技術論を期待している人には不向き。
    6人のお客様がこれが役に立ったと考えています
    レポート
  • 2024年10月29日に日本でレビュー済み
    かつてもうひとつおおきな一歩を踏み出さんとするプログラマーには、Pattern-Oriented Software Architecture通称POSA本があった。
    ソフトウェアアーキテクチャの基礎、は、その後継者ともいえる。
    単に目の前の仕事をするだけではなく、そのやり方がどんな場所にあるのか、現代の分散システムベースの世界の中で立ち位置を理解しマクロな視点を得るための一冊になるだろう。
  • 2022年3月22日に日本でレビュー済み
    Amazonで購入
    アーキテクトの本。
    アーキテクトというのは人とか役職というのではなく、プロダクトを作っていくときの役割のこと。
    こういう人がいないと死ぬよ、と。

    日頃自分がやっていることを若い衆に都度説明してきたが、誰かまとめてくれてないかな? と教材目的で買いました。
    概ね、利害関係人の要求とシステムの制約などの間を調整(トレードオフ)して、先読みしつつ勝つ手ではなく負けない手を打ち続け、針の穴にラクダを通さなければならなくなったり、臍を曲げた関係者のご機嫌を取ったり、突如乱入してくる社長を隔離したり、開発者の悩みを聞いて導いてあげたり、PoCソースを作っておいたり、そういうことを技術力をバックに馬車馬の如くかけずり回るものなのだが(それ以外にもやってることはある)、うまく技術書になってて笑う。
    これを若い衆に勧めました。

    メトリクスとか数式が出てきたり、あれこれ分類モノが出てくるのは書物の体裁を整えるために頑張ってる感があるが、大事なのはこれらのもろもろは目的ではなく手段、道具なので、何をやるためにそれを使うのかを理解して、場合によっては取捨選択、横目に軽く参照する程度にして、うまくプロダクトを回していこうということ。
    この手の役割を知らないデスマーチチーム(すでに手遅れかもしれないが)、あるいはそこから足抜けした開発者が「こういうのがちゃんと機能していたら……」と涙を拭いながら読むことをお勧めします。
    そして、自分がアーキテクトの役職を振られなくても、こういう視点があるんだと理解しているのといないのとは一開発者としての立ち居振る舞いにも違いが出て、プロダクトのデスマーチ化率を大きく下げることができ、自身の心と体の健康にも悪い影響を避けることができるので利益はあるし、もしこの観点のないチームはヤベェのでさっさと見切りをつけることで自身の心と体の健康にも資するので。

    ただ、独りよがりな独学でこれの一部を実施しようとするとカーゴカルトチームとなって悲劇を拡大しそうな気がするので、できれば誰かの側についてあれこれ聞きながら、副読本としてこれを読むといいと思います。
    書いてあることをそのまま実践するのではなく、なぜそれをするといいと筆者が考えたかを考えて、それを実現するための方法を実践していくというのは、非HowTo本の技術書の基本Death。
    79人のお客様がこれが役に立ったと考えています
    レポート
  • 2022年8月7日に日本でレビュー済み
    Amazonで購入
    昔からあるレイヤードアーキテクチャ~最近流行りのマイクロサービスアーキテクチャまで網羅的に掲載してあり、よくまとめられていると思います。
     コードを書かない上流担当やマネージャーの方でもシステム開発にかかわるなら、このくらいは知っていてほしいという内容が書いてあります。
     このアーキテクチャですべて解決!というわけでなく、どのアーキテクチャにも得意分野があるよねという思想が良いです。
    14人のお客様がこれが役に立ったと考えています
    レポート