it-swarm-eu.dev

Sollten Sie Webanwendungen versionieren?

Ich habe kürzlich mit einem Kollegen über die Versionierung von Webanwendungen diskutiert.

Ich glaube nicht, dass Sie es überhaupt brauchen, und wenn Sie nur eine Überprüfung der Gesundheit wünschen, um zu bestätigen, dass Ihre neueste Version live ist, denke ich, dass ein Datum (JJMMTT) wahrscheinlich gut genug ist.

Bin ich nicht auf der Basis? Verpasse ich den Punkt? Sollte ich Versionsnummern von Webanwendungen verwenden?

35
John MacIntyre

Wenn Sie dieselbe Webanwendung an mehrere Kunden weiterverkaufen, sollten Sie sie unbedingt versionieren.

Wenn es sich um eine Website handelt, die immer nur an einem Ort installiert wurde, ist der Bedarf weniger groß, aber es kann wahrscheinlich immer noch nicht schaden. Sie wären weniger anfällig für Zeitzonenprobleme und dergleichen. Die Diagnose eines Problems in einer Bibliotheksversion 1.0.2.25 ist viel besser als die Suche nach dem Bibliotheksbuild am 3. November 2010, 11:15 Uhr.

32
Adam Lear

Wenn Sie die Versionsnummer in den DLLs Ihrer Anwendung automatisieren können, kann dies nicht schaden. Es wird Ihnen helfen, die Versionen im Auge zu behalten.

Im Allgemeinen werden Web-Apps nur an einem Ort veröffentlicht, an dem Sie sie hosten. Daher ist dies nicht so wichtig wie beispielsweise eine Desktop-Anwendung. Dies kann bei Rollbacks, der Fehlerverfolgung (d. H. In welcher Version dies der Fall war) und gegebenenfalls bei der Verfolgung des Unterschieds zwischen Entwickler-, Staging- und Produktionsservern hilfreich sein.

Ich würde mich mit der Automatisierung befassen - so etwas können Sie einmal einrichten und verwenden, wenn Sie es brauchen.

12
Remus

Ihre Benutzer interessieren sich nicht für Versionsnummern, da sie ohnehin immer die neueste und beste Version haben, aber Sie sind es sich (und Ihrem Team) schuldig, genau zu wissen, welche Version live ausgeführt wird. Schließlich wird Ihre Entwicklungsquelle nicht mehr mit dem Live-Code synchronisiert, und dann müssen Sie definitiv wissen. Beschriften Sie also Ihre Releases in Ihrem SVN/Git-Baum und markieren Sie die Web-App mit diesem Tag.

9
Martin Wickman

Wenn Sie über Entwicklungs-/Testinstanzen verfügen, ist es für die Mitglieder des Projektteams sehr wichtig, zu sehen, welche Builds/Revisionen sie testen.

9
Jeremy

Zusätzlich zu dem, was die anderen gesagt haben, möchte ich hinzufügen, dass die Versionierung auch aus Marketingsicht wichtig ist. Eine neue Version ist etwas Neues, das an potenzielle oder bestehende Kunden vermarktet werden kann. Kunden wissen, dass etwas „neu“ ist, und sehen, dass sich die Dinge weiterentwickeln. Es bietet nette Gruppierungen neuer Funktionen. Und es sieht professioneller aus.

4
GrandmasterB

Sie sollten Ihre Webanwendung mit der Build-ID von Ihrem Build-Server versionieren und diese ID in allen Fehlerberichten enthalten.

Auf diese Weise können Sie in die Vergangenheit zurückkehren, falls Sie einen Fehler beheben müssen, der bei einer älteren Version gemeldet wurde, die derzeit nicht in der Produktion vorhanden ist.

4
user1249

Ich sage, dass Sie es für alles andere als eine triviale Webanwendung versionieren sollten. Hier wirken zwei leicht unterschiedliche Begriffe:

  1. anwendung als Ganzes
  2. einzelne Dateien

Unabhängig von der Situation glaube ich, dass Dateien individuelle Versions- (oder Revisions-) Nummern haben sollten. Im Idealfall wird dies automatisch von Ihrem Versionskontrollsystem erledigt. Wie von anderen angegeben, ist es einfacher, auf die Versionsnummer einer Datei zu verweisen als auf Datum und Uhrzeit.

