Dies ist etwas, das Sie aus verschiedenen Blickwinkeln betrachten müssen, um die Bedürfnisse der Benutzer sowie die Bedürfnisse der Software und Entwickler zu berücksichtigen.
Im Allgemeinen ist es Ihren Kunden egal, wie hoch die Versionsnummer der Software sein wird, solange sie wissen, dass sie etwas Neueres ausführen (dh Produkt 2012 ist neuer als Produkt 2010) und dass sie es wissen ist auf dem neuesten Stand, wenn Patches bereitgestellt werden können (z. B. Produkt 2012, Update 10). Daher bevorzuge ich aus Sicht des Kundenbrandings entweder benannte Versionen (z. B. Windows XP, Windows Vista), gefolgt von einer strengen Abfolge von Patches, die möglicherweise von Benutzern installiert werden.
Das heißt jedoch, dass das Schreiben von Software, die Dinge überprüft, die für den Benutzer einfach sind, dazu neigt, den Code unter der Haube viel schwerer zu schreiben. Daher bevorzuge ich das einfache Major.Minor
Versionsschema, wenn auch nur, weil Sie einen einfachen Zahlenvergleich durchführen können, um zu überprüfen, ob etwas auf dem neuesten Stand ist, wie im Folgenden dargestellt:
// Check to see if we can handle the file version
if (this.Version < fileVersion) {
throw new UnsupportedFileException("The file version is " + fileVersion.toString() + " which is not supported");
}
// Do stuff ...
Um dies in einen gewissen Kontext zu bringen, ist es mir im Allgemeinen egal, wie groß die Nebenzahl wird (dh 1.1024), wodurch das obige System weiterhin erfolgreich ausgeführt werden kann. Im Allgemeinen sind die Revisionsnummern nur für die interne Entwicklung von Interesse, und ich habe nicht einmal wirklich gesehen, dass sie sich auf Dinge auswirken, die weit über das bloße Vergeben einer zusätzlichen Nummer hinausgehen, um den Überblick zu behalten.
Die beiden oben genannten Schemata gelten jedoch nicht nur für Umgebungen, in denen eine kontinuierliche Bereitstellung verwendet wird (z. B. Stack Exchange). Daher bevorzuge ich in der Regel ein Datum, gefolgt von einer Revisionsnummer, wie sie auf dem Stack Exchange verwendet wird Websites. Der Grund dafür ist, dass sich die Versionen in der Umgebung für die kontinuierliche Bereitstellung zu häufig ändern und möglicherweise mehrere Versionen des Codes am selben Tag angezeigt werden, was die Versionsnummer und das aktuelle Datum rechtfertigt raus noch mehr. Theoretisch könnte man für alles nur die Revisionsnummer verwenden, aber mit dem aktuellen Datum können Sie wichtige Meilensteine intern nachverfolgen, die die Diskussion erleichtern könnten.