【2021年】デザインパターンの本「最新・人気のおすすめの10冊」

プログラムの大きな設計指針の1つとなる「デザインパターン」。

設計時の迷いや思考時間を軽減してくれるのはもちろん、別のエンジニアとの設計に関する意思疎通・会話のためにも、有益な知識です。

デザインパターンの知識がなくてもプログラムは組めますが、プロのエンジニアとしてやっていくなら、主要なパターンは知っておくべきといえるでしょう。

こちらでは、そんなデザインパターンの参考書を、人気・高評価のおすすめ本とともに紹介していきます。

 
Kindle Paperwhite
発売日 2018/11/07
(2021/09/17 15:15時点)

 

 

Kindle Unlimited 1ヶ月無料

kindle_unlimited_sale
 
  • 1ヶ月無料で読み放題
  • 1ヶ月以内でも解約可能
  • 解約後も1ヶ月まで利用可


 

デザインパターンの参考書「人気ランキング 20冊」

デザインパターンの今売れ筋本を人気ランキングで一覧したのが以下。

ランキングは日々更新されていますので、最新の人気が反映されています。

 

(2021/09/17 12:01 更新)
Rank製品価格
1
J2EEデザインパターン
発売日 2009/06/30
Crawford, William, Kaplan, Jonathan (O'Reilly Media)
総合評価
3,581円
4,180円
416円
2
AIエンジニアのための機械学習システムデザインパターン
発売日 2021/05/17
澁井雄介 (翔泳社)
総合評価
3,960円
3,564円
3,960円
3,960円
3
増補改訂版Java言語で学ぶデザインパターン入門
発売日 2004/06/19
結城 浩 (ソフトバンククリエイティブ)
総合評価
4,180円
(+114pt)
3,762円
4,180円
4,180円
4
2,860円
2,860円
2,475円
5
オブジェクト指向における再利用のためのデザインパターン...
ガンマ,エリック, ジョンソン,ラルフ, ヘルム,リチャード, ブリシディース,ジョン (ソフトバンククリエイティブ)
総合評価
5,280円
(+144pt)
5,280円
5,280円
6
入門 監視 ―モダンなモニタリングのためのデザインパターン...
発売日 2019/01/17
Mike Julian (オライリージャパン)
総合評価
3,080円
3,080円
3,080円
7
3,740円
3,366円
3,740円
3,740円
8
Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本...
発売日 2005/12/02
Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates (オライリージャパン)
総合評価
5,060円
5,060円
5,060円
9
3,080円
2,218円
3,080円
3,080円
10
Node.jsデザインパターン 第2版
発売日 2019/05/18
Mario Casciaro, Luciano Mammino (オライリージャパン)
総合評価
4,620円
(+126pt)
4,620円
4,620円
11
4,180円
3,762円
4,180円
4,180円
12
増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編...
発売日 2014/03/12
結城 浩 (SBクリエイティブ)
総合評価
6,980円
4,653円
5,170円
8,980円
13
Amazon Web Servicesクラウドデザインパターン設計ガイド 改訂版(日経BP Next ICT選書)...
発売日 2015/07/21
玉川 憲, 片山 暁雄, 鈴木 宏康, 野上 忍 (日経BP)
Kindle Unlimited対象
総合評価
5,980円
2,970円
2,970円
1,420円
14
インフラデザインパターン ── 安定稼動に導く127の設計方式 WEB+DB PRESS plus...
発売日 2018/11/14
杉原 健郎, 吉田 一幸, 岩崎 賢治, 三浦 広志 (技術評論社)
総合評価
2,948円
2,948円
2,948円
2,948円
15
クラウドデザインパターン Azureを例としたクラウドアフリケーション設計の手引き...
発売日 2014/07/09
Alex Homer ;John Sharp;Larry Brader ;Masashi Narumoto ;Trent Swanson (日経BP)
総合評価
4,894円
3,135円
3,300円
1,045円
16
2,024円
2,218円
2,464円
2,550円
17
Amazon Web Services クラウドデザインパターン実装ガイド 改訂版...
発売日 2015/04/01
アマゾン データ サービス ジャパン 玉川憲, 片山暁雄, アイレット 鈴木宏康 (日経BP)
Kindle Unlimited対象
総合評価
4,180円
4,180円
4,180円
4,180円
18
Java言語で学ぶデザインパターン入門
結城 浩 (ソフトバンククリエイティブ)
総合評価
465円
4,180円
825円
19
レイアウトのデザインパターン帖
発売日 2018/10/01
(パイ インターナショナル)
総合評価
2,000円
2,090円
2,090円
1,950円
20
JavaScriptデザインパターン
発売日 2013/05/25
Addy Osmani (オライリージャパン)
総合評価
3,080円
3,080円
1,320円

 

以降でおすすめ・注目の本をピックアップしていきまっす。

ちなみに、Kindle版のある本ならサンプル送信で試し読み可能。大概目次まで見れるので、内容の概要もつかめるので、サンプル試読おすすめです。

 

デザインパターンの本 人気の参考書 5冊

以下が今人気(売れ筋)のデザインパターン関連の本の5冊の詳細です。

(2021/09/17 12:01 更新)
Rank製品価格
1
J2EEデザインパターン
発売日 2009/06/30
Crawford, William, Kaplan, Jonathan (O'Reilly Media)
総合評価
3,581円
4,180円
416円
2
AIエンジニアのための機械学習システムデザインパターン
発売日 2021/05/17
澁井雄介 (翔泳社)
総合評価
3,960円
3,564円
3,960円
3,960円
3
増補改訂版Java言語で学ぶデザインパターン入門
発売日 2004/06/19
結城 浩 (ソフトバンククリエイティブ)
総合評価
4,180円
(+114pt)
3,762円
4,180円
4,180円
4
2,860円
2,860円
2,475円
5
オブジェクト指向における再利用のためのデザインパターン...
ガンマ,エリック, ジョンソン,ラルフ, ヘルム,リチャード, ブリシディース,ジョン (ソフトバンククリエイティブ)
総合評価
5,280円
(+144pt)
5,280円
5,280円

 

「J2EEデザインパターン」

J2EEデザインパターン
(著)Crawford, William, Kaplan, Jonathan
発売日 2009/06/30
総合評価
(2021/09/17 12:01時点)

Architects of buildings and architects of software have more in common than most people think. Both professions require attention to detail, and both practitioners will see their work collapse around them if they make too many mistakes. It's impossible to imagine a world in which buildings get built without blueprints, but it's still common for software applications to be designed and built without blueprints, or in this case, design patterns.A software design pattern can be identified as "a recurring solution to a recurring problem." Using design patterns for software development makes sense in the same way that architectural design patterns make sense--if it works well in one place, why not use it in another? But developers have had enough of books that simply catalog design patterns without extending into new areas, and books that are so theoretical that you can't actually do anything better after reading them than you could before you started.Crawford and Kaplan's J2EE Design Patterns approaches the subject in a unique, highly practical and pragmatic way. Rather than simply present another catalog of design patterns, the authors broaden the scope by discussing ways to choose design patterns when building an enterprise application from scratch, looking closely at the real world tradeoffs that Java developers must weigh when architecting their applications. Then they go on to show how to apply the patterns when writing realworld software. They also extend design patterns into areas not covered in other books, presenting original patterns for data modeling, transaction / process modeling, and interoperability.J2EE Design Patterns offers extensive coverage of the five problem areas enterprise developers face:

  • Maintenance (Extensibility)
  • Performance (System Scalability)
  • Data Modeling (Business Object Modeling)
  • Transactions (process Modeling)
  • Messaging (Interoperability)
And with its careful balance between theory and practice, J2EE Design Patterns will give developers new to the Java enterprise development arena a solid understanding of how to approach a wide variety of architectural and procedural problems, and will give experienced J2EE pros an opportunity to extend and improve on their existing experience.

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
効率的で美しいアプリケーションを設計するためには、複雑な仕組みを抽象化、単純化するデザインパターンの利用が不可欠です。開発アプリケーションが大規模になるほど、そして複雑になるほど、その恩恵も大きくなります。本書はJ2EEに特化したデザインパターンの解説書です。拡張性、柔軟性、そしてパフォーマンスに重点を置いた新しいデザインパターンを多数紹介するだけでなく、実際にどのように適用すればよいのか、多くのサンプルコードを例示しながら、J2EEアプリケーション開発の極意を説いています。J2EE開発者の座右の書となる決定版です。
■目次
1章 Javaエンタープライズデザイン
1.1 デザインパターン
1.2 J2EE
1.3 アプリケーション層
1.4 主要な開発コンセプト
2章 UML
2.1 UMLの起源
2.2 『荒野の7人』
2.3 UMLとソフトウェア開発ライフサイクル
2.4 ユースケース図
2.5 クラス図
2.6 相互作用図
2.7 アクティビティ図
2.8 配置図
3章 プレゼンテーション層のアーキテクチャ
3.1 サーバサイドのプレゼンテーション層
3.2 アプリケーション構造
3.3 中核コントローラの構築
4章 高度なプレゼンテーション層デザイン
4.1 Webアプリケーションにおける再利用
4.2 コントローラの拡張
4.3 高度なビュー
5章 プレゼンテーション層のスケーラビリティ
5.1 スケーラビリティとボトルネック
5.2 コンテンツキャッシング
5.3 リソースプール
6章 ビジネス層
6.1 ビジネス層
6.2 ドメインオブジェクト
7章 層と層の間の通信
7.1 Data Transferパターン
8章 データベースとデータパターン
8.1 データアクセスパターン
8.2 Primary Keyパターン
8.3 オブジェクトリレーショナルマッピング
9章 ビジネス層のインタフェース
9.1 ビジネスロジックの抽出
9.2 リモートサービスへのアクセス
9.3 リソースの特定
10章 エンタープライズにおける並行処理
10.1 トランザクション管理
10.2 一般的な並列処理パターン
10.3 並列処理の実装
11章 メッセージング
11.1 メッセージングと統合
11.2 メッセージ配信パターン
11.3 メッセージタイプ
11.4 メッセージの関連付け
11.5 メッセージクライアントパターン
11.6 メッセージングの統合
11.7 参考文献
12章 J2EEアンチパターン
12.1 アンチパターンの原因
12.2 アーキテクチャのアンチパターン
12.3 プレゼンテーション層のアンチパターン
12.4 EJBアンチパターン
付録A プレゼンテーション層のパターン
付録B ビジネス層のパターン
付録C メッセージングパターン
付録D J2EEアンチパターン
索引 (参考:honto)

↓全て表示 ↑少なく表示
内容サンプル

(引用元Amazon)

 
J2EEデザインパターン
発売日 2009/06/30
(2021/09/17 12:01時点)

  

「AIエンジニアのための機械学習システムデザインパターン」

機械学習システム構築に必要な
デザインパターンがここにある!

【本書の背景】
Pythonを用いた機械学習のモデル開発事例は多数ありますが、
そのモデルをビジネスやシステムに組み込み、運用する事例や方法論は多くありません。
そのため、AIを組み込んだ実装モデルをまとめた、
「機械学習システムのデザインパターン」に注目が集まっています。

【対象読者】
・AIエンジニア
・システムエンジニア
・機械学習を本番システムとして使うための開発、運用方法で悩んでいるエンジニアの方

【本書の概要】
本書は機械学習を有効活用するためにはシステムに組み込むための設計や
実装が必要と考え、機械学習システムのデザインパターンを集めて解説した書籍です。
機械学習システムのグランドデザインおよびPythonによる機械学習システムの実装例を説明しつつ、
機械学習を本番活用するための方法論や、運用、改善ノウハウについて解説します。
本書で扱うプラットフォームには、コードの再現実行を担保するため、
DockerとKubernetesを活用します。
機械学習の学習から評価、QAを行い、推論器をリリースして
運用するまでの一連の流れをアーキテクチャやコードとともに解説します。

【デザインパターンのサンプル】
本書で解説している実際のサンプルコードをGitHubからダウンロードして利用可能です。

【本書のゴール】
・機械学習を実用化する方法が学べる
・Pythonによる機械学習ワークフローおよびWebアプリケーション開発の概要を学べる
・機械学習を組み込んだシステムの運用ノウハウを得られる
・機械学習システムのトラブルシューティングや調査方法を学べる

【著者プロフィール】
澁井 雄介(しぶい・ゆうすけ)
株式会社ティアフォー所属。
MLOpsエンジニア、インフラエンジニア、ARエンジニア、ネコ2匹の飼い主。家に猫用ハンモックが4台ある。
本業で自動運転のためのMLOps基盤をKubernetesで開発しつつ、趣味でARとEdge AIを組み合わせて遊んでいる。
過去にはSIer、外資ソフトウェアベンダー、スタートアップで新規プロダクトの起ち上げ、大規模システム運用、チームマネジメントに従事。
前職メルカリにて機械学習をシステムに組み込むデザインパターンを執筆、公開。
・GitHubで「mercari/ml-system-design-pattern」と検索

※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。


↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
目次
■Part 1 機械学習とMLOps
CHAPTER 1 機械学習システムとは
1.1 機械学習、MLOps、システム
1.2 ユーザに使ってもらえる機械学習を目指して
1.3 機械学習システムに必要なもの
1.4 機械学習システムをパターン化する
1.5 本書の構成
■Part 2 機械学習システムを作る
CHAPTER 2 モデルを作る
2.1 モデルの作成
2.2 アンチパターン―Only meパターン―
2.3 プロジェクトとモデルとバージョニング
2.4 パイプライン学習パターン
2.5 バッチ学習パターン
2.6 アンチパターン―複雑パイプラインパターン―
CHAPTER 3 モデルをリリースする
3.1 学習環境と推論環境
3.2 アンチパターン―バージョン不一致パターン―
3.3 モデルの配布と推論器の稼働
3.4 モデルインイメージパターン
3.5 モデルロードパターン
3.6 モデルの配布とスケールアウト
CHAPTER 4 推論システムを作る
4.1 なぜシステムを作るのか
4.2 Webシングルパターン
4.3 同期推論パターン
4.4 非同期推論パターン
4.5 バッチ推論パターン
4.6 前処理・推論パターン
4.7 直列マイクロサービスパターン
4.8 並列マイクロサービスパターン
4.9 時間差推論パターン
4.10 推論キャッシュパターン
4.11 データキャッシュパターン
4.12 推論器テンプレートパターン
4.13 Edge AIパターン
4.14 アンチパターン―オンラインビッグサイズパターン― 
4.15 アンチパターン―オールインワンパターン―
■Part 3 品質・運用・管理
CHAPTER 5 機械学習システムを運用する
5.1 機械学習の運用
5.2 推論ログパターン
5.3 推論監視パターン
5.4 アンチパターン―ログなしパターン―
5.5 アンチパターン―そして誰もいなくなったパターン―
CHAPTER 6 機械学習システムの品質を維持する
6.1 機械学習システムの品質と運用
6.2 機械学習システムの正常性評価指標
6.3 負荷テストパターン
6.4 推論サーキットブレーカーパターン
6.5 シャドウA/Bテストパターン
6.6 オンラインA/Bテストパターン
6.7 パラメータベース推論パターン
6.8 条件分岐推論パターン
6.9 アンチパターン―オフラインのみパターン―
CHAPTER 7 End-to-EndなMLOpsシステムの設計
7.1 課題と手法
7.2 需要予測システムの例
7.3 コンテンツ投稿サービスの例
7.4 まとめ

↓全て表示↑少なく表示
Users Voice
たった今到着しました!背表紙に傷が付かないようにセロファン付けて下さるなど、丁寧な御送付有り難うございました! (参考:YahooShopping)

↓全て表示 ↑少なく表示
とても参考になる本。大規模サービスを前提に機械学習モデルの開発方法のパターンやサービス運用時のパターンまでサンプルコードとともにとても詳しく記載されている。モデルをリリースする際の方法を検討している場合、一度は読んでみると良いかと思われる。 (参考:honto)

↓全て表示 ↑少なく表示
内容サンプル

(引用元Amazon)

 
著者略歴
澁井雄介(シブイユウスケ)
株式会社ティアフォー所属。MLOpsエンジニア、インフラエンジニア、ARエンジニア。過去にはSIer、外資ソフトウェアベンダー、スタートアップで新規プロダクトの起ち上げ、大規模システム運用、チームマネジメントに従事。前職メルカリにて機械学習をシステムに組み込むデザインパターンを執筆、公開(本データはこの書籍が刊行された当時に掲載されていたものです)

  

「増補改訂版Java言語で学ぶデザインパターン入門」

さらにわかりやすくなった! デザインパターン入門書の決定版!!

GoFの『デザインパターン』で紹介された23個のパターンを、オブジェクト指向の初心者にもわかるようにやさしく解説。
すべてのパターンについて、Javaのサンプルプログラムを掲載。「デザインパターンQ&A」を新たに加筆。


●第1部 デザインパターンに慣れる

第1章 Iterator--1つ1つ数え上げる
第2章 Adapter--一皮かぶせて再利用

●第2部 サブクラスにまかせる

第3章 Template Method--具体的な処理をサブクラスにまかせる
第4章 Factory Method--インスタンス作成をサブクラスにまかせる

●第3部 インスタンスを作る

第5章 Singleton--たった1つのインスタンス
第6章 Prototype--コピーしてインスタンスを作る
第7章 Builder--複雑なインスタンスを組み立てる
第8章 Abstract Factory--関連する部品を組み合わせて製品を作る

●第4部 分けて考える

第9章 Bridge--機能の階層と実装の階層を分ける
第10章 Strategy--アルゴリズムをごっそり切り替える

●第5部 同一視

第11章 Composite--容器の中身の同一視
第12章 Decorator--飾り枠と中身の同一視

●第6部 構造を渡り歩く

第13章 Visitor--構造を渡り歩きながら仕事をする
第14章 Chain of Responsibility--責任のたらい回し

●第7部 シンプルにする

第15章 Facade--シンプルな窓口
第16章 Mediator 相手は相談役一人だけ

●第8部 状態を管理する

第17章 Observer--状態の変化を通知する
第18章 Memento--状態を保存する
第19章 State--状態をクラスとして表現する

●第9部 無駄をなくす

第20章 Flyweight--同じものを共用して無駄をなくす
第21章 Proxy--必要になってから作る

●第10部 クラスで表現する

第22章 Command--命令をクラスにする
第23章 Interpreter--文法規制をクラスで表現する

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
目次
第1部 デザインパターンに慣れる
第2部 サブクラスにまかせる
第3部 インスタンスを作る
第4部 分けて考える
第5部 同一視
第6部 構造を渡り歩く
第7部 シンプルにする
第8部 状態を管理する
第9部 無駄をなくす
第10部 クラスで表現する
Users Voice
実際にソースが書いてあってわかりやすい。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
「この本で初めてデザインパターンが理解できた」「UMLとイラストを交えた解説がとてもわかりやすい」と、多くの読者から絶賛された大ロングセラーの増補改訂版。原典『デザインパターン』で紹介された全23のパターンを、Javaによる実装を含めて解説。
2001年6月の初版刊行以来、多くの読者から圧倒的に支持されてきた前著の増補改訂版です。改訂にあたっては、前著の内容を全面的に見直して、文章や表記をより適切な表現に改めています。
また、デザインパターンについて、読者が誤解しやすい点、間違いやすい点を、巻末に「Q&A」として追加しています。
デザインパターンについて学び、実践で使用したいプログラマはもちろん、オブジェクト指向の本質を理解したい人に最適の1冊です。 (参考:honto)

↓全て表示 ↑少なく表示
もちろんこの本だけでデザインパターンを完璧に習得しようとしたら不足なのはわかってるよ。でもさ「スッキリわかるJava」なんかでやっとJavaやオブジェクト指向の入り口までたどり着いた人間にとっては、本書が救世主のように感じられたヨ。これから先GoF本とかリファクタリングとかも読むと思うけど、イキナリじゃ難しすぎる。だからJavaに入門した後、次に読むにはこういうわかりやすい本が有用。 (参考:honto)

↓全て表示 ↑少なく表示
内容サンプル

(引用元Amazon)

 
  

「分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計」

本書は、コンテナを使った分散システムのデザインパターンについて解説する書籍です。
コンテナとコンテナオーケストレーションを使うことで、分散システムの設計をパターン化でき、スケーラブルで信頼性の高いサービスをすばやく構築できます。
はじめにシングルノードパターンとして、分散システム内の個別ノード上に存在する再利用可能なパターンやコンポーネントについて説明し、次にWebアプリケーションのように継続的にサービスを提供するシステムを対象にしたマルチノードの分散パターンを紹介します。
さらにイベント駆動処理、ワークフローの統合を含む大規模なパッチデータ処理の分散システムパターンを解説します。
可用性の高い分散システムの開発が効率的に行えるパターンを多数紹介する本書は、開発及びインフラエンジニア必携の一冊です。
 
目次
第1部 シングルノードパターン(サイドカー
アンバサダ
アダプタ)
第2部 マルチノードパターン(レプリカがロードバランスされたサービス
シャーディングされたサービス
スキャッタ・ギャザー
ファンクションとイベント駆動処理
オーナーシップの選出)
第3部 バッチ処理パターン(ワークキューシステム
イベント駆動バッチ処理
協調的バッチ処理
まとめ:新しい始まり?)

↓全て表示↑少なく表示
Users Voice
複雑になっていきながらも冗長性、耐障害性、高可用性が求められるようになってきたオンラインシステムをどのように構築していけばよいかパターン化を試みたもの。
デザインパターンは「シングルノード」「マルチノード」「バッチ処理」の3構成に分類されている。
本書の前提としてKubernetesがあるので、パターンの記述もKubernetesを意識したものになっている。
また、サンプルコードが各所に出てくるが、Go言語、Node.js、Pythonなどさまざまな言語で記述されている。
「シングルノード」に出てくる「サイドカー」は「関心の分離("アプリが開発したもの"と"運用が入れたい仕組み")」という意味で確かにと思う点があった。
また、マルチノードにある「ロック」で気を付けなければならない点が多数あることは大変勉強になった。
出てくるサンプルコードがKubernetesをベースに多種多様な言語が出てくるのでかなりの知識がないと読みづらい。
また、内容も「まぁそうだよね」といったことが多かった。
使える何かを学習したい、と思って読むと残念な気分になる。
時間に余裕があっていろんな人の意見を参考にしてみたい、くらいの気持ちで読むといいと思う。 (参考:honto)

↓全て表示 ↑少なく表示
k8s基盤構築を進める上でのデザインパターンを知識として習得する為に読んだ
サイドカーやサービスディスカバリなど用語レベルでしか知らなかった部分の実例が書かれていたことで、実務においてもより具体的な事例をイメージしながら設計を進めることができそう
ちょっとむずかしい部分もあったので読み飛ばした部分もある (参考:honto)

↓全て表示 ↑少なく表示

  

「オブジェクト指向における再利用のためのデザインパターン」

オブジェクト指向における再利用のためのデザインパターン
(著)ガンマ,エリック, ジョンソン,ラルフ, ヘルム,リチャード, ブリシディース,ジョン
総合評価
(2021/09/17 12:01時点)
オブジェクト指向ソフトウェア設計の際に繰り返し現れる重要な部品をデザインパターンとして記録し、カタログ化。改訂版ではこれにCD−ROMを添付、現場でブラウザを通して即利用できるパターンカタログデジタル版を収録。特別付録として、原書にはないJavaのサンプルコードを追加。
【技術書翻訳名著シリーズ】
ソフトウェア開発のバイブル群! 弊社がこれまでに刊行した翻訳技術書の中から、長年読者から支持され続けている名著を厳選したのが、本シリーズです。移り変わりの激しいコンピュータ業界で、普遍性を保ち続ける定番をお届けします。ソフトウェア開発の上流から下流まで、入門書からエキスパート向けまで、技術者に求められる選りすぐりの情報がここにあります。
 
内容サンプル

(引用元Amazon)

 
目次
概論
事例ードキュメントエディタの設計
デザインパターン・カタログ(生成に関するパターン
構造に関するパターン
振る舞いに関するパターン)
終わりに
Users Voice
もともと知っているものもあって、当然パターンかされているのでほっとする。
もともと知らなかったパターンもあった。参考に覚えておく。そして、
自分が無意識で作成したプログラムに、あっこれはこのパターンだと後で気がつく。自然と使えるようになっている自分に驚く。そのようになるための本。 (参考:honto)

↓全て表示 ↑少なく表示
オブジェクト指向ソフトウェア設計の際に繰り返し現れる重要な部品をデザインパターンとして記録し、カタログ化。改訂版ではこれにCD−ROMを添付、現場でブラウザを通して即利用できるパターンカタログデジタル版を収録。
特別付録として、原書にはないJavaのサンプルコードを追加。 (参考:honto)

↓全て表示 ↑少なく表示
本書は、エリック・ガンマ、ラルフ・ジョンソン、リチャード・ヘルム、ジョン・ブリシディースの所謂、オブジェクト指向の4人組(Gof, Gang of four)の共著です。
デザインパターンとは、型紙のことです。
上着を作りたければ、上着の型紙が必要です。
上着の型紙は1種類とは限りません。
デザイン(設計)に応じて、数種類から数千種類の型紙から選ぶ必要があります。
10や20の型紙を知っているだけで、使いこなしていると勘違いすることがないように、本書をじっくり読みましょう。
デザインパターンのことをよく知らないで、既存のソフトを修正してプログラムを作っているという場合もしばしばあります。
本書は、そのままデザインパターンのことをよくしらないまま使いつづけるのにも役立ちます。
デザインパターンの使い方を覚えるのにも役立つと思います。
建築物でも、類似の建物を建てる場合には、設計を再利用することがある。
ソフトウェア開発でも、対象が似ていれば、ソフトウェアも似ていていいかもしれない。
オブジェクト指向とは、物(オブジェクト)思考なのだから、その設計(デザイン)も、似ていて当然かもしれない。
設計の再利用は自然の流れである。
課題てゃ、再利用する設計が、抽象的すぎることかもしれない。
もっと、具体的な会計システムのような厳密に定義できるものだとよかったかもしれない。
デザインパターンという設計の基本的な例題を使うという視点では、 結城さんが書いた「java言語で学ぶデザインパターン入門」「java言語で学ぶデザインパターン入門マルチスレッド編」を合わせて読むとよいかもしれません。 結城さんは、長年、マニュアル本をたくさん書かれているので、さまざまな情報源から情報を収集し、体系的に説明するのに長けていると思います。 (参考:honto)

↓全て表示 ↑少なく表示

  

 

デザインパターンの本 最新・高評価のおすすめの5冊

以下が最新(2018年以降発売本)で高評価の、最新おすすめのデザインパターン関連の本の5冊の詳細です。

(2021/09/17 12:01 更新)

 

「AIエンジニアのための機械学習システムデザインパターン」

機械学習システム構築に必要な
デザインパターンがここにある!

【本書の背景】
Pythonを用いた機械学習のモデル開発事例は多数ありますが、
そのモデルをビジネスやシステムに組み込み、運用する事例や方法論は多くありません。
そのため、AIを組み込んだ実装モデルをまとめた、
「機械学習システムのデザインパターン」に注目が集まっています。

【対象読者】
・AIエンジニア
・システムエンジニア
・機械学習を本番システムとして使うための開発、運用方法で悩んでいるエンジニアの方

【本書の概要】
本書は機械学習を有効活用するためにはシステムに組み込むための設計や
実装が必要と考え、機械学習システムのデザインパターンを集めて解説した書籍です。
機械学習システムのグランドデザインおよびPythonによる機械学習システムの実装例を説明しつつ、
機械学習を本番活用するための方法論や、運用、改善ノウハウについて解説します。
本書で扱うプラットフォームには、コードの再現実行を担保するため、
DockerとKubernetesを活用します。
機械学習の学習から評価、QAを行い、推論器をリリースして
運用するまでの一連の流れをアーキテクチャやコードとともに解説します。

【デザインパターンのサンプル】
本書で解説している実際のサンプルコードをGitHubからダウンロードして利用可能です。

【本書のゴール】
・機械学習を実用化する方法が学べる
・Pythonによる機械学習ワークフローおよびWebアプリケーション開発の概要を学べる
・機械学習を組み込んだシステムの運用ノウハウを得られる
・機械学習システムのトラブルシューティングや調査方法を学べる

【著者プロフィール】
澁井 雄介(しぶい・ゆうすけ)
株式会社ティアフォー所属。
MLOpsエンジニア、インフラエンジニア、ARエンジニア、ネコ2匹の飼い主。家に猫用ハンモックが4台ある。
本業で自動運転のためのMLOps基盤をKubernetesで開発しつつ、趣味でARとEdge AIを組み合わせて遊んでいる。
過去にはSIer、外資ソフトウェアベンダー、スタートアップで新規プロダクトの起ち上げ、大規模システム運用、チームマネジメントに従事。
前職メルカリにて機械学習をシステムに組み込むデザインパターンを執筆、公開。
・GitHubで「mercari/ml-system-design-pattern」と検索

※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。


↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
目次
■Part 1 機械学習とMLOps
CHAPTER 1 機械学習システムとは
1.1 機械学習、MLOps、システム
1.2 ユーザに使ってもらえる機械学習を目指して
1.3 機械学習システムに必要なもの
1.4 機械学習システムをパターン化する
1.5 本書の構成
■Part 2 機械学習システムを作る
CHAPTER 2 モデルを作る
2.1 モデルの作成
2.2 アンチパターン―Only meパターン―
2.3 プロジェクトとモデルとバージョニング
2.4 パイプライン学習パターン
2.5 バッチ学習パターン
2.6 アンチパターン―複雑パイプラインパターン―
CHAPTER 3 モデルをリリースする
3.1 学習環境と推論環境
3.2 アンチパターン―バージョン不一致パターン―
3.3 モデルの配布と推論器の稼働
3.4 モデルインイメージパターン
3.5 モデルロードパターン
3.6 モデルの配布とスケールアウト
CHAPTER 4 推論システムを作る
4.1 なぜシステムを作るのか
4.2 Webシングルパターン
4.3 同期推論パターン
4.4 非同期推論パターン
4.5 バッチ推論パターン
4.6 前処理・推論パターン
4.7 直列マイクロサービスパターン
4.8 並列マイクロサービスパターン
4.9 時間差推論パターン
4.10 推論キャッシュパターン
4.11 データキャッシュパターン
4.12 推論器テンプレートパターン
4.13 Edge AIパターン
4.14 アンチパターン―オンラインビッグサイズパターン― 
4.15 アンチパターン―オールインワンパターン―
■Part 3 品質・運用・管理
CHAPTER 5 機械学習システムを運用する
5.1 機械学習の運用
5.2 推論ログパターン
5.3 推論監視パターン
5.4 アンチパターン―ログなしパターン―
5.5 アンチパターン―そして誰もいなくなったパターン―
CHAPTER 6 機械学習システムの品質を維持する
6.1 機械学習システムの品質と運用
6.2 機械学習システムの正常性評価指標
6.3 負荷テストパターン
6.4 推論サーキットブレーカーパターン
6.5 シャドウA/Bテストパターン
6.6 オンラインA/Bテストパターン
6.7 パラメータベース推論パターン
6.8 条件分岐推論パターン
6.9 アンチパターン―オフラインのみパターン―
CHAPTER 7 End-to-EndなMLOpsシステムの設計
7.1 課題と手法
7.2 需要予測システムの例
7.3 コンテンツ投稿サービスの例
7.4 まとめ

↓全て表示↑少なく表示
Users Voice
たった今到着しました!背表紙に傷が付かないようにセロファン付けて下さるなど、丁寧な御送付有り難うございました! (参考:YahooShopping)

↓全て表示 ↑少なく表示
とても参考になる本。大規模サービスを前提に機械学習モデルの開発方法のパターンやサービス運用時のパターンまでサンプルコードとともにとても詳しく記載されている。モデルをリリースする際の方法を検討している場合、一度は読んでみると良いかと思われる。 (参考:honto)

↓全て表示 ↑少なく表示
内容サンプル

(引用元Amazon)

 
著者略歴
澁井雄介(シブイユウスケ)
株式会社ティアフォー所属。MLOpsエンジニア、インフラエンジニア、ARエンジニア。過去にはSIer、外資ソフトウェアベンダー、スタートアップで新規プロダクトの起ち上げ、大規模システム運用、チームマネジメントに従事。前職メルカリにて機械学習をシステムに組み込むデザインパターンを執筆、公開(本データはこの書籍が刊行された当時に掲載されていたものです)

  

「入門 監視 ―モダンなモニタリングのためのデザインパターン」

あなたのシステムはきちんと動いていると言えますか?
本書は、システムのどの部分をどのように監視すべきか、また監視をどのように改善していくべきかについて解説する書籍です。
前半で監視のベストプラクティス、デザインパターン/アンチパターンを示して、監視の基本原則を詳しく説明し、後半でフロントエンド、アプリケーション、サーバ、ネットワーク、セキュリティの各テーマで強力な監視の基盤を設計して実装するための方法を示します。
監視対象が変化し、システムアーキテクチャが進化する中で、従来から変わらない監視の基本を示しながら、時代に合った監視の実践を解説する本書は、監視についての理解を深めたいエンジニア必携の一冊です。
日本語版では、松木雅幸(@songmu)氏による監視SaaSの導入や活用方法を付録として収録しています。
 
目次
第1部 監視の原則(監視のアンチパターン
監視のデザインパターン
アラート、オンコール、インシデント管理
統計入門)
第2部 監視戦略(ビジネスを監視する
フロントエンド監視
アプリケーション監視
サーバ監視
ネットワーク監視
セキュリティ監視
監視アセスメントの実行)

↓全て表示↑少なく表示
Users Voice
この本はとても良かったです。こんなものも監視するのか、という知見が深まる部分や気づきがありました。 エンジニアになった人は是非一冊持っていてください。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
本自体は200ページくらいしかなく、その中で監視に関するあらゆる方面の情報が記載されています。
■良いところ
・比較的ボリュームが少ない中で、監視に関わる情報が網羅されています。従って、監視に関わる業務に携わる場合は、一読しておくと考え方が整理されるかもしれません。
■悪いところ
・誰もが思う疑問についての解決策も「チームにとってどちらが良いかをちゃんと考えましょう」「知っている人に聞きに行きましょう」「システムによって最適な答えは変わります」という結論になっているものばかりで、それを言ってしまっては身も蓋もない…という印象。それをわざわざ言う必要ある?という疑問が残ります。
・上記の通りなので、書かれていることは至極もっともなのですが、「まぁ、そうですよね」と思う程度で新しい気付きはありませんでした。
・本書はNagiosとSNMPを嫌っているのですが、その嫌っている理由も大して納得のいく論理的な説明はありませんでした(確かに感覚的に同意はするのですが)。著者が大々的に嫌うんならちゃんと理由を示してほしかった。
この本のターゲットとなる読者層が結構難しい気がします。
全く監視に関わったことがない場合は監視の苦しみも分からないし、この本は全く実践的ではないので、読んだからといってすぐに監視設計ができるかというとそうでもない気がします。かといって監視に関わったことがある人であれば、書いてあることは「確かにそうだ」とは思うものの、別に目からウロコというわけでもなく、薄々思っていたことを「まぁ、そうですよね」と思う程度であるという…。そう考えると、「監視に関わる業務を行ってはいるものの、特に課題感もなく携わって来た人」が読むと良いとは思います。
この本は、薄々個人で感じていたことについての答え合わせをしたり、はっきりと言語化するために使うのが良い気がします。
入門監視、という分野においてこのレベルで記述が網羅されている本は少ないと思うので、一度は読んでおいても良いとは思いますが、何度も見る本ではないかなと思いました。 (参考:honto)

↓全て表示 ↑少なく表示
「1.3.2 アラートに関しては、OSのメトリクスはあまり意味がない」は納得いく。ウェブサーバーならレスポンスが、バッチ処理ならスループットが順調なら何も問題ない。動いているかを監視するとは良い表現。
サーバー監視だけと思いきや、ビジネス、フロントエンド、バックエンド、ネットワークと広範にカバーしている。セキュリティまである。しかも「これはこうすべき」に手短で明瞭な論拠も添えられているので、むやみな暗記モノになってないのも良い。
未経験からの2年目突入くらいで読むと、実り多い2年目を過ごせるのではなかろうか。というような本。
未経験の方が読んでも、範囲広いし苦行でしかない気がする。こんなことになってるので、初年度にやることじゃないな。無理無理。 https://magazine.rubyist.net/articles/0059/0059-Ruby-Rails-Beginners-Guide.html (参考:honto)

↓全て表示 ↑少なく表示
著者略歴
ジュリアン,マイク(Julian,Mike)
アプリケーションやインフラについて、企業がよりよい監視の仕組みを作るのを手伝うコンサルタント。監視についてのあらゆることを扱うオンライン情報誌「Monitoring Weekly」の編集者でもある。Taos Consulting、PeakHosting、Oak Ridge National Labなどで、オペレーションエンジニアあるいはDevOpsエンジニアとして働いた経験を持つ。テネシー州ノックスビル出身で、カリフォルニア州サンフランシスコ在住

松浦隼人(マツウラハヤト)
人力翻訳コミュニティYakst管理人兼翻訳者。本業はインフラエンジニアで、Web企業にて各種サービスのデータベースを中心に構築・運用を行った後、現職ではRuby on Rails製パッケージソフトウェアのテクニカルサポートを行っている(本データはこの書籍が刊行された当時に掲載されていたものです)

↓全て表示↑少なく表示

  

「モダンC言語プログラミング 統合開発環境、デザインパターン、エクストリーム・プログラミング、テスト駆動開発、リファクタリ...」

C言語開発をモダンにしよう!

本書は、統合開発環境、デザインパターン、エクストリーム・プログラミング、テスト駆動開発、リファクタリング、継続的インテグレーションなどのモダンな開発スタイルを組込み開発に適用する方法を解説します。
 
内容サンプル

(引用元Amazon)

 
Users Voice
立ち読みで欲しいと思った。
グレードアップ出来そうな実用的な構造化プログラミングが載っていた様な。
あなたはどう思いますか? (参考:honto)

↓全て表示 ↑少なく表示
■知りたいこと
Cによる組み込み開発において、
・デザインパターンをどう実現するか
・TDD(テスト駆動開発)やCI(継続的インテグレーション)をどう実現するか
■総評
Cによるオブジェクト指向プログラミングやデザインパターンは、実用性がないと思う。
テストについては、モック化やstatic関数などの難しいところをどうすればいいのかを知りたかったが、結局は人手で頑張らなくてはいけないという当たり前の結論であった。
単体テストは労力を注ぎ込む領域ではないように思えるので、有償ツールがあるなら、それを買って済ませた方がいいのかもしれない。
■TDDの実践に必要なツール
・単体テストツール
 Google Testは便利そう。
・カバレッジ測定ツール
・モック化ツール
 モック化ツールは適当なものが存在しない。自分でCの関数をモック化する必要がある。
■OOP, デザインパターン
Cによるオブジェクト指向プログラミングの実現方法、および、Cに対するデザインパターンの適用方法が記載されているが、OOPはかなり無理があると感じた。変更局所化という意味での保守性は上がるかもしれないが、可読性という意味での保守性は下がると思う。やるとしてもLinuxカーネルのように関数ポインタを使うまで。ここまでやるなら最初からC++を使う方がいいと思う。
デザインパターンの章は読んでも意味がないと思い、読まなかった。
■単体テスト
・単体テストは品質保証ではない。ケアレスミスを発見するためのダブルチェックぐらいに考えるのがよい。テストを厳密に書いてしまうと、テスト作成作業のコストが単体テストのメリットを上回ってしまうことや、コード修正時にテストが壊れやすくなってしまうことなどの問題が発生する。
・モック化の方法
 (1)「ライブラリ差し替え」「マクロを利用した差し替え」…現実的
  ①H/Wアクセス箇所をライブラリにまとめておき、単体テスト時はライブラリをにせものに差し替え
  ②H/W呼び出しの入り口をすべてマクロにしておき、単体テスト時はマクロ定義を変更
 (2)「オブジェクト指向によるモックの実現」………保守性(可読性)が問題だと思う
 (3)「関数ポインタとマクロによるモックの実現」…保守性(可読性)が問題だと思う
・static関数をどうやってテストするのか
 (1) テストしない:
   あるモジュールが、外部公開I/Fのみを使ってテスト可能である場合に有効な考え方。数学的な処理や、アルゴリズムを実装したモジュールが該当(=副作用がない場合?)
 (2) テストコードからテスト対象のソースコードをincludeする。
■CI
「6,4 CI入門編」は、実際にCIを始める際に読むと役に立つかもしれない。 (参考:honto)

↓全て表示 ↑少なく表示
[備考]
https://www.amazon.co.jp/gp/search?field-keywords=%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95&index=blended&tag=mozillajapan-fx-22&sourceid=Mozilla-search&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&linkCode=qs (参考:honto)

↓全て表示 ↑少なく表示
内容サンプル

(引用元Amazon)

 
著者略歴

著:花井 志生
入社当時はC/C++を用いた組み込み機器(POS)用のアプリケーション開発に携わる。
10年ほどでサーバサイドに移り、主にJavaを使用したWebアプリケーション開発に軸足を移し、
トラブルシュートからシステムの設計、開発を生業とする。


  

「分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計」

本書は、コンテナを使った分散システムのデザインパターンについて解説する書籍です。
コンテナとコンテナオーケストレーションを使うことで、分散システムの設計をパターン化でき、スケーラブルで信頼性の高いサービスをすばやく構築できます。
はじめにシングルノードパターンとして、分散システム内の個別ノード上に存在する再利用可能なパターンやコンポーネントについて説明し、次にWebアプリケーションのように継続的にサービスを提供するシステムを対象にしたマルチノードの分散パターンを紹介します。
さらにイベント駆動処理、ワークフローの統合を含む大規模なパッチデータ処理の分散システムパターンを解説します。
可用性の高い分散システムの開発が効率的に行えるパターンを多数紹介する本書は、開発及びインフラエンジニア必携の一冊です。
 
目次
第1部 シングルノードパターン(サイドカー
アンバサダ
アダプタ)
第2部 マルチノードパターン(レプリカがロードバランスされたサービス
シャーディングされたサービス
スキャッタ・ギャザー
ファンクションとイベント駆動処理
オーナーシップの選出)
第3部 バッチ処理パターン(ワークキューシステム
イベント駆動バッチ処理
協調的バッチ処理
まとめ:新しい始まり?)

↓全て表示↑少なく表示
Users Voice
複雑になっていきながらも冗長性、耐障害性、高可用性が求められるようになってきたオンラインシステムをどのように構築していけばよいかパターン化を試みたもの。
デザインパターンは「シングルノード」「マルチノード」「バッチ処理」の3構成に分類されている。
本書の前提としてKubernetesがあるので、パターンの記述もKubernetesを意識したものになっている。
また、サンプルコードが各所に出てくるが、Go言語、Node.js、Pythonなどさまざまな言語で記述されている。
「シングルノード」に出てくる「サイドカー」は「関心の分離("アプリが開発したもの"と"運用が入れたい仕組み")」という意味で確かにと思う点があった。
また、マルチノードにある「ロック」で気を付けなければならない点が多数あることは大変勉強になった。
出てくるサンプルコードがKubernetesをベースに多種多様な言語が出てくるのでかなりの知識がないと読みづらい。
また、内容も「まぁそうだよね」といったことが多かった。
使える何かを学習したい、と思って読むと残念な気分になる。
時間に余裕があっていろんな人の意見を参考にしてみたい、くらいの気持ちで読むといいと思う。 (参考:honto)

↓全て表示 ↑少なく表示
k8s基盤構築を進める上でのデザインパターンを知識として習得する為に読んだ
サイドカーやサービスディスカバリなど用語レベルでしか知らなかった部分の実例が書かれていたことで、実務においてもより具体的な事例をイメージしながら設計を進めることができそう
ちょっとむずかしい部分もあったので読み飛ばした部分もある (参考:honto)

↓全て表示 ↑少なく表示

  

「アイデア実現のための Raspberry Piデザインパターン 電子回路からMathematicaによるArduinoコ...」

※このKindle本はプリント・レプリカ形式で、Kindle Paperwhiteなどの電子書籍リーダーおよびKindle Cloud Readerではご利用いただけません。Fireなどの大きいディスプレイを備えたタブレット端末や、Kindle無料アプリ (Kindle for iOS、Kindle for Android、Kindle for PC、Kindle for Mac) でのみご利用可能です。また、文字列のハイライト、検索、辞書の参照、引用については、一部機能しない場合があります。文字だけを拡大することはできません。
※プリント・レプリカ形式は見開き表示ができません。
※この電子書籍は紙版書籍のページデザインで制作した固定レイアウトです。

Raspberry Piでアイデアを自由自在に実現するためのデザインパターンを整理。
本書は、Raspberry Piを使ってアイデアを自由自在に実現するための、デザインパターンを整理した書籍です。
Raspberry Piの入門書を読んだだけでは、思いついたアイデアをもとに、実際に動く電子工作を製作することはほぼ不可能です。本書では、アイデア実現に必要なソフトウェア、ハードウェア、部品の集め方、配線などのノウハウを、パターンメイドの方法でわかりやすく紹介しています。
ハードウェアを買い集めて、実際にハードウェアとソフトウェアを組んでみようと思い立った際に、ぜひ一読ください。

ステップ1 とりあえずRaspberry Piを動かしてみる
ステップ2 何かをRaspberry Piにつなげるしくみ
ステップ3 つなげた何かを動かす準備
ステップ4 手先を動かすことが必要
ステップ5 点灯させて押してみる
ステップ6 Arduinoとコラボする
ステップ7 動きを計ってみる
ステップ8 何かを表示してみる
ステップ9 何かを動かしてみる
ステップ10 電源は大事
ステップ11 Node.jsとコラボする
ステップ12 Mathematicaの使いこなし
ステップ13 手順も技術の1つ

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
内容サンプル

(引用元Amazon)

 
  

 

デザインパターン本「Kindle Unlmited 読み放題 人気ランキング」

「Kindle Unlimited」は、Amazonの定額本読み放題サービス。

実はそこにデザインパターンの本もそこそこあるんです。すなわち、定額で何冊も学習することも可能

Kindle Unlimitedの主な特徴としては、おおよそ以下の通り。

  • 雑誌がかなり充実
  • 豊富なKindle個人出版本がほとんど読み放題
  • 最近は出版社単行本も対応増加

個人的には雑誌が、IT系(CG WORLD等)、ガジェット系(Get Navi等)、ゲーム(ファミ通等)、など見たい雑誌が幅広く読めるのが大きな魅力。2冊以上読みたいものがあるだけで確実にお得です。

また、30日無料体験も可能なので、体験期間を利用して無料で学習してみるのもお得な学習法です。

以下がKindle Unlimited対応のデザインパターン関係の本人気ランキングです。

(2021/09/17 12:01 更新)
Rank製品価格
1
580円
2
1,584円
3
269円
4
99円
5
400円
6
99円
7
99円
8
1,200円
9
99円
10
Amazon Web Servicesクラウドデザインパターン設計ガイド 改訂版(日経BP Next ICT選書)...
発売日 2015/07/21
玉川 憲, 片山 暁雄, 鈴木 宏康, 野上 忍 (日経BP)
Kindle Unlimited対象
総合評価
5,980円
2,970円
2,970円
1,420円

 

関連:オブジェクト指向・プログラミング作法(リファクタリング)について学ぶ

以下では、デザインパターンの前提ともなるオブジェクト指向についてや、プログラミングのお作法・原則を学べるリファクタリングに関する書籍、も紹介しています。合わせてのぞいて見てください。

関連:最新おすすめのKindle端末

以下では最新のKindle端末について比較、おすすめ紹介しています、合わせてのぞいて見てください。

いじょうでっす。

コメント

タイトルとURLをコピーしました