SlideShare a Scribd company logo
1 of 13
Download to read offline
アーキテクチャにまつわる話
アーキテクチャにまつわる話 1
アーキテクチャとは
設計や実装の道しるべを作る
道しるべがないと迷子になる
今回取り上げるアーキテクチャはアプリケーションにスポットを当てたもの
システムアーキテクチャやエンタープライズアーキテクチャは対象外
アーキテクチャにまつわる話 2
アーキテクチャを使わなかったら?
一つのクラスにいろいろな処理を持たせてしまいがち
修正したときの影響範囲が大きいものになりがち
拡張しづらい
etc..
アーキテクチャにまつわる話 3
アーキテクチャを使用するケース
1ヶ月以上利用するサービスであればなにかしらのアーキテクチャを使用したほう
がいい
1回しか使用されないアプリケーションでは不要
アーキテクチャにまつわる話 4
3層アーキテクチャ
Webアプリケーションの基本的なアーキテクチャ
課題
アプリケーション層の役割が大きくなりがち
アーキテクチャにまつわる話 5
レイヤードアーキテクチャ
3層アーキテクチャにドメイン層を追加
アーキテクチャにまつわる話 6
ドメインとは
ビジネスルールや仕様の関心事を取り扱う
例: 年齢
数値のみを扱う
マイナスになることはない
アーキテクチャにまつわる話 7
ユースケースとは
利用者とドメインの相互のやり取りを明確にしたのもの
例: 年齢機能
生年月日から1年経過したら年齢を1加算する
年齢を取得する
年齢を更新する
アーキテクチャにまつわる話 8
レイヤードアーキテクチャの課題
ドメイン層がインフラ層に依存している
インフラ層で変更があったときにドメイン層も変更する必要がある
アーキテクチャにまつわる話 9
オニオンアーキテクチャ
依存性逆転の原則を使ってインフラ層を外側に移動
SOLIDの原則のうちの一つ(Dependency inversion principle)
ドメイン層が中心に存在できる
引用元: https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/
アーキテクチャにまつわる話 10
ヘキサゴナルアーキテクチャ
アプリケーションとそれ以外の情報(DB等)をつけ外しできるようにする
ポートアンドアダプターアーキテクチャとも言う
引用元: https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)
アーキテクチャにまつわる話 11
クリーンアーキテクチャ
オニオンやヘキサゴナル等の概念を統合してより具体的にした
引用元: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
アーキテクチャにまつわる話 12
アーキテクチャ年表
199?年: 3層アーキテクチャ
????年: レイヤードアーキテクチャ
2005年: ヘキサゴナルアーキテクチャ
2008年: オニオンアーキテクチャ
2012年: クリーンアーキテクチャ
アーキテクチャにまつわる話 13

More Related Content

Similar to A story about architecture

Similar to A story about architecture (8)

サービス学とか何か(応用サービス工学)
サービス学とか何か(応用サービス工学)サービス学とか何か(応用サービス工学)
サービス学とか何か(応用サービス工学)
 
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
 
アンケートシステムをm3.comから独立させる
アンケートシステムをm3.comから独立させるアンケートシステムをm3.comから独立させる
アンケートシステムをm3.comから独立させる
 
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
 
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
 
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかDevlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
 
組込みシステム産業振興機構さまプライベートセミナー(2017/11/02)
組込みシステム産業振興機構さまプライベートセミナー(2017/11/02)組込みシステム産業振興機構さまプライベートセミナー(2017/11/02)
組込みシステム産業振興機構さまプライベートセミナー(2017/11/02)
 
13_B_5 Who is a architect?
13_B_5 Who is a architect?13_B_5 Who is a architect?
13_B_5 Who is a architect?
 

Recently uploaded

Recently uploaded (8)

LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 

A story about architecture