複数の人が1つのWebサイトでどのように作業できますか?


11

最近ソーシャルネットワークを見ましたが、これはばかげた質問かもしれませんが、複数の人が1つのWebサイトでどのように作業できるのでしょうか。つまり、同じページで作業している場合、どのように可能ですか?また、ファイルをライブにせずにオンラインホストにアップロードすることは可能ですか?


12
ソース管理。各開発者は、それがチェックインされるまでは、ファイル内のコンテンツを置き換えることから、他の開発者を禁止ファイルをチェックアウトする必要があり、ローカルファイル上で動作します。en.wikipedia.org/wiki/List_of_revision_control_softwareを

3
ただし、バイナリでない限り、ファイルに対してバージョン管理のロック機能を使用しないでください。
コリン・ゴーディ

@gommo:「バイナリ」とはどういう意味ですか?それを拡張できますか?
カム

1
@Cam:このコンテキストでは、「バイナリ」=「テキストファイルではないもの」
コンラッドルドルフ

回答:


27

通常、複数の人が同じファイルを変更する必要がある場合、彼らは何らかのバージョン管理システムを使用して、誰がどの変更を行ったかを追跡します。また、さまざまな人が行った変更をマージおよび同期できます。


1
シンプルでありながらエレガント。
ライアンヘイズ

14

1つの「ページ」だけで構成されるWebサイトは非常に少なく、複数の人が同じページで作業する場合、ほとんどのリビジョン管理システムには、変更を統合して1つのファイルに戻すメカニズムが組み込まれています。


ただうるさいために:)それがたまたまCMSベースのシステムである場合を除き、すべてのページは仮想であり、データベースにのみ存在します。
ダークナイト

6

同じファイルで作業する複数の人:ソース管理

それらをライブにせずに:開発サーバーとデータベース。これらは実際のWebサイトと同じブランチではありません。


3

彼らには何らかのマネージャーが必要です。

通常、チームは互いに干渉しないセグメントに分けられます(有名な最後の言葉)。たとえば、foo APIがCでコーディングしている人々のヘルパーに依存している場合、破損は発生しません(発生しません)。

それは、右手が左手が何をしているのか分からないという古典的なケースです。

最初にマージをプルおよび解決せずにコードをプッシュする場合(他の開発者が書いていないものを削除するだけで他の開発者がやったことを壊します)、 同じ編集を行う他の人通信する前に、高電圧を使います。その後、私はあなたを夕食に連れて行き(1.21ギガワットの補償をするために)、あなたが何らかの種類のクレイジーで嫌な、非常にエキゾチックな食べ物を摂取することを確実にします。考えて... クリンゴン

それからあなたは私に感謝し、二度としないでしょう。

もちろん、ここでなんらかの通常の「話す」ことを代用できますが、それは何が楽しいですか?


1

おそらく、彼らは異なるページで作業している開発者を見つけるでしょう。通常、テンプレートまたはサイトマスターは、各ページの外観が同じになるように作成されます。たとえば、会社がTeam Foundation Serverなどのソース管理を使用している場合、各開発者はソースコードをチェックインし、他の開発者が最新の変更を取得できるようにします。


2
TFSは、ソース管理管理システムの例として思いつく最高のものでしたか?さあ
マットフィリップス

1

次のいずれかです。

  • SSHセッション(vi、vim、nano、emacsなど)を介してエディターでプログラミングします。
  • IDEを使用してFTP経由で編集します(emacs、notedpad ++など)。
  • バージョン管理システムを使用します。

最後の1つについては、CVSやsubversionなどの一元化されたバージョン管理の代わりに、mercurialgitbazarなどの分散バージョン管理を使用するようになりました。Mercurialの場合は、bitbucket.orggoogle code project hostingを確認してください。gitの場合は、githubを確認してください。これらは、サーバーをセットアップせずに共同で共有できるコードをホストするサイトです。

また:

  • Mercurialを学ぶには、http: //hginit.com/にアクセスしてください。
  • gitを学ぶには、http: //progit.org/book/にアクセスしてください

1

コンポーネントを含むページ全体の開発VS Pages

私は多くの大規模なWebサイトに取り組んできましたが、複数の人が同じページで作業する方法は、ほとんどのWebサイトがポータルであるということです。一般に、facebookのような多くのサイトには、写真、広告、小さな宣伝エリアなど、複数の人が作業する多くのコントロールが含まれています。また、ヘッダーとフッターは通常、独自の再利用可能なインクルードファイルに分割されます。これにより、サイトはコンポーネントに分割され、個別に作業できるだけでなく、複数のサイトやエリアで再利用することもできます。


Webポータルとは何か知っていますか?(ヒント、マッシュアップではありません。昔はヤフーだと思います)
ハビエル

ええ、私は1つの手法がページをコンポーネントに分割することを示す例を使用しようとしました。その良い例はポータルです。ただし、ユーザーがポータルウィジェットをドロップイン/アウトできるのに対して、コンポーネントを使用してページを構築できるのは開発者側のみです。ポータルは視覚的な良い例です。
ライアンヘイズ

0

