Wie können mehrere Personen an einer Website arbeiten?


11

Ich habe kürzlich The Social Network gesehen, und das mag eine dumme Frage sein, aber wie ist es möglich, dass mehrere Personen an einer Website arbeiten? Ich meine, wenn sie auf derselben Seite arbeiten, wie ist das möglich? Ist es auch möglich, Dateien auf einen Online-Host hochzuladen, ohne sie live zu schalten?


12
Quellcodeverwaltung. Jeder Entwickler arbeitet an den Dateien lokal, dann die Datei zu prüfen hat , die aus dem Ersetzen Inhalt in der Datei andere Entwickler untersagt , bis sie aktiviert ist. En.wikipedia.org/wiki/List_of_revision_control_software

3
Verwenden Sie niemals die Sperrfunktion der Versionskontrolle für Dateien, es sei denn, diese sind binär.
Colin Goudie

@gommo: Was meinst du mit 'binär'? Können Sie das erweitern?
Cam

1
@Cam: in diesem Zusammenhang "binär" = "alles, was keine Textdatei ist"
Konrad Rudolph

Antworten:


27

Wenn mehrere Personen Änderungen an derselben Datei vornehmen müssen, verwenden sie normalerweise ein Versionskontrollsystem, um zu verfolgen, wer welche Änderungen vorgenommen hat. Außerdem können sie die Änderungen, die verschiedene Personen vornehmen, zusammenführen und synchronisieren.


1
Einfach und doch elegant.
Ryan Hayes

14

Sehr wenige Websites bestehen nur aus einer "Seite". In Fällen, in denen mehrere Personen auf derselben Seite arbeiten würden, sind in den meisten Revisionskontrollsystemen Mechanismen integriert, mit denen die Änderungen wieder zu einer einheitlichen Datei zusammengeführt werden können.


Nur um wählerisch zu sein :) es sei denn, es handelt sich um ein CMS-basiertes System, bei dem alle Seiten virtuell sind und nur in einer Datenbank vorhanden sind.
Darknight

6

Mehrere Personen, die in denselben Dateien arbeiten: Quellcodeverwaltung

Ohne sie zum Leben zu erwecken: Entwicklungsserver und Datenbanken, die nicht derselbe Zweig wie die eigentliche Website sind.


3

Sie brauchen eine Art Manager.

Normalerweise werden Teams in Segmente unterteilt, die sich niemals gegenseitig stören sollten (berühmte letzte Wörter). Wenn die foo-API beispielsweise von Helfern der Personen abhängt, die in C codieren, sollte der Bruch auftreten (niemals). Wenn dies jedoch der Fall ist, geschieht dies, weil die Helfer-App nicht versteht, was Sie an sie übergeben.

Das ist ein klassischer Fall, bei dem die rechte Hand nicht weiß, was die linke Hand tut, was den Fehler deutlich macht, der wahrscheinlich meiner ist.

Wenn Sie Code pushen, ohne zuerst Zusammenführungen zu ziehen und aufzulösen (während Sie das brechen, was der andere Entwickler getan hat, indem Sie einfach alles entfernen, was Sie nicht geschrieben haben), bevor Sie mit anderen kommunizieren, die dasselbe bearbeiten, werde ich Sie mit Hochspannung dosieren. Danach werde ich Sie zum Abendessen mitnehmen (um die 1,21 Gigawatt wieder gut zu machen) und sicherstellen, dass Sie eine Art verrücktes, ekelhaftes und ziemlich exotisches Essen zu sich nehmen. Denken Sie ... klingonisch .

Sie werden mir dann dafür danken und es nie wieder tun.

Natürlich könnten Sie hier eine Art normales "Reden" ersetzen , aber was macht das für einen Spaß?


1

Sie werden wahrscheinlich feststellen, dass Entwickler an verschiedenen Seiten arbeiten. Eine Vorlage oder ein Site-Master wird normalerweise so erstellt, dass jede Seite das gleiche Erscheinungsbild hat. Wenn das Unternehmen beispielsweise die Quellcodeverwaltung wie Team Foundation Server verwendet, checkt jeder Entwickler seinen Quellcode ein, sodass die anderen Entwickler ihre neuesten Änderungen abrufen können.


2
TFS war das Beste, was Sie für ein Beispiel eines Versionsverwaltungssystems finden konnten? Komm jetzt.
Matt Phillips

1

Sie könnten entweder:

  • Programmieren Sie in einem Editor über eine SSH-Sitzung (z. B. vi, vim, nano, emacs).
  • Bearbeiten Sie über FTP mit ihrer IDE (z. B. Emacs, Notepad ++).
  • Verwenden eines Versionskontrollsystems.

