# スキルガイド - 学習ロードマップ

このスキルガイドは、`c-modernization-kit` リポジトリを活用するために必要な技術スキルを整理した学習ガイドです。
レガシー C 言語開発チームが段階的にモダンな開発プラクティスを習得できるよう、5 つのステップに分けて学習マテリアルをまとめています。

各スキルガイドは「学習の入り口」として機能します。
技術の詳細な解説は外部の公式ドキュメントやチュートリアルへのリンクで提供し、このリポジトリのどのコードと関連するかを示します。

# 1 対象読者

- C 言語の基本的な知識を持つ開発者
- Git・自動ビルド・自動テスト・ドキュメント自動化の経験が少ない開発者
- このリポジトリのコードを読み、ビルドし、拡張したい開発者

> C言語の基礎 (変数・関数・ポインタなど) は習得済みを前提とします。

# 2 学習ステップ

学習ステップ

学習ステップ一覧
ステップ | 目標 | 技術カテゴリ
--- | --- | ---
ステップ 1: 導入 | モダン開発の全体像と背景を理解できる | X as Code・GitOps・生成 AI
ステップ 2: 必須基盤 | チームでコードを共有・管理できる | バージョン管理
ステップ 3: ビルド理解 | ライブラリのビルドと依存関係を理解できる | C ライブラリ・ビルドシステム
ステップ 4: 品質向上 | テストとドキュメントを自動化できる | テスト・ドキュメント
ステップ 5: 自動化・拡張 | CI/CD とクロス言語連携を実現できる | CI/CD・開発環境・.NET

# 3 ステップ 1 - 導入 (モダンな開発の理解)

技術スキルを習得する前に、モダン開発の全体像・背景・思想を把握します。

ステップ 1 ドキュメント一覧
ドキュメント | 内容
--- | ---
レガシー C コードにモダン手法を適用する全体像 | Docs as Code・自動テスト・CI/CD を組み合わせた全体ワークフロー
生成 AI 時代のソースコード管理 (X as Code) | X as Code・GitOps・生成 AI 活用の DevOps 進化論

# 4 ステップ 2 - 必須基盤 (バージョン管理)

Git を使ったバージョン管理はすべての現代的な開発の基盤です。まずここから始めてください。

バージョン管理スキルガイド一覧
スキルガイド | 内容
--- | ---
Git 基礎 | init/clone/commit/branch/merge
Git サブモジュール | サブモジュールの操作
GitHub ワークフロー | PR・Issues・コードレビュー

# 5 ステップ 3 - ビルド理解

C ライブラリの種類とビルドシステムを理解することで、このリポジトリのコード構造を把握できます。

## 5.1 C 言語発展トピック

C 言語発展トピックスキルガイド一覧
スキルガイド | 内容
--- | ---
Cライブラリの種類 | 静的ライブラリ・動的ライブラリの違いとリンク方法
クロスプラットフォーム対応 | Linux / Windows 対応マクロとビルド条件分岐

## 5.2 ビルドシステム

ビルドシステムスキルガイド一覧
スキルガイド | 内容
--- | ---
GNU Make | makefile の基礎と階層ビルド構造
GCC / MSVC ツールチェイン | コンパイラとリンカのオプション
.NET SDK | dotnet コマンドと .NET プロジェクト構造

# 6 ステップ 4 - 品質向上

テストの自動化とドキュメントの自動生成により、品質と保守性を高めます。

## 6.1 テスト自動化

テスト自動化スキルガイド一覧
スキルガイド | 内容
--- | ---
Google Test | C/C++ 単体テストフレームワーク
コードカバレッジ | gcov / lcov / OpenCppCoverage
.NET テスト | xUnit による .NET 単体テスト

## 6.2 ドキュメント自動化

ドキュメント自動化スキルガイド一覧
スキルガイド | 内容
--- | ---
Markdown | ドキュメント記法の基礎
Doxygen | C/C++ ソースコードからのドキュメント生成
Pandoc | Markdown から HTML/docx への変換
PlantUML | テキストベースの UML 図表作成 (第 1 選択)
Mermaid | テキストベースの図表作成 (第 2 選択)
draw.io | GUI による任意の図作成 (第 3 選択)

# 7 ステップ 5 - 自動化・拡張

CI/CD によるビルド・テストの自動化と、.NET 連携および開発環境の整備を行います。

## 7.1 CI/CD

CI/CD スキルガイド一覧
スキルガイド | 内容
--- | ---
GitHub Actions | 自動ビルド・テスト・デプロイ
GitHub Pages | 生成ドキュメントの公開
Jenkins | Oracle Linux 8 への Jenkins 導入、ビルドジョブ構成、ドキュメント公開
Podman | rootless Podman と Oracle Linux 開発コンテナの利用

## 7.2 開発環境・.NET連携

開発環境・.NET 連携スキルガイド一覧
スキルガイド | 内容
--- | ---
VS Code | エディタの設定と拡張機能
WSL / MinGW 環境 | Windows での Linux 互換ビルド環境
C# / P/Invoke | .NET から C ライブラリを呼び出す

# 8 関連ドキュメント

このリポジトリの実装・設計の詳細については、以下のドキュメントを参照してください。

- ビルド設計 - このリポジトリのビルド構成の詳細
- テストチュートリアル - テストフレームワークの実践的な使い方
- GitHub Actions 設定 - このリポジトリの CI/CD 設定