Slide 1

Slide 1 text

2023/12/13 Backend Night 〜アーキテクチャ設計編〜 Loglassのバックエンドアーキテクチャについて

Slide 2

Slide 2 text

©2023 Loglass Inc. 2 自己紹介 Loglassのバックエンドアーキテクチャについて ■ 名前 千田浩輝 ■役職 エンジニアリングマネージャー ■経歴 大学時代にベンチャー企業の立ち上げから参画し、テックリードと してSaaSの開発に従事。その後、大手 SIerにジョインし金融システ ムの開発からマネジメントまで幅広く携わり、 2022年6月から株式 会社ログラスにジョイン。 ■SNS https://twitter.com/hc0208

Slide 3

Slide 3 text

©2023 Loglass Inc. 現状共有

Slide 4

Slide 4 text

©2023 Loglass Inc. 4 Loglassのバックエンドアーキテクチャについて

Slide 5

Slide 5 text

©2023 Loglass Inc. 5 Loglassのバックエンドアーキテクチャについて 概要 ● DDD(ドメイン駆動設計)に力を入れている ○ バックエンドの開発言語は Kotlin ○ フレームワークはSpring Boot ● モノリスなアプリケーションを複数チームで開発している ○ アーキテクチャについては見直していきたい ● 内部のコードの品質は高い(と思っている)

Slide 6

Slide 6 text

©2023 Loglass Inc. アーキテクチャ

Slide 7

Slide 7 text

©2023 Loglass Inc. 7 Loglassのバックエンドアーキテクチャについて オニオンアーキテクチャ

Slide 8

Slide 8 text

©2023 Loglass Inc. 8 Loglassのバックエンドアーキテクチャについて 具体例 api/../UserController app/../UpdateUserUseCase domain/../UserRepository domain/../User infra/../UserJDBCRepository domain/../Email

Slide 9

Slide 9 text

©2023 Loglass Inc. 9 Loglassのバックエンドアーキテクチャについて ドメインオブジェクトの書き方 旧 現在 Kotlinのdata classはequals, hashCode, toString, copyなどのメソッドを自動で生成して くれる。 便利だが、copyメソッドを利用することでドメイ ンに書かれたルールを突破できてしまう可能 性がある。 現在はcopyメソッドを禁止するテストを書いて 実現している。 誰もが安全に使える形を目指している。

Slide 10

Slide 10 text

©2023 Loglass Inc. 10 Loglassのバックエンドアーキテクチャについて モデリングのやり方 以下の図を作成している ● システム関連図 (s) a. 開発するシステムと、関わりのあるアクターや外部システムとの関連を示す図 ● ユースケース図 (u) a. ユーザーの要求に対するシステムの振る舞いを定義する図 ● ドメインモデル図 (d) a. 簡易化したクラス図のようなもの ● オブジェクト図 (o) a. ドメインモデルの具体例を記した図

Slide 11

Slide 11 text

No content