Für die letzte Version wird jetzt die verteilte Versionskontrolle wie Mercurial , Git und Bazar anstelle der zentralisierten Versionskontrolle wie CVS und Subversion verwendet. Überprüfen Sie für mercurial bitbucket.org und das Hosting von Google- Codeprojekten , für git github , dh Websites , auf denen der Code gehostet wird , damit Sie ihn gemeinsam nutzen können, ohne dass Sie einen Server einrichten müssen.

Ebenfalls:


1

Entwickeln von Seiten mit Komponenten VS Seiten als Ganzes

Ich habe an vielen großen Websites gearbeitet, und die Art und Weise, wie mehrere Personen auf derselben Seite arbeiten, besteht darin, dass die meisten Websites Portale sind . Im Allgemeinen enthalten viele Websites wie Facebook viele Steuerelemente wie Fotos, Anzeigen, kleine Klappentextbereiche usw., an denen mehrere Personen arbeiten. Außerdem werden Kopf- und Fußzeilen im Allgemeinen in ihre eigene wiederverwendbare Include-Datei unterteilt. Dadurch wird die Site in Komponenten aufgeteilt, die nicht nur einzeln bearbeitet, sondern auch über mehrere Sites und Bereiche hinweg wiederverwendet werden können.


Wissen Sie, was ein Webportal ist? (Hinweis, es ist kein Mashup. Denken Sie an alte Zeiten Yahoo)
Javier

Ja, ich habe versucht, ein Beispiel zu verwenden, das zeigt, dass eine Technik darin besteht, Seiten in Komponenten zu zerlegen. Ein gutes Beispiel hierfür ist ein Portal, mit der Ausnahme, dass Benutzer Portal-Widgets ein- und ausblenden können, während das Erstellen von Seiten mit Komponenten nur von der Entwicklerseite aus erfolgen kann. Portale sind ein gutes visuelles Beispiel.
Ryan Hayes

0

Sie könnten eine Art Live-Synchronisierungssystem verwenden, wie es OneNote verwendet. Außerdem können Sie Dateien auf einen Host hochladen, aber nicht Ihre Hauptdomain mit diesen verknüpfen.


0

Vergessen Sie nicht, dass es auch Content-Management-Systeme geben kann, mit denen einige Websites Inhalte bereitstellen, sodass Sie vielleicht denken, dass etwas eine Webseite ist, aber es ist wirklich diese Mischung aus Dingen.

Viele Content-Management-Systeme verfügen über eine Vorschaufunktion, mit der Autoren Inhalte anzeigen können, bevor sie öffentlich zugänglich gemacht werden.


0

Alle diese genannten Tools sind hilfreich, aber für mich klingt es eher so, als würde das OP eher fragen, wie Menschen davon abhalten, anderen in den Weg zu kommen.

Zusätzlich zur Verwendung von Tools zur Lösung dieser Konflikte gibt es normalerweise eine Aufteilung in Stapel oder Ebenen, um Konflikte überhaupt zu vermeiden.

Beim Stack-Ansatz arbeitet jede Person an einer nicht verwandten Funktion (eine Person führt möglicherweise eine Kontoanmeldung durch und eine Person führt möglicherweise die Übermittlung von Inhalten durch). Es wird einen Konflikt geben, bei dem sich die beiden möglicherweise kreuzen (Benutzerdatensätze in diesem Beispiel wahrscheinlich), der im Rahmen der Zusammenführung mit dem nächsten Build behandelt wird.

Mit dem Tier-Ansatz baut jemand alle innersten Bits auf. Wenn ein Teil fertig ist, schreibt eine andere Person die Bits, die darauf sitzen, und so weiter. Die hier erzeugten Konflikte treten normalerweise auf, wenn etwas für eine spätere Änderung auf einer niedrigeren Ebene zurückgegeben werden muss, die sich auf die nächste oben genannte Ebene auswirken könnte, und werden vor dem nächsten Build auf ähnliche Weise behandelt.

Der Teil über Dateien, die beworben, aber nicht live sind, enthält eine Vielzahl von Antworten / Implementierungen, aber einen separaten Server für die Vorschau, einen bestimmten Vorschaumodus oder eine Benutzerklasse oder Berechtigung, die die neueste Version abruft, während reguläre Benutzer die stabile Version erhalten die, die ich am häufigsten sehe.


0