Wenn Sie mehr als eine Live-Installation der Anwendung haben (oder haben könnten), sollte sie als Ganzes versioniert werden. Dies ist auch eine gute Vorgehensweise, wenn Sie separate Entwicklungs- und Testumgebungen haben (wie Sie es wahrscheinlich sollten). Jede Versionsnummer der Anwendung (oder Version) bezieht sich auf eine Sammlung einzelner Dateien mit bestimmten Versionsnummern. Der Umgang mit all dem ist zwar eine zusätzliche Belastung, es ist jedoch einfacher, eine bestimmte Version auszuchecken als einzelne Dateien mit bestimmten Versionsnummern.


Dies lässt mich an einen Begriff in der Linguistik denken. Es heißt, wenn man etwas nicht in einer Sprache ausdrücken kann, kann man nicht darüber nachdenken (in dieser Sprache). Ich denke an das deutsche Wort "Schadenfreude". Es ist viel einfacher, an diesen Begriff des "Gefühls der Freude aufgrund des Unglücks eines anderen" zu denken (und zu sprechen), wenn man sich auf dieses Wort bezieht, als auf seine Definition. Aus diesem Grund hat sich das Wort in der englischen Sprache eingeschlichen.

In ähnlicher Weise erleichtern Versionsnummern das Sprechen (und Nachdenken) Ihrer Anwendung und ihrer Dateien in bestimmten Zuständen. Wenn Sie ein Ein-Personen-Team sind und an einer Anwendung arbeiten, macht dies wahrscheinlich keinen großen Unterschied. Wenn die Dinge jedoch komplizierter werden, ist es für Sie besser, diese Etiketten zur Verfügung zu haben.

4
George Marian

Aus Ihrer Frage geht hervor, dass Sie an eine einfache Webanwendung denken

  • Nur über eine Web-GUI und nicht über eine Web (-service) API zugänglich. Wenn Benutzer über eine API auf die Anwendung zugreifen, benötigen Sie , um sie zu versionieren. Wenn Sie die API ändern, brechen Sie Clients, sodass Sie gleichzeitig eine andere Version der API verwalten müssen.

  • Nur eine Instanz läuft zur Zeit. Selbst wenn Sie nur den Web-Typ haben, müssen Sie bei mehr Installation wissen, welcher Kunde welche Version ausführt.

  • Mit akzeptabler Ausfallzeit für das Upgrade der Live-Version. Es gibt ein möglicherweise großes Problem, nämlich das Datenbank. Wichtige Änderungen bei neueren Versionen gehen mit Änderungen in der zugrunde liegenden Struktur der Daten einher. Wenn zu diesem Zeitpunkt nur eine Version ausgeführt wird, müssen Sie wahrscheinlich die alte Version deaktivieren, die Datenbank aktualisieren und die neue Version aktivieren. Dies führt zu Ausfallzeiten der Anwendung. Dies kann je nach Anzahl und Art der Benutzer akzeptabel sein.

1
OGrandeDiEnne
  • Interner Gebrauch nur mit begrenzter Installationsbasis?
  • Oder wahrscheinlich mehrere Versionen in freier Wildbahn?

Wir haben nur die ersteren, verwenden Sie also nur die Versionsnummer für die Überprüfung der Gesundheit nach der Veröffentlichung. Wir müssen nicht viele Versionen gleichzeitig verfolgen.

0
gbn

Wenn Ihre Webanwendung aus mehreren Modulen besteht, sowohl auf dem Client als auch auf dem Server, sollte jedes Modul versioniert werden. Und jede Kombination von Modulversionen auf Client und Server sollte eine eindeutige ID erhalten, eine ID, die in allen Protokollierungs- und Fehlermeldungen vorhanden sein sollte.

Mit dieser Konvention ist es immer möglich, den Status wiederherzustellen, in dem sich die Web-App zu einem bestimmten Zeitpunkt befand.

