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?
11
Antworten:
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.
quelle
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.
quelle
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.
quelle
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ß?
quelle
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.
quelle
Sie könnten entweder:
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:
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.html
Seite zu erstellen, laden Sie sie mit dem Namen hochindex2.html
, besuchen Sie siehttp://yoursite.com/index2.html
und überprüfen Sie, ob sie in Ordnung ist. Wenn Sie zufrieden sind, benennen Sie es in umindex.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üssenimage2.png
,index2.html
dessen 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.
quelle
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:
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 .
quelle