Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
how to determine architecture
Search
hiroaki
October 08, 2022
Technology
1
190
how to determine architecture
hiroaki
October 08, 2022
Tweet
Share
More Decks by hiroaki
See All by hiroaki
Communication with Ubiquitous Language
hiroaki_u
0
74
the-concept-of-product-creation-learned-in-startup-science
hiroaki_u
0
130
what-is-container
hiroaki_u
1
76
difference-between-nginx-and-apache
hiroaki_u
0
45
CI_CD_by_Code_Brothers_by_AWS
hiroaki_u
0
31
think of study
hiroaki_u
1
77
CI/CD with CodePipeline and ECS
hiroaki_u
0
110
Other Decks in Technology
See All in Technology
Storage Browser for Amazon S3
miu_crescent
1
240
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
480
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
200
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
360
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
17
4.8k
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
200
kargoの魅力について伝える
magisystem0408
0
210
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
Featured
See All Featured
Docker and Python
trallard
42
3.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
A Modern Web Designer's Workflow
chriscoyier
693
190k
A better future with KSS
kneath
238
17k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Optimising Largest Contentful Paint
csswizardry
33
3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Optimizing for Happiness
mojombo
376
70k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Transcript
アーキテクチャって どうやって決めれば良いの?? hiroaki
Who am I ? 上田 裕耀(28) Backend, Infra, DevOps 2018/04〜
食品メーカーの研究所 2021/03〜 Webエンジニア 経歴 神奈川→埼玉→群馬→神奈川 趣味 サウナ & 筋トレ
そもそもアーキテクチャとは??
(と思っています) アプリケーションの課題を 解決するための構造
アプリケーションの課題は色々ある コスト スケーラビリティ 保守改修性 パフォーマンス セキュリティ 可用性
何かを優先すると他のレベルが下がってしまう。 トレードオフの構造
アプリケーションの構造も色々 モノリス 分散システム 同期 非同期 内部のレイヤー構造 or or
結局、アーキテクチャって どうやって決めれば良いの??
ビジネスの要求に柔軟に対応できるような アーキテクチャを目指す 使う技術に依存しない構造 仕様の変更しやすい構造 アプリケーション課題に合わせた構造
引用:『ソフトウェアアーキテクチャの基礎』P.250 図17-1』 アプリケーション課題に合わせた構造 例:マイクロサービス
引用:『ソフトウェアアーキテクチャの基礎』P.263 図17-9』 ⭕ 拡張性、保守改修性 etc. ❌ DBの一貫性、コスト etc. アプリケーション課題に合わせた構造
使う技術に依存しない構造 アプリケーション
使う技術に依存しない構造 例:オニオンアーキテクチャ
SOLID原則やデザインパターンあたりが効果的 仕様の変更しやすい構造 S O L I D 単一責任の原則 オープン・クローズドの原則 リスコフの置換原則
インターフェース分離の原則 依存性逆転の原則
常にアプリケーションの課題を考え続けて、 betterな選択をしていく。 各サービス内では、独立性を高めた 保守改修性の高い設計を目指す。
Reference
ご清聴ありがとうございました!