Paizaスキルチェック再現マニュアル~VSCodeで実現するC#プログラムテスト環境~
こんにちは!おねこなぽです。
最近、転職活動の一環としてパイザ(Paiza)のスキルチェックを積極的に利用しはじめました。プログラミングスキルの磨き方としても、これはかなり有効だと感じています。
ただ、Paizaのようなオンラインプラットフォームで直接コードを書くことは、時には非効率的に感じることも。かといって毎度プロジェクト設定に手間をかけるのも、なかなか骨の折れる作業です。
そんな小さなストレスを解消するため、今回はVisual Studio Code(VSCode)でPaizaの問題にチャレンジする際の開発環境を手早く整える方法をシェアしたいと思います。
この記事を読むことで作成できるものは以下です:
目次
事前準備
C#の開発をVisual Studio Code (VS Code) で行うためには、いくつかのコンポーネントをインストールする必要があります。以下は一般的な手順と、それに必要なリンクです。
.NET SDKのインストール: C#の開発には.NET SDK(Software Development Kit)が必要です。SDKにはC#のコンパイラや.NETランタイム、.NET CLIツールが含まれており、コードのコンパイルや実行に必要です。
- .NET SDKをインストールするには、Microsoft .NET Download pageから最新のSDKをダウンロードしてください。
Visual Studio Codeのインストール: VS Codeは軽量で高性能なコードエディタです。多くの言語に対応しており、拡張機能を利用することでC#の開発環境としても優れています。
- VS CodeはVS Code official websiteからインストールできます。
C# 拡張機能のインストール: VS CodeでC#を扱うためには、C#拡張機能をインストールする必要があります。これにより、コード補完、デバッグ、その他の言語特有の機能が利用可能になります。
これらのツールをインストールすることで、VSCode上でC#を使った開発環境が整います。 なぜVSCodeにしたかというと、やはりその使いやすさにあります。軽快に動作し、プラグインも豊富。カスタマイズも自由自在で、使いやすさを追求できるのがポイントです。
バッチファイルを使った自動化
バッチファイルによる自動化は、手間を減らし、繰り返しの作業を簡単にしてくれます。新しいプロジェクトの準備、フォルダ構造の構築、必要なファイルの配置など、すべてをワンクリックで完了させることができます。
私はCreateCSharpProject.bat
という名前のバッチファイルを用意しました。これを使えば、新しいC#プロジェクトが瞬時に立ち上がります。
作業の自動化は次のようなメリットがあります:
- 時間の節約: 一連の操作を単一のアクションで完了させることができます。
- ミスの減少: 手動で行うとミスが発生しやすいですが、自動化されたプロセスは一貫性が保たれます。
- 容易な環境構築: 新しいデバイスや共同作業者に簡単に同じ環境を設定できます。
- 学習: バッチファイルを書くことで、シェルスクリプトやコマンドライン操作に対する理解が深まります。
というわけで、この記事を通じて、少しでも皆さんの開発ライフが快適になるヒントを提供できれば嬉しいです。 実際のコードや具体的な設定方法については、次のセクションで詳しくご紹介します。
それでは、始めましょう!
1-テンプレートとなるファイルの準備
作業を始める前に、必要なファイルの構造を理解しておきましょう。
ここでは、プロジェクトが保存される projects
フォルダと、新しいプロジェクトのためのテンプレートファイルを保持する template
フォルダが中心となります。
具体的には以下のような構造になっています。
projects/ template/ .vscode/ - tasks.json - Program.cs CreateCSharpProject.bat
この構造には、プロジェクトを自動で生成するためのバッチファイルCreateCSharpProject.bat
が含まれています。
そして、テンプレートフォルダにはVSCodeで必要となる設定ファイルtasks.json
と、プロジェクトの基本となるProgram.cs
ファイルがあります。
テンプレートファイルその1
Program.cs
のテンプレートは、開発者の好みや要件によって異なります。
Paizaのスタイルに準拠したい場合は、以下のようなコードをテンプレートとして用意してください。
using System; class Program { static void Main() { // 自分の得意な言語で // Let's チャレンジ!! var line = Console.ReadLine(); Console.WriteLine(line); } }
以下は、複数の行を繰り返し処理することができるテンプレートです。お好きにアレンジしてください。
#nullable enable using System; class Program { static void Main() { string? line; while ((line = Console.ReadLine()) != null) { // 'line' には 'input.txt' の一行が含まれる Console.WriteLine(line); } } } #nullable restore
テンプレートファイルその2
開発をスムーズに進めるため、ビルドと実行の工程を自動化するのが一般的です。
VSCodeでこの自動化を実現するためには、.vscode/tasks.json
ファイルを適切に設定する必要があります。
このファイルは、ビルドやテストの実行など、様々なタスクを定義してVSCodeで実行するために使われます。
以下は、C#プロジェクトのビルドと入力ファイルを用いた実行を自動化するための tasks.json
の例です:
{ "version": "2.0.0", "tasks": [ { "label": "build and run with input", "type": "shell", "command": "${workspaceFolder}\\run.bat", "group": { "kind": "build", "isDefault": true }, "problemMatcher": "$msCompile", "presentation": { "reveal": "always" } } ] }
この設定により、"build and run with input" というラベルのタスクを作成し、VSCodeのタスク実行機能を使って、${workspaceFolder}\\run.bat
スクリプトを実行できるようになります。この run.bat
スクリプトは、後述するプロジェクト作成スクリプトと連携して使用されることを想定しています。
tasks.json
ファイルは、templateディレクトリの中の .vscode
フォルダに配置しておくことで、新しいプロジェクトの各セットアップ時に自動的にコピーされ、すぐに使用可能な状態を作り出します。これにより、新しいプロジェクトが始まるたびにタスクのセットアップを一から行う手間を省くことができます。
2-スクリプトの作成
次に、新しいC#プロジェクトを効率良く開始するためのバッチファイルCreateCSharpProject.bat
の作成手順を解説します。
バッチファイルの内容
以下に、CreateCSharpProject.bat
スクリプトの基本的な構成を示します。
このスクリプトは、プロジェクトの作成から設定ファイルのコピー、開発環境の起動まで、必要なステップを全自動で実行します。
@echo off SET /P projName=プロジェクト名を入力してください: REM 開発環境の基準となるディレクトリ SET basePath=C:\Users\uzura\Documents\00_Dev\個人\training REM テンプレートファイルの格納場所 SET templatePath=%basePath%\template REM プロジェクトの格納場所 SET projectsPath=%basePath%\projects REM 新規プロジェクトの格納場所 SET newProjectPath=%projectsPath%\%projName% IF EXIST "%newProjectPath%" ( ECHO プロジェクト "%projName%" は既に存在します。 EXIT /B 1 ) REM プロジェクトフォルダを作成 MKDIR "%newProjectPath%" CD /D "%newProjectPath%" REM .NET コンソールプロジェクトの初期化 dotnet new console --name "%projName%" --output "%newProjectPath%" --force REM テンプレートファイルのコピー XCOPY "%templatePath%\*" "%newProjectPath%" /E /H /K /Y REM input.txt の作成 ECHO Hello, world! > "%newProjectPath%\input.txt" REM .vscode フォルダと設定ファイルをコピー MKDIR "%newProjectPath%\.vscode" XCOPY "%templatePath%\.vscode" "%newProjectPath%\.vscode\" /E /H /K /Y REM run.bat を作成する。これを使って dotnet run にリダイレクトを適用する。 ECHO @ECHO OFF > "%newProjectPath%\run.bat" ECHO dotnet run ^< input.txt >> "%newProjectPath%\run.bat" REM VSCodeで新しいプロジェクトを開く code "%newProjectPath%" ECHO プロジェクト "%projName%" のセットアップが完了しました。 PAUSE
スクリプトの実行とプロジェクトのセットアップ
このスクリプトを実行すると、ユーザーからプロジェクト名の入力を促し、入力された名前で新しいプロジェクトディレクトリを作成します。 プロジェクトが既に存在する場合は、警告メッセージを表示し、作成プロセスを中断します。
スクリプトは、dotnet new
コマンドを使って.NETコンソールアプリケーションの雛形を生成し、設定ファイルとして input.txt
やVSCodeのタスク設定を含む .vscode
ディレクトリを新しいプロジェクトにコピーします。
最後に、VSCodeを起動して新しいプロジェクトフォルダを開き、プロジェクトの準備が完了したことをユーザーに通知します。便利になりました。
3-実践
本記事で準備したバッチファイルCreateCSharpProject.bat
を使用して新しいプロジェクトを作成し、実際にコードをテスト実行するまでの流れを案内します。
新しいプロジェクトの作成
- バッチファイルの実行
CreateCSharpProject.bat
ファイルをダブルクリックするか、コマンドプロンプトから実行します。 プロジェクト名の入力
指示に従ってプロジェクト名を入力します。これにより、新しいプロジェクトディレクトリが作成され、テンプレートファイルが該当フォルダ内にコピーされます。テンプレートの確認
プロジェクトフォルダを開き、Program.cs
や.vscode/tasks.json
などのファイルが適切に配置されていることを確認します。input.txtの編集
テストデータやサンプル入力をinput.txt
ファイルに挿入します。これがアプリケーションに供給される入力になります。 ※デフォルトだと「Hello, world!」が挿入されています。
プロジェクトのビルドとテスト実行
VSCodeでプロジェクトを開く
自動的に起動したVSCodeで、作成したプロジェクトがロードされているのを確認します。ビルドの実行
Ctrl+Shift+B
(Windows)またはCmd+Shift+B
(macOS)のショートカットを使うことで実行できます。プログラムはinput.txt
から入力を読み取り、期待される出力をコンソールに表示します。結果の確認
コンソールに表示された出力が期待通りかどうかを確認します。
おわりに
今回共有したCreateCSharpProject.bat
スクリプトの作成から、VSCodeでのC#開発環境の構築、さらにはビルドと実行までの手順が、皆さんの煩わしさを軽減するための一助となればと思います。ではまた。
WindowsでのSSH接続とVisual Studioを活用したGitソース管理
SSH接続の設定から始まり、Visual Studioの内蔵Gitツールを使用してプロジェクトのバージョン管理を行うまでの一連のプロセスをまとめました。
前提条件
公開鍵生成
GitHubにssh接続するために、まずは鍵ファイルを準備します。
1. コマンドプロンプトを開く
2. ホームへ移動
$ cd %HOMEPATH%
3. .ssh
フォルダを作成しそこへ移動
$ mkdir .ssh $ cd .ssh
4. 鍵生成
$ ssh-keygen -t ecdsa -b 384 -m PEM
基本的にはEnter連打でよいです。
.ssh
フォルダにid_ecdsa
とid_ecdsa.pub
が生成されます。
※id_ecdsa
のほうは秘密鍵ですので、絶対に他の人に見られてはいけません。大切に保管しましょう。
コマンド解説
-t
- キータイプを指定します。
rsa
, dsa
, ecdsa
, ed25519
などがあります。RSAが最も一般的ですが、より短いキー長で同等のセキュリティを提供するECDSAを選択しました。
-b
- キーのビット長を指定します。
ECDSAでは256ビットが一般的ですが、今回はより高いセキュリティを求めて384ビットを選択しました。
-m
- キーファイルのフォーマットを指定します。
PEMか新しいOpenSSHフォーマット(デフォルト)を指定できます。互換性を考えて今回はPEMにしました。
5. 公開鍵を登録
$ cd .ssh $ vi authorized_keys <--- 末尾に id_ecdsa.pub の内容を追記
サーバの~/.ssh/authorized_keys
ファイルに公開鍵の内容が追加されます。
6. クライアントPCからSSH接続の確認
コマンドプロンプトで以下を行う
$ ssh git@[サーバ名]
※サーバ名が解決できない場合は、IPアドレスを使用してみてください。
以下が表示された場合はyes
を入力してEnter
Are you sure you want to continue connecting (yes/no/[fingerprint])?
ssh接続する方法は以上になります。
Gitを利用したソース管理
1. Visual Studio でソリューション作成
- Visual Studioでソリューション・プロジェクトを作成
- メニューに[
Git
]が出ていない場合は、[ツール
] - [オプション
] のソース管理
で「現在のソース管理プラグイン」をGit
に変更。
2. リモートリポジトリの作成とプッシュ
1. コマンドプロンプトで以下を実行しサーバへログイン
$ ssh git@[サーバ名]
2. リモートリポジトリ作成
※/opt/git
はリポジトリを格納するディレクトリへのパスです。Windows環境であればC:/Repositories
のようのようなパスになります。
$ cd /opt/git $ git init [リポジトリ名].git --bare --shared hint: ヒントらしきメッセージが数行表示されます (中略) Initialized empty shared Git repository in /opt/git/[リポジトリ名].git/ $ ls -->ここに [リポジトリ名].git が表示されればOK
3. リモートリポジトリにプッシュ
- Visual Studioで[
Git
] - [Gitリポジトリの作成
] を実行 その他
の既存のリモート
を選択Remote URL
に以下を入力しプッシュ
をクリック
git@[サーバ名]:[リポジトリ名].git
以上でGitでのソース管理の準備は完了です。お疲れ様でした。
余談:VSSからGitへの移行とその挑戦
この記事を通じてWindows環境でのSSH接続やVisual Studioを使ったGitの操作方法をお伝えしてきましたが、実は私自身、以前まではMicrosoft Visual SourceSafe(VSS)を主に使っていました。
VSSは正直言って使いにくく、日々の作業に苦痛を感じていたんですよね。(データが消し飛んだりと地獄を見ることも多々あるし…)
自分が楽になりたいという思いから、Gitの導入を提案しました。これはそのとき用意した資料の一部です。
資料はチーム全体に向けてGitの講習会するときにも役立ちました。準備していてよかった~~
Linux環境でGitサーバーを設定する手順は後日まとめたいと思います。ではまた。