エディタAtomを使ってリモートでペアプログラミングしよう!

◆◆まずは結論!:Atomとatom-pairパッケージを使え!

最初に結論を言っておきます!!
ネットを介した複数人で一つのテキストファイルを閲覧/編集をするなら、Atomとatom-pairパッケージを使えーーーーーーっ!!!!

◆◆Atomはともかくatom-pairパッケージってなに?

Atomがエディタというのはご存知でしょう。
atom-pairは、一つのテキストファイルを複数人で読み書きするためのAtomパッケージです。
1セッションで最大20人ということですので、充分実用的です。

atom-pairパッケージ はこちら↓

複数人で一つのファイルを使ってプログラミングをする時やエディタを使う場合に、これは使えます!
もちろんアイデア次第ですが、こんなシチュエーションで使えるでしょう。

  • Web会議時の議事録作成
  • ペアプログラミング
  • コードレビュー

atom-pairパッケージとは、要は 一つのテキストファイルを同時に複数人(複数マシン)で編集できる ものです。

Web会議とかでよくあるのは、誰かの画面を共有してその人が議事録を書きますよね。
前々から思っていたのですが、議事録を書いている人は会議に集中できないじゃないですか。
抜け漏れがあってはいけないですし。
会議中に、書ける人がどんどん議事録に書いていけばいいのになぁと前から思っていました。

あと、Skypeを使ってプログラミングを教える時なんかにほんのちょっとしたイライラが2つありました。

  • 画面共有をコーディングする側にイチイチ切り替えないといけないので面倒
  • 講師が生徒の間違いを指摘したくても、口頭での説明はまどろっこしい

このイライラがatom-pairパッケージを使えばかなり解消されるかも知れません!

◆◆atom-pairパッケージの使い方

◆インストール

パッケージのインストールはいつものように、

Settings -> Install から atom-pair を検索して Install ボタンをクリックするだけです。
環境によりますけど、インストールは20秒ぐらいかな。

ひとまずこれで完了です。

特に設定しないといけないものは無いです。

atompair_001

◆使い方

見せる人(招待する人)

セッションIDを取得して、招待した人にそのIDを送ります。

セッションIDを取得する操作は二通りあります。

1つ目:メニューから選択パターン
  メニュー -> Packages -> Atom Pair -> Start New Pairing Sessionn

2つ目:ショートカットキーパターン
  Windows : Ctrl + Shift + P
  Mac : Command + Shift + P

  上記のキー操作でコマンドを入力する画面が出ます。
  『atom new』と入力すれば、
  『AtomPair: Start new pairing session』が出て来ますので、
  Enterキーを押します。

上記どちらかの操作をすると、
『Your session ID has been copied to your clipboard.』
というメッセージが出ます。

53桁ぐらいの長いIDがクリップボードにコピーされます。
このIDが招待用の「セッションID」になりますので、メールかSkypeのメッセージかGoogle Hangoutsか何かで招待する人に送ります。

見る人(招待される人)

招待される人は「セッションID」を受け取りましたら、Joinします。
Joinする操作は二通りあります。

1つ目:メニューから選択パターン
  メニュー -> Packages -> Atom Pair -> Join Existing Pairing Session

2つ目:ショートカットキーパターン
  Windows : Ctrl + Shift + P
  Mac : Command + Shift + P

  上記のキー操作でコマンドを入力する画面が出ます。
  『atom join』と入力すれば、
  『AtomPair: Join priring session』が出て来ますので、
  Enterキーを押します。

上記どちらかの操作をすると、
『Enter the session ID here:』というメッセージとともに入力ウィンドウが表示されます。
その入力ウィンドウにセッションIDを入力してEnterキーを押します。
そしたらウィンドウが開いて、招待する人が公開しているファイルが見えるようになります。

招待した人も招待された人も使い方は同じ

当然ですが、見えているものは同じです。
どちらかが文字を入力したり削除したり変更したりするとすぐに相手の方も同じようになります。
使い方と言っても、基本これだけです。
言うてもテキストファイルを使っているので、文字の追加/変更/削除ぐらいしかする事は無いですね。

あと、自分が変更してから相手のAtomが変更されるまでのタイムラグはかなり少ないと思います。
何ら違和感なくやりとりできます。

