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#開発環境の構築、さらにはビルドと実行までの手順が、皆さんの煩わしさを軽減するための一助となればと思います。ではまた。