Eclipseでリモートペアプロを実現する
リモートワークではかどってますでしょうか?
ドリーム・アーツでもフルリモート、フルフレックス環境でチーム開発を行っています。リモートワークになって困ったことの筆頭がペアプログラミングです。
我々のプロダクトのサーバーサイドは Java で作成されており、標準の開発環境として Eclipse を使っています。
Teams や Zoom で画面を共有しながらやってみたりしたのですが、ナビゲーターからドライバーにコードスニペットを伝えたりするのに「XX行目のところ、違うもっと上! そこに入れる!」とかかなりストレスフルなやりとりに辟易していました。
Visual Studio Code の Live Share と同じことを Eclipse でもやりたい!を実現してみました。(だいたい同じ手順で IntelliJ でも可能です)
ペアプロの様子
まずはペアプロの様子をご覧ください。Eclipse でのコード編集がリアルタイムに双方向に同期しています。
これを実現するのが、Saros (https://www.saros-project.org) です。
XMPPサーバーの構築
Saros は、Eclipse間のソースツリーや編集状態の同期に XMPP を利用します。
すでにどこかのサーバーの XMPP のアカウントを持っている場合はそれをそのまま利用できますが、アカウントを持っていない場合、またセキュリティ上の理由でプライベートな環境が必要な場合は、自前で XMPP サーバーを構築することができます。
今回は、XMPP サーバーの実装の一つである ejabber を用いて XMPP サーバーを構築します。
ejabber は標準で Docker のコンテナイメージが提供されているのでそれを用います。
docker run --name ejabberd -d -p 5222:5222 ejabberd/ecs
コンテナが起動したら以下のコマンドでアカウントを作成していきます。
docker exec -it ejabberd bin/ejabberdctl register {ユーザー名} localhost {パスワード}
Saros を試すには少なくとも2人のアカウントが必要なので必要に応じて作成していきます。
Eclipse Saros プラグインのセットアップ
Eclipse マーケットプレースからインストールできるので、Saros という文字列で検索してインストールします。

インストールして Eclipse をリスタートすると、XMPPのアカウントの設定画面が開きます。

JID には先ほど作成したユーザーを ユーザー名@localhost として指定します。
Advanced Options を開き、ejabberd を起動したサーバーのホスト名を入れ、Port には 5222 を指定します。
ここで Eclipse を再起動しておきます。
別のコンピューターの Eclipse にも同様に別のユーザーでセットアップします。
Saros によるプロジェクトの共有
プロジェクトに招待する側から、別のユーザーをコンタクトに追加します。

招待を受けた側の Eclipse では、招待を受け入れるかどうかの確認がでるので OK を押してXMPPで通信できるようにします。

あとは共有するプロジェクトを右クリックして「Share Proejct(s)」を選択。共有するユーザーを選択すると共有が始まります。


これで Eclipse でもライブ共有しながらコーディングが可能になるというわけです。
Let's enjoy hacking!