これはかなり大きなポイントです。
テキストという軽い情報しか扱ってないから当たり前と言えば当たり前なんですけど、しかし、リモート系のツールはタイムラグが後々ストレスになりますので、タイムラグが少ないの非常に嬉しいですよ!

切断

切断する操作は二通りではありません。
一つのみです。
メニューからの選択が無く、ショートカットキーパターンのみのようです。

・ショートカットキーパターン
  Windows : Ctrl + Shift + P
  Mac : Command + Shift + P

  上記のキー操作でコマンドを入力する画面が出ます。
  『atom disconnect』と入力すれば、
  『AtomPair: Disconnect』が出て来ますので、
  Enterキーを押します。

◆◆ペアプログラミングで使おう

私はプログラマですから、この atom-pair をペアプログラミングで使ってみたいです。

かなり大昔から提唱されているペアプログラミング!!
やってますか?

やってないですよね?(笑)

遊びならともかく、仕事ではなかなかやらないですよね。
ペアプロは結構有用だと思うんですけどね。

私が思うペアプログラミングの欠点

  1. 一つの仕事に二人もかけられない。人件費がもったいない。
  2. 一つの画面を二人で見ていられない。
    拡張ディスプレイ使えばいいけど、そんな事をイチイチやるのは面倒
  3. 一つのキーボード、一つのマウスを二人で使うのは面倒。
  4. 机が狭いのでオッサン同士で引っ付きたくない

他にもいろいろな理由があるかもしれませんが、まぁ、人件費の問題が一番大きいのでしょう。
コストはさすがにどうにもできませんが、2番以降の理由であれば、エディタであるAtomと atom-pairパッケージを使えば解消できるかもしれません。

会話については、イマドキSkypeやWebExを使っての遠隔会議なんて珍しく無いと思いますので会話はSkype等を使えばいいでしょう。

◆◆ソースコードレビューで使おう

ソースコードレビューに使えるでしょう!
ソースコードレビューって普通はプロジェクタとかで大きく映して全員でそれを見るという感じですよね。
細かい場所を言う時は『何行目の○○・・・・』とか、『○○の処理のすぐ下のXXの処理・・・』という風に口頭で表現していますよね?
で、指摘者がちょっとややこしい指摘をする時とか、具体的な修正方法を説明するときとか、口頭でやっているとちゃんと伝わらなかったりしませんか?
指摘者が手元でちゃちゃっと書いてしまえば、ソースコードレビューが効率よく進むんじゃないでしょうか?

あと、しょーもない誤字脱字とかを見つけた人がその場で直してしまえば、後で修正する手間がかからずみんな幸せになるんじゃないでしょうか?

まぁ、全員がAtomを使っている必要があるんですけど、レビューの時だけでもAtomを使うぐらいいいでしょ。

◆◆atom-pairで気になるところ

あまり不満は無いですが、使ってみてちょっとだけですが気になる点があります。

  • 誰もが手を加える事ができるのはいいんですけど、誰が変更したか分からない
  • 同時に同じ箇所を複数人が変更した場合、変な形になってしまう。
    ※変更前に声をかけるようにすれば防げるでしょう。
  • プレゼンターという仕組みがないので、カーソル移動を見せられない。
    これが地味に不便かな。
    話すときは案外『ここがですね・・・・』みたいな事を言ってしまいます。
    自分のカーソル行と見ている人のカーソル行は違ってますからね、『ここ』という表現はダメですね。
    『35行目の・・・』というように行番号を言いながらじゃないとダメですね。

    プロジェクタに映しながらatom-pairパッケージを使うというパターンであればこの問題は解消できます。

◆◆まとめ

プログラマならなかなか使えますよ。
特にソースコードレビューの時に使えるんじゃないかなと思います。
ちょっとした指摘ならその場でソースコードを書き換えてしまってもいいでしょうし。

ただ、ある程度は運用ルールが必要だと思います。
複数人が同時に変更しだすとワケワカラン事になりますので、同時に書かないルールが多少は必要でしょう。

例えば、変更を加える時は、

  • 事前に声をかけて、他の人は触らない
  • 変更した箇所には名前を入れる

等々…

うまく使えば仕事にかなり役立つと思います。

ぜひぜひ試してみてください!

 

 

 


3 件のコメント

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。