前書き
この記事は、東京大学工学部電子情報工学科/電気電子工学科の後期実験「大規模ソフトウェアを手探る」のレポートとして作成されました。この実験では、全容が把握できないほど膨大なソフトウェアの内部を読み解き、機能拡張やバグ修正を試みます。私たちは、普段よく使うpopularなエディタであるVisual Studio Code(VSCode)を対象にしました。
実装した機能
今回の実験では2つの機能を実装しました。それぞれの機能については別のページで詳しく説明していますので、そちらをご参照ください。
ビルド方法
使用したOSはUbuntu20.04です。
まずは、公式のソースコードをローカルに落とします。
次に、ビルドについては基本的には公式のHow to Contributeの通りに行えばできますが、ここでは詰まったところを記しておきます。
まず、npmを
$ sudo apt install npm
でインストールすると、
EACCES: permission denied, access '/usr/local/lib'
というエラーメッセージが出たため、nvm経由で次のようにNode.jsをインストールしました。ここで、nvmもしくはNode.jsのバージョンが古いと後にエラーが起きたため、最新のものをインストールします。
# nvmをインストール
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# nvmが正常にインストールされていることを確認
$ command -v nvm
# 最新バージョンをインストール
$ nvm install -lts
# nvmのversion 0.35.3
# nodejsのversion v16.18.0
次に、nvmを用いてyarnをインストールします。
$ nvm use v16.18.0
$ npm install -g yarn
これで、ビルドに必要な道具はすべて揃えました。最後に、作業するディレクトリに移り、次のようにビルドコマンドを打ち込むとビルドできます。
# build
$ cd 2022-06-vscode
$ yarn
# run VSCode on ubuntu
$ ./scripts/code.sh
感想
-
今回、大規模ソフトウェアを手探るという実験を通してVSCodeという世界的にpopularなオープンソースプロジェクトに関わったことは非常に貴重な経験でした。はじめは膨大な量のファイル、コードに圧倒されましたが、根気強く手探っていくことで少しずつコードの意味を理解していくことができました。全容が把握できないほど大きなソフトウェアを探り、理解する中で、多くの学びと根性が身についたように思います。(jiang)
-
VSCodeの実装を読むことで、MVCへの理解が少し深まったとともに、今まで使ったことがなかった機能にふれることができ、とても有意義な実験にすることができました。
しかし、VSCodeのソースコードが膨大過ぎて深いところまで理解することができなかったことは残念なので、ぜひ自主的にVSCodeのソースコードを読んでみようと思えました。(tanomitsu2002)