Um den zweiten Teil zuerst zu beantworten, können Sie Dateien hochladen, ohne sie live zu schalten, indem Sie ihnen einen Namen geben, mit dem sie nicht verknüpft sind. Um beispielsweise eine neue Version einer index.htmlSeite zu erstellen, laden Sie sie mit dem Namen hoch index2.html, besuchen Sie sie http://yoursite.com/index2.htmlund überprüfen Sie, ob sie in Ordnung ist. Wenn Sie zufrieden sind, benennen Sie es in um index.html. Dies ist wirklich nur für sehr kleine Websites und es wird ein bisschen chaotisch, wenn Sie etwas außerhalb der Seite ändern möchten, wie Bilder, CSS- oder JavaScript-Dateien, weil Sie haben müssen image2.png, index2.htmldessen einziger Unterschied darin besteht, dass es auf die zeigt neues Bild.

Ein professioneller Programmierer hätte immer ein Testsystem, an dem er arbeiten könnte, und würde es dann auf seinen "Online-Host" hochladen, sobald er mit den Änderungen zufrieden ist. Sie können auf Ihrem Computer einen Webserver einrichten, der nur Seiten in Ihrem lokalen Netzwerk bereitstellt. Natürlich können Sie auch einen separaten Computer oder (wie ich) eine virtuelle Maschine verwenden, die auf Ihrem Hauptcomputer ausgeführt wird.

Wenn mehrere Entwickler zusammenarbeiten, muss jeder sein eigenes Testsystem bearbeiten und dann seine Änderungen auf ein Versionskontrollsystem hochladen, das alle Änderungen der verschiedenen Personen verfolgt. Sehen Sie sich das Git-Gleichnis an, wie das funktioniert.

Mit dem Versionskontrollsystem können Sie leicht erkennen, wer was und warum geändert hat. Dies kann von dem Verantwortlichen überprüft und dann mit dem Master zusammengeführt und an die Test- / QS-Abteilung übergeben werden. Sobald sie die neuen Funktionen vollständig getestet haben, genehmigen sie sie zum Hochladen auf die Live-Site.


0

Als erstes muss festgestellt werden, dass viele Websites keine Sammlung statischer Seiten sind, an denen eine oder mehrere Personen arbeiten.

Die Seiten, die Sie als Besucher sehen, sind auf der Website nicht vorhanden, um Änderungen vorzunehmen, da sie auf solchen Websites automatisch von einem Content-Management-System zusammengestellt werden - Software, die auf dem Hosting-Server ausgeführt wird und Inhalte der Website verwendet Besitzer haben produziert. Das CMS stellt die Seite aus dem Inhalt zusammen, der mithilfe von Vorlagendateien (CSS- und CMS-eigene Konfigurationsdateien) erstellt wurde, und die resultierende Seite wird Ihrem Browser bereitgestellt.

Die Websitebesitzer nehmen Änderungen am Inhalt und den Layoutvorlagen vor und nicht an statischen Seiten. Daraus ergibt sich, dass Ihre Antwort von der Art der Änderung und der Rolle der Person abhängt, die sie ausführt:

  1. ein öffentlicher Benutzer einer Website , der ein Blog oder einen Kommentar veröffentlicht
  2. wenn Sie den Inhalt der Website ändern (Rolle des Inhaltsproduzenten, z. B. Journalist, der für den Websitebesitzer arbeitet) oder
  3. Hinzufügen und Ändern der Funktionalität der Site (Site-Entwickler, der für den Site-Eigentümer arbeitet).

Drupal ist ein kostenloses und leistungsstarkes Content-Management-System, das eine Mehrbenutzerverwaltung für die Verwaltung von Inhaltsaktualisierungen bietet, die sich wiederum auf das auswirkt, was Besucher auf Seiten sehen. Drupal bietet auch Mittel, um das Verhalten der Seiten zu ändern, z. B. wie sie angeordnet sind oder ob Kommentare zu einem Artikel veröffentlicht werden können, wobei die 1. und 2. Art der Änderung behandelt werden. Wenn Sie die Änderungen in Drupal vornehmen, werden diese in einer SQL-Datenbank gespeichert. Drupal bietet eine gewisse Versions- / Revisionskontrolle für Inhalte.

Ein vollständigeres Versionskontrollsystem wird für umfassendere Änderungen des Site-Verhaltens benötigt, die dritte Art der Änderung, z. B. das Einführen weiterer Funktionen, das Empfangen von Updates von Drupal oder das Beheben von Fehlern im eigenen hinzugefügten Code. Dies bedeutet, dass der Code geändert wird und wie andere hier gepostet haben. Versionskontrollsysteme wie GIT, Subversion oder Mercurial - alle kostenlos - werden verwendet, um die von mehreren Entwicklern der Site vorgenommenen Änderungen zu verwalten .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.