綺麗に競プロの環境構築をする(C++編)
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 ご確認ください
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