メインコンテンツまでスキップ

フレームワーク入門

ソフトウェアフレームワークの基礎概念から設計思想まで体系的に学ぶコンテンツです。


学習の流れ

一般概念

ドキュメント内容前提知識
01. フレームワーク入門フレームワークとは何か、ライブラリとの違いなし
02. IoC と DI制御の反転、依存性注入の概念01
03. 設計原則CoC、DRY、関心の分離01, 02
04. アーキテクチャパターンMVC、レイヤードアーキテクチャ等01-03
05. フレームワーク自作FW設計・実装のノウハウと注意点01-04

具体技術

ドキュメント内容前提知識
06. Java ServletServlet API、Filter、Listener01-04
07. Spring Boot自動設定、Starter、DI、レイヤード構成06, 08
08. ServletコンテナTomcat/Jetty/Undertow、スレッド管理、デプロイモデル06
09. CGI→ServletWeb動的処理の歴史、なぜServletかなし

このセクションで学べること

基礎概念

  • フレームワークとライブラリの本質的な違い
  • Java Servletの仕組みとライフサイクル
  • Filter、Listenerによる横断的処理
  • Servletコンテナの役割と責務
  • 制御の反転(IoC)の理解
  • 依存性注入(DI)のメリットとパターン
  • Spring Bootの自動設定とStarter

設計思想

  • Convention over Configuration
  • Don't Repeat Yourself (DRY)
  • 関心の分離(Separation of Concerns)

アーキテクチャ

  • MVC、レイヤード、ヘキサゴナル、クリーンアーキテクチャ
  • Spring Bootのレイヤード構成(Controller-Service-Repository)
  • idp-server における Spring Boot の活用

フレームワーク自作

  • 自作前に考えるべきこと
  • 拡張ポイントの設計
  • API設計とバージョニング
  • よくある失敗パターン

対象読者

  • プログラミング経験があり、フレームワークを「なんとなく」使っている方
  • ライブラリとフレームワークの違いを明確に説明できない方
  • フレームワークの設計思想を深く理解したい方

関連コンテンツ

  • JVM基礎 - Javaランタイムの理解
  • HTTP/REST - Webフレームワークの基盤知識