最近ソーシャルネットワークを見ましたが、これはばかげた質問かもしれませんが、複数の人が1つのWebサイトでどのように作業できるのでしょうか。つまり、同じページで作業している場合、どのように可能ですか?また、ファイルをライブにせずにオンラインホストにアップロードすることは可能ですか?
最近ソーシャルネットワークを見ましたが、これはばかげた質問かもしれませんが、複数の人が1つのWebサイトでどのように作業できるのでしょうか。つまり、同じページで作業している場合、どのように可能ですか?また、ファイルをライブにせずにオンラインホストにアップロードすることは可能ですか?
回答:
通常、複数の人が同じファイルを変更する必要がある場合、彼らは何らかのバージョン管理システムを使用して、誰がどの変更を行ったかを追跡します。また、さまざまな人が行った変更をマージおよび同期できます。
同じファイルで作業する複数の人:ソース管理
それらをライブにせずに:開発サーバーとデータベース。これらは実際のWebサイトと同じブランチではありません。
彼らには何らかのマネージャーが必要です。
通常、チームは互いに干渉しないセグメントに分けられます(有名な最後の言葉)。たとえば、foo APIがCでコーディングしている人々のヘルパーに依存している場合、破損は発生しません(発生しません)。
それは、右手が左手が何をしているのか分からないという古典的なケースです。
最初にマージをプルおよび解決せずにコードをプッシュする場合(他の開発者が書いていないものを削除するだけで他の開発者がやったことを壊します)、 同じ編集を行う他の人と通信する前に、高電圧を使います。その後、私はあなたを夕食に連れて行き(1.21ギガワットの補償をするために)、あなたが何らかの種類のクレイジーで嫌な、非常にエキゾチックな食べ物を摂取することを確実にします。考えて... クリンゴン。
それからあなたは私に感謝し、二度としないでしょう。
もちろん、ここでなんらかの通常の「話す」ことを代用できますが、それは何が楽しいですか?
次のいずれかです。
最後の1つについては、CVSやsubversionなどの一元化されたバージョン管理の代わりに、mercurial、git、bazarなどの分散バージョン管理を使用するようになりました。Mercurialの場合は、bitbucket.orgとgoogle code project hostingを確認してください。gitの場合は、githubを確認してください。これらは、サーバーをセットアップせずに共同で共有できるコードをホストするサイトです。
また:
私は多くの大規模なWebサイトに取り組んできましたが、複数の人が同じページで作業する方法は、ほとんどのWebサイトがポータルであるということです。一般に、facebookのような多くのサイトには、写真、広告、小さな宣伝エリアなど、複数の人が作業する多くのコントロールが含まれています。また、ヘッダーとフッターは通常、独自の再利用可能なインクルードファイルに分割されます。これにより、サイトはコンポーネントに分割され、個別に作業できるだけでなく、複数のサイトやエリアで再利用することもできます。
OneNoteが使用しているような、何らかの種類のライブ同期システムを使用できます。さらに、ホストにファイルをアップロードすることはできますが、メインドメインをファイルにリンクすることはできません。
言及されたこれらのツールはすべて有用ですが、私には、OPが人々が他者の道に進まないようにする方法をもっと求めているようです。
これらの競合を解決するためのツールを使用することに加えて、通常、最初の競合を回避するために、スタックまたは層にいくつかの分割があります。
スタックアプローチでは、各人が無関係な機能を操作します(1人がアカウントサインアップを行い、1人がコンテンツ送信を行う場合があります)。この2つが交差する可能性のある競合(この例ではユーザーレコードである可能性があります)があり、次のビルドへのマージの一部として処理されます。
層アプローチでは、誰かがすべての最も内側のビットを構築し、ある部分が完成すると、別の人がそれらの上にあるビットを書き込みます。ここで生成される競合は、通常、上の階層に影響を与える可能性のある後の変更のために下位階層に何かを戻す必要があり、次のビルドの前に同様の方法で処理される場合です。
宣伝されているがライブではないファイルに関する部分には、さまざまな回答/実装がありますが、プレビューする別のサーバー、特定のプレビューモード、または通常のユーザーが安定バージョンを取得している間に最先端のバージョンを取得するユーザークラスまたは資格があります私が最もよく見かけるもの。
最初に2番目の部分に答えるには、ファイルを公開せずにアップロードする1つの方法は、リンクされない名前をファイルに付けることです。たとえば、index.html
ページの新しいバージョンを作成し、itという名前でアップロードしてindex2.html
から、アクセスhttp://yoursite.com/index2.html
して正常に機能することを確認します。満足したら、名前をに変更しindex.html
ます。これは非常に小さなサイトのために実際にある、そしてあなたは、画像、CSSやJavaScriptファイルなどのページへの外部の何かを、変更したい場合は、それはあなたが持っている必要があるため、ビット厄介を取得しimage2.png
、その後、index2.html
その唯一の違いは、それが指していることです新しいイメージ。
プロのプログラマは常にテストシステムを使用して作業し、変更に満足したら「オンラインホスト」にアップロードします。ローカルネットワーク内のページのみを提供するWebサーバーをコンピューターにセットアップできます。もちろん、別のコンピューターを使用することも、メインコンピューターで実行されている仮想マシンを使用することもできます。
複数の開発者が一緒に作業する場合、各開発者は作業する独自のテストシステムを持ち、それらの変更をバージョン管理システムにアップロードして、さまざまな人々のすべての変更を追跡します。これがどのように機能するかについては、gitのたとえを参照してください。
バージョン管理システムにより、誰が何をなぜ変更したかを簡単に確認できます。これは、担当者が確認し、マスターにマージして、テスト/ QA部門に引き渡すことができます。新機能を完全にテストしたら、ライブサイトへのアップロードを承認します。
最初に確立することは、多くのサイトが1人以上の人が取り組んでいる静的ページのコレクションではないことです。
訪問者として表示されるページは、Webサイトに存在せず、コンテンツ管理システム(ホスティングサーバーで実行されているソフトウェア、Webサイトのコンテンツを使用するソフトウェア)所有者が作成しました。CMSは、テンプレートファイル(CSSおよびCMSの独自の構成ファイル)を使用してレイアウトされたコンテンツからページをアセンブルし、結果のページがブラウザに提供されます。
サイト所有者は、静的ページではなく、コンテンツとレイアウトテンプレートを変更します。それから導く答えは、変化の種類とそれを行う人の役割に依存します。
Drupalは無料の強力なコンテンツ管理システムであり、コンテンツの更新を処理するマルチユーザー管理を提供します。これは、ページの訪問者に表示される内容に影響を与えます。Drupalは、ページの動作を変更する手段も提供します。たとえば、ページのレイアウトや記事へのコメントの投稿方法など、第1および第2のタイプの変更に対応します。Drupalで変更を行う場合、これらはSQLデータベースに保存されます。Drupalは、コンテンツのバージョン管理/改訂管理を提供します。
より複雑なサイトの動作の変更、機能の追加、Drupalからの更新の受信、追加されたコードのバグ修正など、より複雑なサイトの動作の変更には、完全なバージョン管理システムが必要です。GIT、Subversion、Mercurialなどのバージョン管理システム(すべて無料)は、サイトの複数の開発者による変更を管理するために使用されます。