Closed1

VSCodeがSPOFになっている問題

bilzardbilzard

現状の開発環境の要件を満たすIDEがVSCode一択なので、何かしらの不具合が起きた場合に開発がストップしてしまう問題がある。ワークアラウンドが存在したり、短期的に解決できる問題ならまだ良いが、長期的に解決されないような問題が生じると深刻な問題である。

問題が生じた時に現状の要件をなるべく維持できる代替手段を考えておく。

スコープ

VSCodeやExtentionのバージョンを不具合前のバージョンに切り戻すことでは対処できないようなケースを想定する。また、最悪pythonコードについてはコンテナ上のvimで行えるので、Jupyter notebookの実行環境の代替について議論する。

現状の開発環境の要件

  1. リモートホスト上の開発環境(Dockerコンテナ)に接続できる
  2. ローカルに編集内容がキャッシュできる

1の詳細な要件は、

  • リモートコンテナ上のファイルシステムにアクセスできる
  • GitHubへのpush/pullができる
  • ターミナルを開ける(scriptを実行できる)

基本的にはJupyter ServerにHTTPで接続する場合にも満たされるものではある。

2は以前の運用方法(SSH port forward + jupyter by HTTP)で開発していた時に、稀にセッションが途切れた場合にローカルで編集していた内容が全て消えるという問題があったことが元で加えた要件。
この問題は自分のリモート接続環境(reverse SSH tunneling)に固有の問題かもしれない。

可能な代替手段

  1. 以前の運用方法(SSH port forward + jupyter by HTTP)に一時的に切り戻す
  2. ローカルでコードを書いて完成したものをリモート環境で実行(papermillなどで)

代替の開発環境における運用上の制約

SSH port forward + jupyter by HTTP

  1. セッションが途切れるとローカルの編集内容が失われる。
  2. 普段使ってないので拡張機能が揃ってない。環境構築が必要かもしれない(だたしLSPはデフォルトでインストールされているよう)。
  3. コード補完はできるが静的解析やリファクタリング機能が限定的(最新のはよく知らないが)
  4. クライアントのセッションを開きっぱなしにする必要がある。長期間の学習プロセスをブラウザから実行する場合は問題になるが、papermillなどでバックグラウンド実行すれば回避できる。

致命的なのは1。完全なワークアラウンドは自分が知る限り存在しないが、定期的に編集内容を保存することでロスを最小にできる。

ローカルで編集、リモートで実行

  1. リモートとローカルで環境を完全に一致させるのが難しい
  2. 1のため、静的解析はあまり当てにならなくなる(基本エラーがでている状態)
  3. インタラクティブに実行できなくなり、jupyterを使うメリットが大幅に失われる
このスクラップは2023/11/10にクローズされました