目次 — 設計原則・デザインパターン・C++の仕組み¶
このページから全カテゴリ・全ページへ移動できます。学習順に迷ったら 学習ロードマップ へ。
第1部: 設計の基礎 — カテゴリ目次¶
- 設計とは何を決める行為なのか
- 責務と関心の分離
- 凝集度と結合度(比較)
- 依存関係と依存の方向
- 抽象化・カプセル化・情報隠蔽
- 継承・委譲・コンポジション(比較)
- ポリモーフィズムとインターフェース
- 設計の品質特性(変更容易性・テスト容易性・拡張性・可読性・保守性・再利用性)
- YAGNI・KISS・DRY と早すぎる抽象化・早すぎる最適化
- 技術的負債・コードの臭い・リファクタリング
- 演習
第2部: SOLID原則 — カテゴリ目次¶
第3部: GoFデザインパターン — カテゴリ目次(分類の説明)¶
生成: Factory Method / Abstract Factory / Builder / Prototype / Singleton
構造: Adapter / Bridge / Composite / Decorator / Facade / Flyweight / Proxy
振る舞い: Chain of Responsibility / Command / Interpreter / Iterator / Mediator / Memento / Observer / State / Strategy / Template Method / Visitor
第4部: ゲームプログラミング頻出パターン — カテゴリ目次¶
- Game Loop と Update Method
- Component と Entity Component System(継承方式・MonoBehaviour方式との比較)
- Event Queue・Message Bus・Publish/Subscribe(Observerとの比較)
- Service Locator と Dependency Injection(比較)
- Object Pool(通常のnew/deleteとの比較)
- 最適化系パターン: Dirty Flag・Spatial Partition・Data Locality・Double Buffer
- Type Object・Subclass Sandbox・Bytecode
- 有限ステートマシンと階層型ステートマシン(State と Strategy の比較)
- Behavior Tree と Blackboard
- Command Buffer と入力処理(Commandとの関係)
- MVC・MVP・MVVM(比較)
- Reactive Programming
- 演習
第5部: C++の言語機能 — カテゴリ目次¶
- 値型と参照・ポインタ・参照
- const と const correctness
- 配列と文字列
- 構造体・クラス・アクセス指定子
- コンストラクタ・デストラクタ・コピー・ムーブ(Rule of Zero/Three/Five)
- RAII
- 継承・仮想関数・抽象クラス・override/final
- 関数オーバーロードと演算子オーバーロード
- テンプレートと concepts
- ラムダ式・関数ポインタ・std::function
- enum・enum class・namespace
- 例外
- auto・decltype・constexpr・consteval(型推論)
- static・inline・friend
- キャスト
- スマートポインタ
- STLコンテナ・イテレータ・アルゴリズム・ranges
- 未定義動作・実装定義・未規定動作
- 演習
第6部: C++の内部的な仕組み — カテゴリ目次¶
- main.cpp から CPU命令までの旅(ビルドパイプライン全体)
- 翻訳単位・ヘッダー・include・前方宣言・ODR
- シンボル・名前修飾・リンケージ・ABI
- オブジェクトファイル・実行ファイル・静的/動的ライブラリ・DLL
- テンプレートの実体化と inline の実際
- vtable・vptr・仮想関数呼び出し
- RTTI・dynamic_cast・例外処理の仕組み
- メモリレイアウト・パディング・アラインメント・エンディアン
- 関数呼び出し・コールスタック・呼出規約・レジスタ
- キャッシュ・分岐予測・SIMD
- コンパイラ最適化・未定義動作の影響・Debug/Release・ゼロコスト抽象化
- 演習
第7部: メモリと実行時 — カテゴリ目次¶
- 記憶域期間とスコープ・寿命の違い
- 所有権と借用
- メモリバグ図鑑(dangling pointer・use-after-free・leak・overflow)
- 並行処理のバグ(data race・race condition・false sharing)
- キャッシュ局所性と AoS / SoA
- placement new・allocator・memory pool・arena・fragmentation
- ガベージコレクションとの違い(C#管理ヒープ・UnityのGC Alloc)
- 演習
第8部: ビルドとライブラリ — カテゴリ目次¶
- ビルドとは何か(コンパイラとビルドシステムの違い)
- 三大コンパイラ: MSVC・Clang・GCC
- ビルドツール: CMake・Visual Studio・Make・Ninja(CMakeサンプル付き)
- ビルド構成: Debug/Development/Release/Shipping・PDB・デバッガ
- ビルド時間: incremental build・PCH・Unity Build・遅くなる理由
- 品質のための道具: 静的解析・サニタイザ・警告レベル・CI
- リンクエラー: 未解決外部シンボル・多重定義・ABI互換性
- 演習
第9部: Unity/C#との対応 — カテゴリ目次¶
- デストラクタと Dispose / RAII と using
- ポインタと参照型 / 値セマンティクスと class・struct
- テンプレートとジェネリック
- 仮想関数と virtual/override / コンパイル時多態と実行時多態
- 関数ポインタと delegate / Observer と event
- ヘッダー分割と Assembly Definition
- ネイティブビルドと IL2CPP
- 手動メモリ管理と GC
- C++例外と C#例外
- 演習
第10部: Unreal Engineとの対応 — カテゴリ目次¶
- UObject・Actor・ActorComponent
- UEのガベージコレクションと UPROPERTY・TObjectPtr・TWeakObjectPtr
- リフレクション: UCLASS・UFUNCTION・Unreal Header Tool
- Unreal Build Tool・Module・Build.cs・Target.cs
- UEのスマートポインタ: TSharedPtr・TUniquePtr・TSoftObjectPtr
- UEの Delegate と Interface
- Gameplay Framework・Subsystem・Slate/UMG・DataAsset/DataTable
- 演習
第11部: ケーススタディ — カテゴリ目次¶
- プレイヤー入力
- 武器切り替え
- 敵AI
- ステート異常(状態異常)
- 実績システム
- セーブデータ
- ダメージ計算
- UI通知
- オブジェクト生成
- 画面遷移
- サウンド管理
- アイテム効果
- クエスト
- イベント通知
- 照準制御
- 演習