1
2

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 2025-11-06

はじめに

コードを読むのとういうのは、コードを書く以上に気力が必要な作業だと私は思います。

私は現在、約 20,000 ファイル以上の規模を持つプロジェクトで開発をしています。この記事では、現在私が実践しているコードリーディングのアプローチを言語化してみました。

業務ロジックを読むコツ

1. エントリーポイントから追う

ルート定義から追う

フロントエンド:

// routes.js を確認
<Route path="/sales/orders" component={OrderListPage} />

手順: ルート → コンポーネント → Redux Action → Saga → API

バックエンド:

// routes/api.php を確認
Route::post('/api/sales/orders', [OrderController::class, 'store']);

手順: ルート → Controller → Service → Business → Model

コールツリーを使用してコードの流れを読む方法はこちらの記事に詳しくまとめました

2. データフローを追う

フロントエンド: UI 操作 → Action → Saga → API → Reducer → UI 更新

バックエンド: Request → Controller → Service → Business → Model → Database

3. テストコードから理解する

テストコードは「仕様書」として使えます。tests/Feature/tests/Unit/でテストを確認し、期待される動作を把握します。

// tests/Feature/OrderTest.php
public function test_order_can_be_created()
{
    $response = $this->postJson('/api/sales/orders', [
        'product_id' => $product->id,
        'quantity' => 2,
    ]);
    $response->assertStatus(201);
}

4. ツールを活用する

IDE の機能:

  • 定義へジャンプ (Cmd + Click): 定義元・参照に移動
  • ファイル内検索 (Cmd + F): ファイル内を検索
  • ワークスペース検索 (Cmd + Shift + F): プロジェクト全体で検索

5. ドキュメントを作成しながら読む

理解した内容をメモに残します。Notion や Obsidian などで、エントリーポイント、データフロー、依存関係を記録しておくと便利です。

6. 小さな単位で理解する

一度に全部を理解しようとせず、機能単位・レイヤー単位・データフロー単位で分割して理解します。

7. パターンを理解する

プロジェクト内の命名規則やディレクトリ構造、データフローパターンを把握すると、新しいコードを読む速度が上がります。

まとめ

  1. エントリーポイントから追う: ルート定義から順番に追う
  2. データフローを追う: データの流れを理解する
  3. テストコードから理解する: テストコードは仕様書として使える
  4. ツールを活用する: IDE の機能を最大限活用する
  5. ドキュメントを作成しながら読む: 理解した内容を記録する
  6. 小さな単位で理解する: 一度に全部を理解しようとしない
  7. パターンを理解する: プロジェクト内のパターンを把握する

これらのアプローチを組み合わせることで、大規模プロジェクトを少しずつ読み解くことができると思います。
他にも効果的な方法があれば、ぜひご教授いただきたいです。

1
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?