7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Eclipseでリモートペアプロを実現する

リモートワークではかどってますでしょうか?

ドリーム・アーツでもフルリモート、フルフレックス環境でチーム開発を行っています。リモートワークになって困ったことの筆頭がペアプログラミングです。

我々のプロダクトのサーバーサイドは Java で作成されており、標準の開発環境として Eclipse を使っています。

Teams や Zoom で画面を共有しながらやってみたりしたのですが、ナビゲーターからドライバーにコードスニペットを伝えたりするのに「XX行目のところ、違うもっと上! そこに入れる!」とかかなりストレスフルなやりとりに辟易していました。

Visual Studio Code の Live Share と同じことを Eclipse でもやりたい!を実現してみました。(だいたい同じ手順で IntelliJ でも可能です)

ペアプロの様子

まずはペアプロの様子をご覧ください。Eclipse でのコード編集がリアルタイムに双方向に同期しています。

20201220_saros.gif

これを実現するのが、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マーケットプレース

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

JID には先ほど作成したユーザーを ユーザー名@localhost として指定します。

Advanced Options を開き、ejabberd を起動したサーバーのホスト名を入れ、Port には 5222 を指定します。
ここで Eclipse を再起動しておきます。

別のコンピューターの Eclipse にも同様に別のユーザーでセットアップします。

Saros によるプロジェクトの共有

プロジェクトに招待する側から、別のユーザーをコンタクトに追加します。
image.png

招待を受けた側の Eclipse では、招待を受け入れるかどうかの確認がでるので OK を押してXMPPで通信できるようにします。
Screen Shot 2020-12-20 at 11.39.41.png

あとは共有するプロジェクトを右クリックして「Share Proejct(s)」を選択。共有するユーザーを選択すると共有が始まります。
スクリーンショット 2020-12-20 10.50.09.png
スクリーンショット 2020-12-20 10.50.33.png

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

Let's enjoy hacking!

7
2
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
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?