対象ファイル
-
docs/00_Developer_Terms.md(開発用語および技術仕様書)
はじめに
boot_one プロジェクトの開発およびファイル分析を進めるにあたり、プロジェクト全体で登場する主要な技術用語、アノテーション、アーキテクチャの概念をドキュメントとして整理した。
Spring Boot、MyBatis、Oracle DB 連携の各層における設計思想や仕様を継続的に蓄積していくための用語集としてまとめている。
開発用語および技術仕様(Developer Terms)
-
Project Structure & Architecture(プロジェクト構造とアーキテクチャ)
- Project Map: 全体のディレクトリや構成要素を一覧で把握できるように整理した構造仕様書。
-
docs/Directory: 開発ソースコードから分離し、設計ドキュメントや用語集を Markdown で統合管理するディレクトリ。 - Layered Architecture: Presentation、Persistence などの階層ごとに役割を分離し、保守性を高める層状設計。
- DispatcherServlet: HTTP リクエストを最前線で受け取り、適切な Controller へ割り振る Spring MVC の Front Controller。
-
Spring Boot Core Concepts(Spring Boot 核心概念)
-
@SpringBootApplication: 自動設定およびコンポーネントスキャンを実行する複合アノテーション。 -
Component Scanning Range:
@SpringBootApplicationが配置されたパッケージ配下を探索し、Spring Bean を自動登録する領域。 - Embedded Servlet Container: 外部 WAS のインストール不要で、内蔵 Tomcat を通じて即座に Web サービスを起動する構造。
-
-
Web Layer & Spring MVC(Web層とSpring MVC)
-
@Controller: 該当クラスが Spring MVC の Controller として機能し、Bean 登録されることを明示するアノテーション。 -
@Autowired: Spring IoC コンテナ内の適切な Bean を自動的に注入する依存性自動注入のアノテーション。 - Logical View Name: Controller が返却する文字列。ViewResolver によって物理ファイルパスに変換される。
-
-
Persistence Layer & Frameworks(Persistence層とMyBatis)
-
@Mapper: MyBatis のマッパーインターフェースであることを明示し、動的プロキシを生成するアノテーション。 - Data Transfer Object (DTO): 各階層間でデータを授受するために使用される純粋なデータ保持用オブジェクト。
- Mapper Namespace: XML マッパー内で特定の Java Mapper インターフェースと 1:1 でバインドさせる識別子。
-
気になった部分・改善ポイント
ドキュメントの整理や用語管理を進める中で、実務的な開発において意識しておきたいポイントがいくつかある。
1. 用語定義とアーキテクチャ仕様のドキュメント化(Living Documentation)
// 変更前:コード内にコメントが散在し、全体の仕様が把握しづらい状態
// 改善案:docs/ ディレクトリに技術用語やアーキテクチャ仕様を集約し、開発の進捗に合わせて継続的にアップデートする
コードを書くだけでなく、このように用語や設計思想をドキュメントとして分離・蓄積しておくことで、チーム開発時の認識合わせや新メンバーのオンボーディングコストを大幅に下げることができる。
2. レイヤードアーキテクチャの用語・責任範囲の明確化
各層(Controller, Service, DAO, DTO)がどの役割を持つのかを仕様書レベルで定義しておかないと、不適切なビジネスロジックの配置(例: Controller で直接 DB 操作を行うなど)が発生しやすくなる。用語の定義と役割分担をプロジェクト初期に共通認識として持っておくことが重要だ。
構成要素のまとめ
| カテゴリ | 主な用語・概念 | 役割および特徴 |
|---|---|---|
| Architecture | Layered Architecture, DispatcherServlet | システムの階層分離とリクエストのルーティング制御 |
| Spring Core |
@SpringBootApplication, Component Scan |
自動設定と Bean 登録によるアプリケーションの初期化 |
| Spring MVC |
@Controller, @Autowired, ViewResolver |
HTTP リクエストの処理と View へのルーティング連携 |
| MyBatis & DB |
@Mapper, DTO, Namespace |
SQL マッピングとデータ永続化層の連携処理 |
今回学んだこと
- 単にコードを書くだけでなく、プロジェクト固有の技術用語やアーキテクチャの概念を
docs/にドキュメントとして集約する重要性を学んだ - Spring Boot、Spring MVC、MyBatis、Oracle DB に至る各層の専門用語と役割分担がクリアになった
- ドキュメント駆動の意識を持ちながら、次の具体的な Java ソースコードの分析に進んでいきたい。