1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テーブルから、関連している機能を調査しまとめるまで

Last updated at Posted at 2024-10-29

前提

  • アプリ

    • フレームワーク: Laravel
    • アーキテクチャ: DDD
  • BIツール

    • SQL ※SQLは同内容のものをリポジトリで管理

テーブルへのアクセスは、基本的にインフラ層のEloquentで行っている。
Eloquentは、EloquentRepositoryから呼び出される。
Repositoryでは、Schema::connectionなどを使ってクエリを発行している可能性がある

調査方針

  1. テーブルへのアクセス箇所を特定
  2. 1を使用している処理を特定
  3. 2を使用している機能を特定

調査方法

1はテーブル名を全文検索して特定する。
クラス名でもある程度特定できる

2は、1に対して全参照先検索(※)をして特定する。
※Windows版のVSCodeなら、拡張機能: PHP Intelephense をインストールしておけば、クラス名や関数名にカーソルオン→右クリックから「Find All Reference」を選択 or ショートカット「Shift+Alt+F12」によって実行できる

調査結果のまとめ方案

色々なまとめ方が考えられるが、
こんな感じにシーケンス図としてまとめるのが個人的に見やすいと思う

例)planテーブルから、利用プラン登録機能を辿った結果をまとめる場合
※調査結果に基づいて下記の分類子名を変更することでほぼ流用できる。処理の呼び出しフローが違う場合は適宜調整する

plantuml
title 利用プラン登録

participant 利用プラン登録機能 as feature #99FF99

box "Application" #LightBlue
participant api [
=利用プラン登録API
---
""{post} /plan""
]
participant controller << (C,#ADD1B2) Controller >>[
=PlanContrtoller
---
""create""
]
participant case << (U,#ADD1B2) UseCase >>[
=CreatePlan
---
__invoke
]
end box

box "Domain" #LightBlue
participant rule << (B,#ADD1B2) BusinessRule >>[
=CreatePlanRule
---
__invoke
]
end box

box "Infrastructure" #LightBlue
participant repository << (R,#ADD1B2) Repository >>[
=PlanPatternRepository
---
search
]
participant erepository << (R,#ADD1B2) Repository >>[
=EloquentPlanRepository
---
create
]
participant EloquentPlan as eloquent << (E,#ADD1B2) Eloquent >>
end box

database master.plans as tbl #99FF99

feature -> api
api -> controller
controller -> case
case -> rule
rule -> repository
repository -> tbl
rule -> erepository
erepository -> eloquent
eloquent -> tbl

note across:レスポンスのシーケンスは省略
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?