何週間か前のことですが、ボルダーにいる仲間が書いたコードをリファクタリングしていました(私はサンフランシスコにいたのですが)。私は彼に対して、私が実行した変更を見直して欲しいと頼みました。急いでいたので、大げさに手を加えず、またプルリクエストやコードレビューとして一般的に呼ばれていることをせずに、です。私がインターネット上で作業している内容を、リアルタイムで彼にも把握できるように、インターネット上で私が付けた編集タブを共有したいと思っていたのです。確かに、次の内のどれかはできたはずでした:

  • 彼を招待してスクリーン共有セッションを行うこと
  • 私のコードをスニペット・ホストサイトにコピーして、HipChat を経由してリンクを共有すること
  • リファクタリングするコードを私の Stash リポジトリにコミットし、彼にプルリクエストを送ること

おそらく開発者のほとんどは、これらの選択肢のうちどれをとっても満足していたことでしょうが、私には満足できるものは一つもありませんでした。私と Bob は、HipChat を通じて、私のリファクタリングについてすでに細かい議論を重ねていました。そして協同してコード化に取り組むことが理想的だろうと結論付けたのでした。

実用化について

上記のような状況は初めてではありません。実際にいつも起こっていることであり、私だけの問題ではありません。ここ数年ずっと、私のコードが活かせる協同編集がリアルタイムでできることを願っていました。このようなソリューションを創り出そうとした人も多くいましたが、私が納得したものは一つもありませんでした。

数週間前、私が仲間の Tim Pettersen と、各四半期の Shiplt プロジェクトにはどのような作業をすべきかを議論していたときです。私はこの問題を解決すべきだと提案しました。丸一日苦闘した末、一つのソリューションを生み出すことができました。

Stash 用アドオン、リアルタイムエディター紹介


Stash リアルタイムエディターを使えば、Stash インターフェースから直接リアルタイムでファイルを編集することができます。もちろんクローンでもなく、IDE でもなく、ローカルエディターでもありません。リアルタイムで行えるので、仲間とリンクを共有して共同編集作業をしたり、一緒にコードのレビューをしたりすることができます。編集結果に満足できたら、リポジトリに変更をアップすることなく、Stash に対してこれらを直接コミットすることができます。このコミットが新規のブランチに保管され、単にプルリクエストするだけで結合することができます。

このアドオンは、かの有名な Firebase サービスや Firepad 操作変換(OT)ベースのエディターを利用して、リアルタイムで作業できるエディターを Stash に直接追加します。OT では、信頼性が高く予測性に富んだファイル編集をリアルタイムで実施することができ、同じエディターで今他のユーザーは何をしてるのか(セレクト中なのか、ハイライト中なのか、タイピング中なのか、など)が一目瞭然となります。

Stash リアルタイムエディターは、万一ネットワークの接続が中断した場合でも作業可能です。例えば、誰かとファイル編集を協同作業していて、突然パソコンが止まってしまった場合、列車の中で仕事を再開することもできるし、自宅に帰ってからオンラインに繋ぐことも可能です。この場合でも実施した変更はイメージした通り正確にシンクロされています。

Stash リアルタイムエディターは Stash 用の無料アドオンです。アトラシアン Marketplaceなどで探してみてください。

詳細を見る

*本ブログは Atlassian Blogs の翻訳です。本文中の日時などは投稿当時のものですのでご了承ください。
*原文 : 2013 年 4 月 9 日 “Meet the Stash Realtime Editor Add-on