3

リアルタイムのコラボレーションを可能にする単純なオンライン エディター (Java で記述) を開発しようとしています。このエディターでは、クライアントが任意のポイントでソース コードを編集できるようにしたいと考えています (たとえば、ソース コード ファイルの行 11、列 20 に文字 'd' を追加します)。これらのソース コード ファイル オブジェクトを効率的な方法で設計する方法がわかりませんが、文字単位のクライアント サーバー同期 (Google ドキュメントの仕組みと同様) を可能にします。

RandomAccessFile の使用を検討しましたが、この投稿を読んだ後、それは効率的なアプローチではないと思います。ファイルの先頭近くに文字を挿入すると、その後のすべてが変更されます。

私の現在の計画は、StringBuilder オブジェクトとその挿入/削除/追加メソッドを使用して、サーバーとクライアントの両方のソース ファイルを表すことです。サーバー側では、この StringBuilder は必要に応じて実際のファイルに変換されます。

この問題を解決するためのより良いアプローチがあるかどうかに興味があります。何か案は?

4

2 に答える 2

0

Gitのように分散型バージョン管理を使用する方が良いかもしれません。ユーザーはリポジトリのローカル コピーを保存し、ローカルでマージするリモートからプルできます。コミットするとローカル リポジトリが変更され、リモートを更新するためにプッシュされます。つまり、ドキュメントをローカル マシンに保存するには、ユーザーの権限が必要になります。

于 2012-10-21T03:23:13.023 に答える