設計 > Clean Architecture 達人に学ぶソフトウェアの構造と設計

Clean Architecture 達人に学ぶソフトウェアの構造と設計

 Clean Architecture 達人に学ぶソフトウェアの構造と設計
Robert C.Martin
KADOKAWA
2018-07-27
¥ 3,520

 Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Robert C. Martin
Prentice Hall
2017-09-20
¥ 3,919

目次

 まえがき
 序文
 謝辞
 著者について

第I部 イントロダクション

 第1章 設計とアーキテクチャ
  目的は?
  ケーススタディ
  まとめ

 第2章 2つの価値のお話
  振る舞い
  アーキテクチャ
  大きな価値
  アイゼンハワーのマトリックス
  アーキテクチャの戦い

第II部 構成要素から始めよ:プログラミングパラダイム

 第3章 パラダイムの概要
  構造化プログラミング
  オブジェクト指向プログラミング
  関数型プログラミング
  考えるべきこと
  まとめ

 第4章 構造化プログラミング
  証明
  有害宣言
  機能分割
  正式に証明できない
  救済のための科学
  テスト
  まとめ

 第5章 オブジェクト指向プログラミング
  カプセル化とは?
  継承とは?
  ポリモーフィズムとは?
  まとめ

 第6章 関数型プログラミング
  整数の二乗
  不変性とアーキテクチャ
  可変性の分離
  イベントソーシング
  まとめ

第III部 設計の原則

 第7章 SRP:単一責任の原則
  症例1:想定外の重複
  症例2:マージ
  解決策
  まとめ

 第8章 OCP:オープン・クローズドの原則
  思考実験
  方向の制御
  情報隠蔽
  まとめ

 第9章 LSP:リスコフの置換原則
  継承の使い方の指針
  正方形・長方形問題
  リスコフの置換原則(LSP)とアーキテクチャ
  リスコフの置換原則(LSP)違反の例
  まとめ

 第10章 ISP:インターフェイス分離の原則
  インターフェイス分離の原則(ISP)と言語との関係
  インターフェイス分離の原則(ISP)とアーキテクチャとの関係
  まとめ

 第11章 DIP:依存関係逆転の原則
  安定した抽象
  Factory
  具象コンポーネント
  まとめ

第IV部 コンポーネントの原則

 第12章 コンポーネント
  コンポーネントの簡単な歴史
  リロケータビリティ(再配置可能性)
  リンカ
  まとめ

 第13章 コンポーネントの凝集性
  再利用・リリース等価の原則(REP)
  閉鎖性共通の原則(CCP)
  全再利用の原則(CRP)
  コンポーネントの凝集性のテンション図
  まとめ

 第14章 コンポーネントの結合
  非循環依存関係の原則(ADP)
  トップダウンの設計
  安定依存の原則(SDP)
  安定度・抽象度等価の原則(SAP)
  まとめ

第V部 アーキテクチャ

 第15章 アーキテクチャとは?
  開発
  デプロイ
  運用
  保守
  選択肢を残しておく
  デバイス非依存
  ダイレクトメール
  物理アドレス
  まとめ

 第16章 独立性
  ユースケース
  運用
  開発
  デプロイ
  選択肢を残しておく
  レイヤーの切り離し
  ユースケースの切り離し
  切り離し方式
  独立した開発が可能
  独立デプロイ可能性
  重複
  切り離し方式(再び)
  まとめ

 第17章 バウンダリー:境界線を引く
  結合の悲しい物語
  FitNesse
  あなたの境界線は何か? いつ境界線を引くのか?
  入力と出力はどうする?
  プラグインアーキテクチャ
  プラグインの戦い
  まとめ

 第18章 境界の解剖学
  境界を越える
  恐怖のモノリス
  デプロイコンポーネント
  スレッド
  ローカルプロセス
  サービス
  まとめ

 第19章 方針とレベル
  レベル
  まとめ

 第20章 ビジネスルール
  エンティティ
  ユースケース
  リクエストとレスポンスのモデル
  まとめ

 第21章 叫ぶアーキテクチャ
  アーキテクチャのテーマ
  アーキテクチャの目的
  だが、ウェブはどうか?
  フレームワークはツールであり、生き方ではない
  テスト可能なアーキテクチャ
  まとめ

 第22章 クリーンアーキテクチャ
  依存性のルール
  典型的なシナリオ
  まとめ

 第23章 プレゼンターとHumble Object
  Humble Objectパターン
  プレゼンターとビュー
  テストとアーキテクチャ
  データベースゲートウェイ
  データマッパー
  サービスリスナー
  まとめ

 第24章 部分的な境界
  最後のステップを省略する
  片方だけの境界
  Facade
  まとめ

 第25章 レイヤーと境界
  Hunt the Wumpus
  クリーンアーキテクチャ?
  流れを横切る
  流れを分割する
  まとめ

 第26章 メインコンポーネント
  究極的な詳細
  まとめ

 第27章 サービス:あらゆる存在
  サービスアーキテクチャ?
  サービスのメリット?
  子猫の問題
  救世主のオブジェクト
  コンポーネントベースのサービス
  横断的関心事
  まとめ

 第28章 テスト境界
  システムコンポーネントとしてのテスト
  テスト容易性のための設計
  テストAPI
  まとめ

 第29章 クリーン組込みアーキテクチャ
  適性テスト
  ターゲットハードウェアのボトルネック
  まとめ

