{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/application-architecture-books","result":{"data":{"markdownRemark":{"id":"317d19ca-f941-508d-b6fd-cd57debfa19c","html":"<p>「MVC」、「MVVM」、「ドメインモデル」、「クリーンアーキテクチャ」など、「アプリケーションアーキテクチャ」に関する用語はたくさんあり、ソフトウェア開発に実践的に関わる上で学ぶことは外せません。</p>\n<p>この記事では、アプリケーションアーキテクチャについて解説した書籍 4 冊を紹介していきます。</p>\n<h2 id=\"clean-architecture-達人に学ぶソフトウェアの構造と設計\" style=\"position:relative;\"><a href=\"#clean-architecture-%E9%81%94%E4%BA%BA%E3%81%AB%E5%AD%A6%E3%81%B6%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E6%A7%8B%E9%80%A0%E3%81%A8%E8%A8%AD%E8%A8%88\" aria-label=\"clean architecture 達人に学ぶソフトウェアの構造と設計 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://amzn.to/3z5J697\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Clean Architecture 達人に学ぶソフトウェアの構造と設計</a></h2>\n<p><a href=\"https://www.amazon.co.jp/dp/B07FSBHS2V/ref=as_li_ss_il?ie=UTF8&linkCode=li2&tag=oshimayuki0d-22&linkId=988b104d3c8b778e5c82a245c329a487&language=ja_JP\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B07FSBHS2V&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li2&amp;o=9&amp;a=B07FSBHS2V\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>アプリケーションアーキテクチャの話で最近度々話題となる「クリーンアーキテクチャ」の解説書です。</p>\n<p>プログラミングパラダイムの話から、SOLID 原則、アプリケーションアーキテクチャについて解説されており、アプリケーション設計を学ぶ上で外せない 1 冊です。</p>\n<p>クリーンアーキテクチャ自体を採用するかは状況次第ですが、設計の考え方としてはいつでも参考にできるものなので、是非とも一度読んでみるべき書籍です。</p>\n<p>サンプルコードはないため、その部分は Web 上の情報などで補う必要があります。</p>\n<h2 id=\"アプリケーションアーキテクチャ設計パターン\" style=\"position:relative;\"><a href=\"#%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E8%A8%AD%E8%A8%88%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3\" aria-label=\"アプリケーションアーキテクチャ設計パターン permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://amzn.to/3ct6F1E\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">アプリケーションアーキテクチャ設計パターン</a></h2>\n<p><a href=\"https://www.amazon.co.jp/dp/B076BY4VJH/ref=as_li_ss_il?ie=UTF8&linkCode=li2&tag=oshimayuki0d-22&linkId=4b6652fefa1f3e7580814d685042e680&language=ja_JP\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B076BY4VJH&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li2&amp;o=9&amp;a=B076BY4VJH\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>2017 年に発売された、アプリケーションアーキテクチャ全般を解説した書籍です。</p>\n<p>サーバサイドからクライアントサイド、バッチ処理、システム間連携まで、アプリケーションアーキテクチャを非常に幅広く解説しています。</p>\n<p>Java の前提知識が求められることと、ページ数的にもボリュームがあることから、初学者向けとは言えないです。</p>\n<p>ある程度実務経験を積んだ上で、知識を整理したり、知らない部分を埋めるのに適しているのではないかと思います。</p>\n<h2 id=\"．ｎｅｔのエンタープライズアプリケーションアーキテクチャ-第２版\" style=\"position:relative;\"><a href=\"#%EF%BC%8E%EF%BD%8E%EF%BD%85%EF%BD%94%E3%81%AE%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3-%E7%AC%AC%EF%BC%92%E7%89%88\" aria-label=\"．ｎｅｔのエンタープライズアプリケーションアーキテクチャ 第２版 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://amzn.to/35SR8Ei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">．ＮＥＴのエンタープライズアプリケーションアーキテクチャ　第２版</a></h2>\n<p><a href=\"https://www.amazon.co.jp/dp/4822298485/ref=as_li_ss_il?ie=UTF8&linkCode=li2&tag=oshimayuki0d-22&linkId=113309ece3cf29433e9e84aa0c185e78&language=ja_JP\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4822298485&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li2&amp;o=9&amp;a=4822298485\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>アプリケーションの設計原則からアーキテクチャまでを解説した書籍です。</p>\n<p>後半は DDD についての解説が中心で、DDD のオススメ書籍として紹介されることも多いです。</p>\n<p>また、書籍の最後の方では CQRS やイベントソーシングといった発展的なアーキテクチャについてもかなりのページを割いて解説されています。</p>\n<p>タイトルに「.NET」とありますが、.NET の知識を前提とした解説はそれほど多くないので、Java などのオブジェクト指向言語を理解していれば読み進めることができます。</p>\n<h2 id=\"エンタープライズ-アプリケーションアーキテクチャパターン\" style=\"position:relative;\"><a href=\"#%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3\" aria-label=\"エンタープライズ アプリケーションアーキテクチャパターン permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://amzn.to/2TGAjKk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">エンタープライズ アプリケーションアーキテクチャパターン</a></h2>\n<p><a href=\"https://www.amazon.co.jp/dp/B01B5MX2O2/ref=as_li_ss_il?ie=UTF8&linkCode=li2&tag=oshimayuki0d-22&linkId=4ea40208c6f163ea86cdb5f25fe58e8a&language=ja_JP\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01B5MX2O2&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li2&amp;o=9&amp;a=B01B5MX2O2\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<p>アプリケーションアーキテクチャの原典のように紹介されることが多い書籍です。</p>\n<p>アプリケーションアーキテクチャの各種パターンがカタログ的に紹介されています。</p>\n<p>2005 年発売の書籍ということもあり、現在よく使われている用語と不一致な箇所があるなど、読み進めるには多少注意が必要です。</p>\n<h2 id=\"おわりに\" style=\"position:relative;\"><a href=\"#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB\" aria-label=\"おわりに permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>おわりに</h2>\n<p>アプリケーションアーキテクチャについて書かれた書籍を 4 冊紹介しましたが、どれもある程度の前提知識が必要で、初学者向けとは言いにくいです。\nある程度実務経験を積んでから、次のレベルアップのために読んでみるのがいいのではないでしょうか。</p>\n<p>また、アプリケーションアーキテクチャについては、DDD の文脈の中で解説されることも多いです。\n別記事「<a href=\"https://www.kanzennirikaisita.com/posts/ddd-books\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">【難易度別】ドメイン駆動設計 (DDD) の書籍 +α のまとめ</a>」に DDD の書籍をまとめているので、そちらも参照ください。\n特に</p>\n<ul>\n<li>『<a href=\"https://amzn.to/3z7a4Ns\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法</a>』</li>\n<li>『<a href=\"https://amzn.to/3uXftTT\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本</a>』</li>\n</ul>\n<p>の 2 冊はかなり初学者向けとなっており、アプリケーションアーキテクチャを学び始めるにも非常に良い書籍です。</p>","fields":{"slug":"/posts/application-architecture-books","tagSlugs":["/tag/architecture/"],"autoRecommendPosts":["ddd-books","refactoring-rearchitecting-books","linux-learning-roadmap","oop-books"]},"frontmatter":{"date":"2020-11-01T09:16:54.642Z","description":"「MVC」、「MVVM」、「ドメインモデル」、「クリーンアーキテクチャ」など、「アプリケーションアーキテクチャ」に関する用語はたくさんあり、ソフトウェア開発に実践的に関わる上で学ぶことは外せません。\nこの記事では、アプリケーションアーキテクチャについて解説した書籍 4 冊を紹介していきます。","tags":["architecture"],"title":"アプリケーションアーキテクチャに関する書籍 4 冊の紹介","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/ddd-books","https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/application-architecture-books"}},"staticQueryHashes":["251939775","3942705351","401334301"]}