このスキルガイドは、c-modernization-kit リポジトリを活用するために必要な技術スキルを整理した学習ガイドです。
レガシー C 言語開発チームが段階的にモダンな開発プラクティスを習得できるよう、5 つのステップに分けて学習マテリアルをまとめています。
各スキルガイドは「学習の入り口」として機能します。
技術の詳細な解説は外部の公式ドキュメントやチュートリアルへのリンクで提供し、このリポジトリのどのコードと関連するかを示します。
C言語の基礎 (変数・関数・ポインタなど) は習得済みを前提とします。
| ステップ | 目標 | 技術カテゴリ |
|---|---|---|
| ステップ 1: 導入 | モダン開発の全体像と背景を理解できる | X as Code・GitOps・生成 AI |
| ステップ 2: 必須基盤 | チームでコードを共有・管理できる | バージョン管理 |
| ステップ 3: ビルド理解 | ライブラリのビルドと依存関係を理解できる | C ライブラリ・ビルドシステム |
| ステップ 4: 品質向上 | テストとドキュメントを自動化できる | テスト・ドキュメント |
| ステップ 5: 自動化・拡張 | CI/CD とクロス言語連携を実現できる | CI/CD・開発環境・.NET |
技術スキルを習得する前に、モダン開発の全体像・背景・思想を把握します。
| ドキュメント | 内容 |
|---|---|
| レガシー C コードにモダン手法を適用する全体像 | Docs as Code・自動テスト・CI/CD を組み合わせた全体ワークフロー |
| 生成 AI 時代のソースコード管理 (X as Code) | X as Code・GitOps・生成 AI 活用の DevOps 進化論 |
Git を使ったバージョン管理はすべての現代的な開発の基盤です。まずここから始めてください。
| スキルガイド | 内容 |
|---|---|
| Git 基礎 | init/clone/commit/branch/merge |
| Git サブモジュール | サブモジュールの操作 |
| GitHub ワークフロー | PR・Issues・コードレビュー |
C ライブラリの種類とビルドシステムを理解することで、このリポジトリのコード構造を把握できます。
| スキルガイド | 内容 |
|---|---|
| Cライブラリの種類 | 静的ライブラリ・動的ライブラリの違いとリンク方法 |
| クロスプラットフォーム対応 | Linux / Windows 対応マクロとビルド条件分岐 |
| スキルガイド | 内容 |
|---|---|
| GNU Make | makefile の基礎と階層ビルド構造 |
| GCC / MSVC ツールチェイン | コンパイラとリンカのオプション |
| .NET SDK | dotnet コマンドと .NET プロジェクト構造 |
テストの自動化とドキュメントの自動生成により、品質と保守性を高めます。
| スキルガイド | 内容 |
|---|---|
| Google Test | C/C++ 単体テストフレームワーク |
| コードカバレッジ | gcov / lcov / OpenCppCoverage |
| .NET テスト | xUnit による .NET 単体テスト |
| スキルガイド | 内容 |
|---|---|
| Markdown | ドキュメント記法の基礎 |
| Doxygen | C/C++ ソースコードからのドキュメント生成 |
| Pandoc | Markdown から HTML/docx への変換 |
| PlantUML | テキストベースの UML 図表作成 (第 1 選択) |
| Mermaid | テキストベースの図表作成 (第 2 選択) |
| draw.io | GUI による任意の図作成 (第 3 選択) |
CI/CD によるビルド・テストの自動化と、.NET 連携および開発環境の整備を行います。
| スキルガイド | 内容 |
|---|---|
| GitHub Actions | 自動ビルド・テスト・デプロイ |
| GitHub Pages | 生成ドキュメントの公開 |
| Jenkins | Oracle Linux 8 への Jenkins 導入、ビルドジョブ構成、ドキュメント公開 |
| Podman | rootless Podman と Oracle Linux 開発コンテナの利用 |
| スキルガイド | 内容 |
|---|---|
| VS Code | エディタの設定と拡張機能 |
| WSL / MinGW 環境 | Windows での Linux 互換ビルド環境 |
| C# / P/Invoke | .NET から C ライブラリを呼び出す |
このリポジトリの実装・設計の詳細については、以下のドキュメントを参照してください。