Slide 1

Slide 1 text

アーキテクチャって
 どうやって決めれば良いの??
 hiroaki

Slide 2

Slide 2 text

Who am I ? 上田 裕耀(28)
 Backend, Infra, DevOps
 2018/04〜 食品メーカーの研究所
 2021/03〜 Webエンジニア
 経歴
 神奈川→埼玉→群馬→神奈川
 趣味
 サウナ & 筋トレ


Slide 3

Slide 3 text

そもそもアーキテクチャとは??


Slide 4

Slide 4 text

(と思っています)
 アプリケーションの課題を
 解決するための構造


Slide 5

Slide 5 text

アプリケーションの課題は色々ある
 コスト
 スケーラビリティ
 保守改修性
 パフォーマンス
 セキュリティ
 可用性


Slide 6

Slide 6 text

何かを優先すると他のレベルが下がってしまう。
 トレードオフの構造


Slide 7

Slide 7 text

アプリケーションの構造も色々
 モノリス
 分散システム
 同期
 非同期
 内部のレイヤー構造
 or
 or


Slide 8

Slide 8 text

結局、アーキテクチャって
 どうやって決めれば良いの??


Slide 9

Slide 9 text

ビジネスの要求に柔軟に対応できるような
 アーキテクチャを目指す
 使う技術に依存しない構造
 仕様の変更しやすい構造
 アプリケーション課題に合わせた構造


Slide 10

Slide 10 text

引用:『ソフトウェアアーキテクチャの基礎』P.250 図17-1』 
 アプリケーション課題に合わせた構造
 例:マイクロサービス


Slide 11

Slide 11 text

引用:『ソフトウェアアーキテクチャの基礎』P.263 図17-9』
 ⭕ 拡張性、保守改修性 etc. 
 ❌ DBの一貫性、コスト etc.
 アプリケーション課題に合わせた構造


Slide 12

Slide 12 text

使う技術に依存しない構造
 アプリケーション


Slide 13

Slide 13 text

使う技術に依存しない構造
 例:オニオンアーキテクチャ


Slide 14

Slide 14 text

SOLID原則やデザインパターンあたりが効果的
 仕様の変更しやすい構造
 S
 O
 L
 I
 D
 単一責任の原則
 オープン・クローズドの原則
 リスコフの置換原則
 インターフェース分離の原則
 依存性逆転の原則


Slide 15

Slide 15 text

常にアプリケーションの課題を考え続けて、 betterな選択をしていく。
 各サービス内では、独立性を高めた
 保守改修性の高い設計を目指す。


Slide 16

Slide 16 text

Reference

Slide 17

Slide 17 text

ご清聴ありがとうございました!