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
Loglassのバックエンドアーキテクチャについて
Search
HirokiChida
December 11, 2023
Programming
0
120
Loglassのバックエンドアーキテクチャについて
HirokiChida
December 11, 2023
Tweet
Share
More Decks by HirokiChida
See All by HirokiChida
チームが自己組織化してから敢えて専任スクラムマスターを置いてみたらめちゃめちゃワークした話 / How bringing in a Scrum Master to an already self-organized team totally worked out
hc0208
2
2.6k
Other Decks in Programming
See All in Programming
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
340
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
1
300
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
660
Jaspr Dart Web Framework 박제창 @Devfest 2024
itsmedreamwalker
0
110
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
200
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
110
fs2-io を試してたらバグを見つけて直した話
chencmd
0
250
命名をリントする
chiroruxx
1
470
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.1k
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
740
Kaigi on Railsに初参加したら、その日にLT登壇が決定した件について
tama50505
0
120
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
320
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
182
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
460
A Modern Web Designer's Workflow
chriscoyier
693
190k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
1
120
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Optimising Largest Contentful Paint
csswizardry
33
3k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
920
Transcript
2023/12/13 Backend Night 〜アーキテクチャ設計編〜 Loglassのバックエンドアーキテクチャについて
©2023 Loglass Inc. 2 自己紹介 Loglassのバックエンドアーキテクチャについて ▪ 名前 千田浩輝 ▪役職
エンジニアリングマネージャー ▪経歴 大学時代にベンチャー企業の立ち上げから参画し、テックリードと してSaaSの開発に従事。その後、大手 SIerにジョインし金融システ ムの開発からマネジメントまで幅広く携わり、 2022年6月から株式 会社ログラスにジョイン。 ▪SNS https://twitter.com/hc0208
©2023 Loglass Inc. 現状共有
©2023 Loglass Inc. 4 Loglassのバックエンドアーキテクチャについて
©2023 Loglass Inc. 5 Loglassのバックエンドアーキテクチャについて 概要 • DDD(ドメイン駆動設計)に力を入れている ◦ バックエンドの開発言語は
Kotlin ◦ フレームワークはSpring Boot • モノリスなアプリケーションを複数チームで開発している ◦ アーキテクチャについては見直していきたい • 内部のコードの品質は高い(と思っている)
©2023 Loglass Inc. アーキテクチャ
©2023 Loglass Inc. 7 Loglassのバックエンドアーキテクチャについて オニオンアーキテクチャ
©2023 Loglass Inc. 8 Loglassのバックエンドアーキテクチャについて 具体例 api/../UserController app/../UpdateUserUseCase domain/../UserRepository domain/../User
infra/../UserJDBCRepository domain/../Email
©2023 Loglass Inc. 9 Loglassのバックエンドアーキテクチャについて ドメインオブジェクトの書き方 旧 現在 Kotlinのdata classはequals,
hashCode, toString, copyなどのメソッドを自動で生成して くれる。 便利だが、copyメソッドを利用することでドメイ ンに書かれたルールを突破できてしまう可能 性がある。 現在はcopyメソッドを禁止するテストを書いて 実現している。 誰もが安全に使える形を目指している。
©2023 Loglass Inc. 10 Loglassのバックエンドアーキテクチャについて モデリングのやり方 以下の図を作成している • システム関連図 (s)
a. 開発するシステムと、関わりのあるアクターや外部システムとの関連を示す図 • ユースケース図 (u) a. ユーザーの要求に対するシステムの振る舞いを定義する図 • ドメインモデル図 (d) a. 簡易化したクラス図のようなもの • オブジェクト図 (o) a. ドメインモデルの具体例を記した図
None