3
5

競プロ用の開発環境を何も考えずに爆速で欲しければGitHub Codespacesを使おう

Last updated at Posted at 2024-02-09

はじめに

最近になってGitHub Codespaces最強じゃん、というのに気づき、競プロ環境もこれでいいんじゃない?と思って書く。

環境構築で面倒になって辞める人間が50%ぐらい(当社比)いるので、本格的な環境がこれだけ手軽に準備できるのはかなりいいんじゃないと思っている。
また仕組み上ブラウザで完結するので、PCはもちろんのことタブレット端末でも行けるはず。

手順

まず手順から。

2024/6/9現在、ABCでの利用が禁止されている機能を持ったバージョンのatcoder-toolsを同梱するコンテナイメージを利用しています。
コンテスト中の利用はお控えください。
詳細はこちら:https://info.atcoder.jp/entry/llm-abc-rules-ja

  • create codespaceを押す(github accountがなければ先にsign upしよう)

image.png

  • 待つ

image.png

  • できた

image.png

以上で、定番のVisual Studio CodeでPythonを動かす環境が手に入るし、すべてブラウザで完結する。
そして、実際に裏でlinux OSが動いているので、デバッグ等もちゃんと動くし、各種拡張機能も追加できる。

仕組み

GitHubが提供しているサービスにCodespacesという開発環境をクラウドで提供する仕組みがある。今回はそれを利用して、私が以前作成したPython(PyPy)の実行環境として定義した内容に基づき、開発環境を起動している。
私が作成した、とはいうものの、実際に起動される環境はアカウントごとに個別なため、相互に干渉することはなく、自分だけの環境として動作させることができる。

注意点

利用時間に上限がある

GitHubのfreeアカウントは、実質60時間/月分Codespacesを利用することができる。なので、この時間を超過してしまうと利用ができなくなることが予想される。
(120h*core/monthまで使えるが、最小のインスタンスが2coreから)
https://docs.github.com/ja/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts
https://docs.github.com/ja/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#pricing-for-paid-usage

従い、この環境をベースにAtCoderなどのコンテストに出る場合、コンテスト直前は残量を確認しておこう。下記みたいな形で確認ができる。
image.png

ただまあ、60時間もできたのならすごいことだと思うし、それだけできる人ならPCを買ってセットアップするコストや苦労は十分乗り越えられるんじゃないかと思う。

また、つけっぱなしでも勝手にシャットダウンしてコストセーブしてくれる機能もあるので、やらかしの心配も少ない。

使い込むなら知識が必要

使わないと30日たつとデフォルトで消える挙動のため、そのあたりの仕様をちゃんと理解をして利用する必要があるほか、この環境を改変などをしたくなってくると、gitの知識をはじめ環境を定義しているdevcontainerやdocker、linuxについて理解を深めていく必要が出てくる。
ただ、このあたりはまず動くものがあって、そこからちょっとづつやっていく分には比較的ハードルが低いと思うので、気になるところから手を付けていけばいいんじゃないかと思う。

終わりに

手順自体があまりにも簡単なので、思いのほか書くこともなかった。
環境構築、しんどいばかりで1ミリも楽しくないので、そういうところは全部省いて、プログラミングをぜひ楽しんでほしい。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5