第VI部 詳細

 第30章 データベースは詳細
  リレーショナルデータベース
  なぜデータベースシステムが普及しているのか?
  もしもディスクがなかったら?
  詳細
  だけど、パフォーマンスはどうなの?
  小話
  まとめ

 第31章 ウェブは詳細
  止まらない振り子
  結論
  まとめ

 第32章 フレームワークは詳細
  フレームワークの作者たち
  一方的な結婚
  リスク
  解決策
  今あなたたちを夫婦として宣言する
  まとめ

 第33章 事例:動画販売サイト
  プロダクト
  ユースケース分析
  コンポーネントアーキテクチャ
  依存性管理
  まとめ

 第34章 書き残したこと
  レイヤーによるパッケージング
  機能によるパッケージング
  ポートとアダプター
  コンポーネントによるパッケージング
  悪魔は実装の詳細に宿る
  組織化かカプセル化か
  そのほかの分割方法
  まとめ:言い残したこと

第VII部 付録

 付録A アーキテクチャ考古学
  組合の会計システム
  レーザーカット
  アルミダイキャストの監視
  4-Tel
  サービスエリアコンピュータ
  C言語
  BOSS
  pCCU
  DLU/DRU
  VRS
  電子受付
  転送システムの作成
  明確なコミュニケーション
  ROSE
  アーキテクト登録試験
  まとめ

 あとがき
 訳者あとがき
 訳者について
 索引

出版社情報

著者紹介

■Robert C. Martin(ロバート・C・マーチン)

Robert C. Martin(アンクル・ボブ)は1970 年からプログラマである。
cleancoders.com の共同創業者であり、ソフトウェア開発者向けの学習用動画をオンラインで提供している。
また、Uncle Bob Consulting LLC. を設立し、世界中の大企業を対象としたソフトウェアコンサルティング、トレーニング、スキル開発を行っている。
シカゴに本拠地を置くコンサルティングファーム8th Light, Inc. では、Master Craftsman を務めていた。
さまざまな業界誌に寄稿し、国際的なカンファレンスや展示会でも頻繁に講演している。
「C++ Report」の編集長を3 年間務め、Agile Alliance の初代委員長でもあった。

著書に『The Clean Coder(邦訳:Clean Coder ― プロフェッショナルプログラマへの道)』『Clean Code(邦訳:Clean Code ― アジャイルソフトウェア達人の技)』『UML for Java Programmers(邦訳:Java プログラマのためのUML)』『Agile Software Development(邦訳:アジャイルソフトウェア開発の奥義)』『Extreme Programming in Practice(邦訳:XPエクストリーム・プログラミング実践記― 開発現場からのレポート)』『More C++ Gems』『Pattern Languages of Program Design 3』『Designing Object Oriented C++ Applications Using the Booch Method』がある。

書評

プログラム断片(モジュール、コンポーネント、パーツ)の配置方法について、ノウハウを知りたい。
プログラムは、後で簡単に交換できるように作っておくことが大事。
パーツを「プラグイン」のように配置すると、簡単に交換できる。
プラグインから、PACを連想した。

ちょうど会社内の部署や労働者のようなイメージを抱いた。身近な事例でクリーンアーキテクチャーは理解できそうだ。
他人のうまいやり方を参考にして、自分のやり方を改善していきたい。

学習メモ

頁+行章節項目日付

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-02-27 (木) 09:22:39 (210d)