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
the-concept-of-product-creation-learned-in-startup-science
hiroaki_u
0
110
what-is-container
hiroaki_u
1
67
difference-between-nginx-and-apache
hiroaki_u
0
33
CI_CD_by_Code_Brothers_by_AWS
hiroaki_u
0
24
think of study
hiroaki_u
1
68
CI/CD with CodePipeline and ECS
hiroaki_u
0
100
Other Decks in Technology
See All in Technology
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
820
アクセス制御にまつわる改善 / Improving access control
itkq
0
560
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
130
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
1
180
オーナーシップを持つ領域を明確にする
konifar
13
3.2k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
16k
Grafana x PagerDuty Better Together
jacopen
0
150
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
2
440
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
ルーターでプレゼンする
puhitaku
0
720
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
300
APIファーストなプロダクトマネジメントの実践 〜SaaSus Platformでの例〜 / "Practicing API-First Product Management - An Example with SaaSus Platform
oztick139
0
110
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
514
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
RailsConf 2023
tenderlove
4
540
Designing Experiences People Love
moore
136
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
25
2.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
187
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Clear Off the Table
cherdarchuk
84
310k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
The Art of Programming - Codeland 2020
erikaheidi
42
12k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
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
ご清聴ありがとうございました!