System Patterns: Doinject 技術ブログ
1. システムアーキテクチャ
- ブログプラットフォーム: Jekyll (現在のファイル構造から判断)
- ホスティング: GitHub Pages (CNAME ファイルの存在から推測)
- コンテンツ形式: Markdown (
.md) ファイルを_postsディレクトリに配置。
2. 記事作成パターン
- 基本構成:
- 導入: 記事で扱うテーマと読者の課題提起、Doinject がどのように役立つかの示唆。
- 課題の詳細: Unity 標準機能だけでは難しい点、具体的な問題シナリオ。
- Doinject による解決策: Doinject の関連機能紹介と、それが課題をどう解決するかの解説。
- コード例: 具体的な実装方法を示す C# コードスニペット。必要に応じて図解も用いる。
- 解説: コード例のポイントや注意点の説明。
- まとめ: 記事内容の要約と、Doinject を活用するメリットの再確認。
- コードスニペット: C# 言語を指定し、シンタックスハイライトを有効にする。
- 図: 必要に応じて Mermaid や画像ファイル (
img/ディレクトリ) を使用し、概念やコンポーネント間の関係性を視覚的に示す。 - Front Matter: 各記事には
layout,author,title,date,categories,description,imageなどのメタ情報を含める。published: falseで下書き状態を管理。
3. Doinject の主要な解説対象概念
記事全体を通して、以下の Doinject のコアな概念や機能に触れていくことを目指します。
- 基本的な DI:
Bind(): 依存性の登録方法(Singleton, Transient, Scoped)。[Inject]: 依存性の注入。Context(Project, Scene, GameObject): 依存性のスコープ管理。
- 非同期処理:
- 非同期な依存性の Bind (
BindAsync(),BindFactoryAsync())。 [OnInjected]: 同期・非同期インジェクション完了後のコールバック(特にasync Taskでの利用)。
- 非同期な依存性の Bind (
- 高度な機能:
Factory: パラメータ付きオブジェクト生成。Lazy<>: 遅延初期化。- Conditional Binding: 条件に応じた依存性の切り替え。
- (その他、必要に応じて)
4. 開発ワークフロー
- 記事テーマの選定。
- 記事構成案の作成。
- Markdown で記事本文とコード例を作成。
- (必要であれば) 図や画像の作成・配置。
- ローカル環境でのプレビュー確認 (Jekyll serve など)。
- Front Matter の
publishedをtrueに変更し、Git でコミット&プッシュして公開。