🐳

綺麗に競プロ‬の環境構築をする(C++編)

2020/12/13に公開

About This

競技プログラミング Advent Calendar 2020 16日目の記事です。

こんにちは、kenseitogariです。
本日はローカル環境を汚さずに綺麗に競プロ‬の環境構築をする方法を紹介します。

なぜこの記事を書いたのか

最近、弊社で‪競プロ‬部ができました。‪競プロ‬ではC++が一番メジャーですが[1]、弊社では業務でC++を基本的に使っていないためローカルパソコンにC++の環境設定がされていません。

もちろん、各自がC++の環境設定をしても良いのですが、‪競プロ‬部ができたことによって人が増えたことや環境が汚れてしまうことから、綺麗に競プロ‬の環境構築をすることをしました。

環境

macOS 10.15.6
Docker 19.03.5
VScode 1.51.0

やり方

3ステップだけで簡単にC++を実行できます。

0. 上記リポジトリをCloneしてVScodeで開く

以下が私が作成したリポジトリです。
最新情報は以下のREADME.md ご確認ください
https://github.com/kenseitogari/docker_vscode_Competitive_programming

1. VScodeの拡張機能をインストール

VS Code 上で command + shift + X で拡張機能メニューを開き、「Remote-Containers」を検索してインストールします。

2. Remote-Containers を実行

F1を押してすべてのコマンドから「Remote-Containers: Open Folder in Container...」を選択

3. 動作確認

以下のコマンドで動作確認をすることができます。

$ cd cpp

$ g++ -o main main.cpp && ./main
"Hello Wordl!"

なぜ動くのか

.devcontainerディレクトリにDockerの設定などが記載されています。
興味のある方は是非ご覧ください。

結果

メリット

1. 環境を綺麗に保てること

私を含め、ローカル環境を汚くしたくないという方は多いのではないでしょうか? ‪競プロ‬を試しにやってるみるために環境が汚れてしまうと‪競プロ‬へのハードルが高くなってしまいます。
この記事によって‪競プロ‬へのハードルが下がり、気軽に始めれるようになったら嬉しいです。

2. 簡単に環境構築できること

上記と重複する部分もあるのですが、‪競プロ‬を体験するために言語の環境設定に時間を取られてしまっては本末転倒です。細かい設定はとりあえず後でやればよく、まずは簡単に動く環境を簡単に構築できることは大きなメリットかなと思います。

デメリット

1. ローカルではないこと

当たり前じゃんと思われるかもですが、やはり少し使いづらいです。コンテナを起動するのに少し時間がかかったり、コードをgit管理するならば認証をコンテナから通す必要があったりなど地味に不便さがあります。
‪もし、競プロ‬を本格的にやることにしたらローカルに環境構築を作ったら良いのかなと思います。

最後に

最後までご覧いただきありがとうございました。
まだまだ、作ったばかりのリポジトリで未熟な部分も多いですが、コメントなどいただけますと幸いです。

Discussion