System Patterns: Doinject 技術ブログ

System Patterns: Doinject 技術ブログ

1. システムアーキテクチャ

  • ブログプラットフォーム: Jekyll (現在のファイル構造から判断)
  • ホスティング: GitHub Pages (CNAME ファイルの存在から推測)
  • コンテンツ形式: Markdown (.md) ファイルを _posts ディレクトリに配置。

2. 記事作成パターン

  • 基本構成:
    1. 導入: 記事で扱うテーマと読者の課題提起、Doinject がどのように役立つかの示唆。
    2. 課題の詳細: Unity 標準機能だけでは難しい点、具体的な問題シナリオ。
    3. Doinject による解決策: Doinject の関連機能紹介と、それが課題をどう解決するかの解説。
    4. コード例: 具体的な実装方法を示す C# コードスニペット。必要に応じて図解も用いる。
    5. 解説: コード例のポイントや注意点の説明。
    6. まとめ: 記事内容の要約と、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 での利用)。
  • 高度な機能:
    • Factory: パラメータ付きオブジェクト生成。
    • Lazy<>: 遅延初期化。
    • Conditional Binding: 条件に応じた依存性の切り替え。
    • (その他、必要に応じて)

4. 開発ワークフロー

  1. 記事テーマの選定。
  2. 記事構成案の作成。
  3. Markdown で記事本文とコード例を作成。
  4. (必要であれば) 図や画像の作成・配置。
  5. ローカル環境でのプレビュー確認 (Jekyll serve など)。
  6. Front Matter の publishedtrue に変更し、Git でコミット&プッシュして公開。