OneNoteが使用しているような、何らかの種類のライブ同期システムを使用できます。さらに、ホストにファイルをアップロードすることはできますが、メインドメインをファイルにリンクすることはできません。


0

いくつかのサイトがコンテンツを提供するために使用するコンテンツ管理システムがあることを忘れないでください。何かがウェブページであると思うかもしれませんが、それは本当にこのようなものの混合物です。

多くのコンテンツ管理システムには、作成者がコンテンツを公開する前に表示できるプレビュー機能があります。


0

言及されたこれらのツールはすべて有用ですが、私には、OPが人々が他者の道に進まないようにする方法をもっと求めているようです。

これらの競合を解決するためのツールを使用することに加えて、通常、最初の競合を回避するために、スタックまたは層にいくつかの分割があります。

スタックアプローチでは、各人が無関係な機能を操作します(1人がアカウントサインアップを行い、1人がコンテンツ送信を行う場合があります)。この2つが交差する可能性のある競合(この例ではユーザーレコードである可能性があります)があり、次のビルドへのマージの一部として処理されます。

層アプローチでは、誰かがすべての最も内側のビットを構築し、ある部分が完成すると、別の人がそれらの上にあるビットを書き込みます。ここで生成される競合は、通常、上の階層に影響を与える可能性のある後の変更のために下位階層に何かを戻す必要があり、次のビルドの前に同様の方法で処理される場合です。

宣伝されているがライブではないファイルに関する部分には、さまざまな回答/実装がありますが、プレビューする別のサーバー、特定のプレビューモード、または通常のユーザーが安定バージョンを取得している間に最先端のバージョンを取得するユーザークラスまたは資格があります私が最もよく見かけるもの。


0

最初に2番目の部分に答えるには、ファイルを公開せずにアップロードする1つの方法は、リンクされない名前をファイルに付けることです。たとえば、index.htmlページの新しいバージョンを作成し、itという名前でアップロードしてindex2.htmlから、アクセスhttp://yoursite.com/index2.htmlして正常に機能することを確認します。満足したら、名前をに変更しindex.htmlます。これは非常に小さなサイトのために実際にある、そしてあなたは、画像、CSSやJavaScriptファイルなどのページへの外部の何かを、変更したい場合は、それはあなたが持っている必要があるため、ビット厄介を取得しimage2.png、その後、index2.htmlその唯一の違いは、それが指していることです新しいイメージ。

プロのプログラマは常にテストシステムを使用して作業し、変更に満足したら「オンラインホスト」にアップロードします。ローカルネットワーク内のページのみを提供するWebサーバーをコンピューターにセットアップできます。もちろん、別のコンピューターを使用することも、メインコンピューターで実行されている仮想マシンを使用することもできます。

複数の開発者が一緒に作業する場合、各開発者は作業する独自のテストシステムを持ち、それらの変更をバージョン管理システムにアップロードして、さまざまな人々のすべての変更を追跡します。これがどのように機能するかについては、gitのたとえを参照してください。

バージョン管理システムにより、誰が何をなぜ変更したかを簡単に確認できます。これは、担当者が確認し、マスターにマージして、テスト/ QA部門に引き渡すことができます。新機能を完全にテストしたら、ライブサイトへのアップロードを承認します。


0

最初に確立することは、多くのサイトが1人以上の人が取り組んでいる静的ページのコレクションではないことです。

訪問者として表示されるページは、Webサイトに存在せず、コンテンツ管理システム(ホスティングサーバーで実行されているソフトウェア、Webサイトのコンテンツを使用するソフトウェア)所有者が作成しました。CMSは、テンプレートファイル(CSSおよびCMSの独自の構成ファイル)を使用してレイアウトされたコンテンツからページをアセンブルし、結果のページがブラウザに提供されます。

サイト所有者は、静的ページではなく、コンテンツとレイアウトテンプレートを変更します。それから導く答えは、変化の種類とそれを行う人の役割に依存します。

  1. サイトパブリックユーザー、ブログまたはコメントの投稿
  2. サイトのコンテンツを変更する場合(コンテンツプロデューサーの役割、ウェブサイトの所有者のために働くジャーナリストなど)または
  3. サイトの機能を追加および変更する(サイト所有者のサイト開発者)。

Drupalは無料の強力なコンテンツ管理システムであり、コンテンツの更新を処理するマルチユーザー管理を提供します。これは、ページの訪問者に表示される内容に影響を与えます。Drupalは、ページの動作を変更する手段も提供します。たとえば、ページのレイアウトや記事へのコメントの投稿方法など、第1および第2のタイプの変更に対応します。Drupalで変更を行う場合、これらはSQLデータベースに保存されます。Drupalは、コンテンツのバージョン管理/改訂管理を提供します。

より複雑なサイトの動作の変更、機能の追加、Drupalからの更新の受信、追加されたコードのバグ修正など、より複雑なサイトの動作の変更には、完全なバージョン管理システムが必要です。GIT、Subversion、Mercurialなどのバージョン管理システム(すべて無料)は、サイトの複数の開発者による変更を管理するために使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.