スキップしてメイン コンテンツに移動

投稿

注目の投稿

【Day 40】コンテナ内でのGit操作・SSH鍵・GPG署名のフォワーディング 〜秘密鍵をコンテナに渡さずVerifiedコミット&社内NuGet認証を実現〜

最近の投稿

【Day 37】GitHubリモートリポジトリとの同期(push / fetch / pull)

▲ 【Day 37】GitHubリモートリポジトリとの同期(push / fetch / pull) 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回までの第7部「Windows & C# (.NET) 固有の落とし穴完全制覇」では、改行コードCRLF、大文字小文字区別、gitignore、Git LFS、そして260文字制限(core.longpaths)と、Windows環境特有の地雷をすべて解体しました。 そして本日のDay 37より、いよいよ待望の 【第8部: GitHubリモート連携&チーム統制・品質ゲート】 が開幕します! ローカル環境での個人作業から、クラウド上のGitHubをハブとした「本格的なチーム開発」へとステージが一段上がります。 しかし、30年選手のベテランさんほど真っ先にハマるのが、朝のルーティンで行う「最新コードの取得」です。 「Subversion(SVN)時代は、出社したらまず SVN update を叩くのが日常だった。だからGitでも同じ感覚で git pull を打ったのだが…いきなりマージコミットが自動生成されたり、予期せぬコンフリクトで自分の作業中C#コードが破壊されてビルドが通らなくなってしまった!なぜこんな危険な仕組みになっているんだ!?」 そんな悲鳴や戸惑いを抱いたことはありませんか? 結論から申し上げますと、 チーム開発において「いきなり git pull」を打つのは大変危険な悪習 です! 本講義では、リモートリポジトリ( origin / upstream )の真の構造を解き明かし、なぜ「まず git fetch して差分を確認してからマージする」のがプロの鉄則なのか、その全貌を徹底解説します! ① リモートリポジトリの正体!「origin」と「upstream」...

【Day 39】VS Codeでコンテナ内C#開発・デバッグ・ブレークポイント実行 〜完全分離された環境をF5キーで直感デバッグ〜

▲ Day 39: VS Codeでコンテナ内C#開発・デバッグ・ブレークポイント実行 〜完全分離された環境をF5キーで直感デバッグ〜 🐳 「Dockerコンテナの中だから、デバッグはログ出力で我慢する」なんて思っていませんか? 前回のDay 38では、 .devcontainer/devcontainer.json を使って開発環境のすべてをコード化(IaC)し、Gitでチーム共有する手法を学びました。 しかし、現場のエンジニアから最もよく聞かれる不安がこれです。 「コンテナの中で動いているC#アプリって、本当にVisual Studioのようにブレークポイントで止めて、ステップ実行や変数の中身を見られるの?」 結論から申し上げます。 ローカルPC直接実行と1ミリも変わらない快適さで、F5キーを押すだけで完全にデバッグできます! ホストのVS Codeとコンテナ内のMicrosoft公式デバッガ(vsdbg)が阿吽の呼吸で連携するため、ブレークポイント設定、F10ステップオーバー、F11ステップイン、変数ウォッチ、さらには dotnet watch によるホットリロードまで自由自在です。本講義では、コンテナ内デバッグの裏側の仕組みから、launch.jsonの実践設定、バグ修正Git運用まで徹底解説します! 📋 本講義の学習ロードマップ 第1章:30年選手の苦笑い:「リモートデバッグの苦行」とポート開放のトラウマ 第2章:コンテナ内デバッグの裏側:VS Code Server と vsdbg の美しい連携アーキテクチャ 第3章:徹底対比:従来の遠隔デバッグ vs Dev Containers(完全比較表) 第4章:現場の2刀流:...

【Day 36】深い名前空間でのパス長260文字制限の解除(core.longpaths)

▲ 【Day 36】深い名前空間でのパス長260文字制限の解除(core.longpaths) 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 35では、リポジトリ巨大化を防ぐ「Git LFS(Large File Storage)」による大容量バイナリ管理をマスターしました。 続く本日のDay 36は、第7部「Windows & C# (.NET) 固有の落とし穴完全制覇」の第4弾―― Windows環境でC#開発者を突如襲う恐怖のエラー 【深い名前空間でのパス長260文字制限の解除(core.longpaths)】 を完全制覇します! 「リポジトリを git clone や git checkout したら、突然 error: unable to create file ... : Filename too long と怒られてチェックアウトが途中で止まってしまった…!」 「30年間VSSやSVNを使ってきたけれど、こんな理不尽なエラーは見たことがない!真面目にC#でDDDやクリーンアーキテクチャの綺麗な名前空間を設計しているだけなのに、なぜGitだと怒られるのか…!?」 そんな悲鳴や疑問を抱いたことはありませんか? 実はこれ、MS-DOSやWindows 95時代からWindowsのOS内部に眠る「魔の260文字制限(MAX_PATH)」という歴史的呪いが原因です。 しかし恐れる必要はありません。 Git側の core.longpaths 設定と、Windows 10/11のレジストリ設定という【2つの鍵】 を回すことで、この制限を最大32,767文字まで完全拡張し、二度とエラーを出さない環境を構築できます。 本講義で、発生の根本メカニズムから具体的なコマンド、チーム開発での運用鉄則まで一挙に攻略していきましょう! ...

【Day 38】.devcontainer/devcontainer.json の作成とGit管理 〜開発環境のIaC化とチーム統一〜

▲ Day 38: .devcontainer/devcontainer.json の作成とGit管理 〜開発環境のIaC化とチーム統一〜 🐳 「推奨VS Code拡張機能一覧をWikiに書く」のは、今日で永久に卒業しましょう! 前回のDay 37では、ホストPCを一切汚さずにコンテナ内で開発を完結させる「Dev Containers」の革新的なアーキテクチャを学びました。 では、実際のチーム開発でこの環境を共有し、メンバー全員のPC環境を100%統一するにはどうすればいいのでしょうか? その答えが、プロジェクトルートの .devcontainer/devcontainer.json です! 使用するコンテナイメージ、必須VS Code拡張機能、デバッグ用ポート転送、起動時スクリプトのすべてをたった1つのJSONファイルに「コード化」し、Gitリポジトリにコミットするだけで、新人もベテランもまったく同じ高品質なC#/.NET開発環境をワンクリックで手に入れることができます。本講義では、実務に即した書き方からGit運用戦略まで完全解説します! 📋 本講義の学習ロードマップ 第1章:30年選手の苦笑い:「推奨拡張機能一覧をWikiに書く」という不条理 第2章:devcontainer.json とは何か?開発環境の「IaC(コード化)」思想 第3章:基本構造と仕様:環境をコード化する3大要素(image・extensions・forwardPorts) 第4章:customizations.vscode.extensions:C# Dev Kitや必須拡張機能の自動注入 第5章:forwardPorts:コンテナ内Web APIとホスト...