Meiner Meinung nach sollte es keinen Grund geben, eine aktualisierte Web-App neu zu laden, es sei denn, der Benutzer startet den Browser neu oder lädt die Seite manuell neu, da Webapps heutzutage auf beiden Seiten, Server und Client, in dynamischen Sprachen erstellt werden.

Nur die aktualisierten Teile oder Module in der Web-App sollten neu geladen werden, ohne den Gesamtstatus der Anwendung zu beeinträchtigen.

Warum fragst du dich vielleicht? Wenn Sie dies durchsetzen, wird die Web-App von ihrem Design her robuster, korrekter und wahrscheinlich einfacher zu warten sein. Wenn für die Web-App immer ein gleichzeitiges Server-/Client-Update erforderlich ist, ist sie wahrscheinlich nicht richtig erstellt.

0
Ernelli

Ja, du solltest es versionieren! In Ihrem Revisionskontrollsystem sollte sich ein Tag befinden (z. B. Subversion, Git, Mercurial usw.), das der Versionsnummer entspricht.

Mit dem Tag können Sie zurückgehen und einen Zweig erstellen. Beispiel: Die aktuelle Produktionsversion weist einen Fehler auf, den Sie jedoch nicht beheben können, da der Code auf Ihrem Computer einfach nicht bereit ist, die Tür auszurollen. Wenn Sie es jedoch in Ihrem RCS markiert haben, können Sie an diesem Tag verzweigen und den Fehler in der genauen Version des Codes beheben, der in der Produktion ausgeführt wird.

0
Brad Cupit

Persönlich denke ich, dass Sie trotzdem versionieren sollten, aber ein großer Vorteil der Versionierung von Webanwendungen, die spezifisch für Websites sind, besteht darin, dass Änderungen an statischen Inhalten viel einfacher zu verwalten sind.

Angenommen, Sie haben eine mysite.css-Datei mit einem weit zukünftigen Ablaufdatum (was Sie normalerweise tun möchten, damit sie auf jeder Seite im Browser zwischengespeichert wird). Wenn Sie dann einen Stil in dieser Datei ändern, wird ihn niemand sehen, der zuvor auf Ihrer Site war, es sei denn, er unternimmt etwas, um diese Datei aus seinem Cache zu löschen.

Wenn Sie Ihre Site versionieren, können Sie jedoch alle CSS-Referenzen in Ihrem Build in "mysite.css? V = 1234" ändern, sodass Sie das ferne zukünftige Ablaufdatum beibehalten und sich nicht um zukünftige Änderungen wie beim nächsten Build kümmern müssen werde mysite.css sein? v = 1235.

0
FinnNk

Ja du solltest. Aus Verteilungsgründen wird hier auf andere Antworten hingewiesen.

Aber ich verstehe, warum Sie die Frage stellen. Der Ansatz von Web-Apps ist kostengetrieben. Es ist das Gegenteil des herkömmlichen Shrinkwrap-Ansatzes, bei dem die Kosten physische Medien, Verteilung, Installation, Hardcopy der Dokumentation, Schulung und technischen Support umfassen. Alles, was ausgeschlossen werden kann, sollte ausgeschlossen werden.

0
user7071

Um ganz klar zu sein, gehe ich davon aus, dass Sie über eine vom Benutzer sichtbare Versionsnummer sprechen und die Versionskontrolle in der Entwicklung nicht aufgeben. (Wenn Sie der Meinung sind, dass Sie in der Entwicklung keine Versionskontrolle benötigen, liegen Sie falsch. Sie benötigen eine Versionskontrolle.).

Für ein einzeln gehostetes Projekt ist dies nicht unbedingt erforderlich, da Sie bei Fragen jederzeit auf den Host schauen und bestätigen können, was wirklich läuft. Es ist allerdings irgendwie nett, weil es ein- oder zweimal nützlich sein kann. Es liegt wirklich an Ihnen, ob Sie denken, dass es nützlich sein wird oder nicht.

Für ein Projekt mit mehreren Hosts ist dies nicht wirklich optional. Verschiedene Hosts werden irgendwann unterschiedliche Versionen haben und Sie müssen in der Lage sein, sie auf Benutzerseite voneinander zu unterscheiden.

0
Michael Kohne