Ich habe vor ein paar Monaten als Junior Programmer angefangen. Das System, an dem wir arbeiten, ist seit ca. 2 Jahren in Produktion. Ich war nicht in das Betteln des Systems und des Designs verwickelt.
Eine Sache, die mir aufgefallen ist, ist, dass die Hauptversion des Systems bereits 11.YZ ist. Aufgrund meiner Erfahrung mit anderen Systemen und Bibliotheken kann ich mich nicht erinnern, dass ein Produkt die Hauptversion so schnell anstößt. Es gibt Produkte, die seit Jahren in 1.XY verfügbar sind und weiterhin Funktionen und Bugfixes erhalten.
Unter der Annahme, dass die semantische Versionierung ordnungsgemäß verwendet wird, bedeutet dies, dass das System schlecht konzipiert ist, da es fast alle vier Monate wichtige Änderungen vornimmt?
versioning
semantic-versioning
user367035
quelle
quelle
Antworten:
Nicht unbedingt.
Sie haben in den Kommentaren erwähnt, dass dies eine interne API ist. Das Brechen einer API ist schlecht, weil Sie den Code aller brechen. Aber für eine interne API ist "jeder" nur "Sie", und Sie sind perfekt in der Lage, solche API-Änderungen mit sich selbst zu koordinieren, sodass der Schmerz, der normalerweise mit API-Änderungen verbunden ist, viel geringer ist.
Auch der Durchschnitt könnte massiv irreführend sein: Vielleicht hatten sie in den ersten Tagen der frühen Entwicklung 11 wichtige API-Änderungen und sind seitdem seit 4 Jahren stabil? Mit SemVer können Sie wichtige Änderungen vornehmen, ohne die Hauptzahl zu erhöhen, wenn die Hauptzahl 0 ist, aber dies zwingt Sie nicht dazu. Vielleicht haben sie SemVer von Tag 0 an eingesetzt, sogar während der Prototyping- / Explorationsphase?
quelle
Kurze Antwort
Nein
Lange Antwort
"Manchmal ist eine Zahl nur eine Zahl"
Vergessen Sie "semantische Versionierung", "Rationalität", "Logik" in der gegenwärtigen verrückten Welt
Warum verschlingt Chrome Versionsnummern so schnell?
quelle
Bei Verwendung der semantischen Versionierung muss noch entschieden werden, welche Änderungen als "Haupt" und welche als "Neben" betrachtet werden. Es gibt verschiedene Gründe, die Versionsnummer zu erhöhen oder nicht zu erhöhen.
Systeme mit versprochenen Abwärtskompatibilitäten könnten bei den meisten Updates die Hauptversionsnummer erreichen, nur weil es in einigen mehr oder weniger esoterischen Fällen zu einer Unterbrechung der Abwärtskompatibilität kommt. Dieselben Systeme könnten fast unbegrenzt an 1.xy festhalten, da viel Aufwand in die Abwärtskompatibilität gesteckt wird und versucht wird, niemals ein abhängiges System zu zerstören. Beide Ansätze zur Versionsnummerierung könnten als "konservativ" angesehen werden, aber beide könnten auch ein Zeichen für ein tiefgreifendes Problem sein.
In anderen Fällen haben Sie tatsächlich einen Veröffentlichungsplan (denken Sie an vierteljährliche Aktualisierungs-CDs, die an Kunden gesendet werden), in dem es sinnvoll ist, die Hauptversionsnummer so zu ändern, dass statt "Version 3.4 / 16.10." Nur "Version 11.0" angezeigt wird. Heutzutage wird immer mehr Software in kurzen Zeitabständen veröffentlicht, sodass Release-Pläne weniger ein Grund sind, sich an ein bestimmtes Versionsschema zu halten. Ich habe dies in großen Lagersystemen gesehen, die nur einen Ausfalltag pro Quartal (normalerweise einen Sonntag) für die interne IT ermöglichen. Dieser Tag ist der Bereitstellungstag und wird jedes Mal mit einer neuen Hauptversion gekennzeichnet.
Einige Programme weisen externe Abhängigkeiten auf , die von äußerster Wichtigkeit sind, da der Benutzer beide gleichzeitig aktualisieren muss. Wenn Sie ein Word-Addon haben, das nur mit Word 2010 und einem anderen für Word 2013 funktioniert, möchten Sie möglicherweise Ihre Hauptversionsnummern mit der von MS-Word synchronisieren. In diesem Fall sind die Hauptnummern so wichtig, da einige Ihrer Benutzer hinter Ihrem normalen Update-Zeitplan zurückbleiben, da sie nicht auf die aktuellste Version von Word aktualisiert haben (oder auf was auch immer Sie sich sonst verlassen: SAP, Dynamics, etc).
Manchmal bestimmen andere externe Faktoren die Versionsnummern. Wenn Sie über eine Steuersoftware verfügen, werden möglicherweise jährliche Aktualisierungen vorgenommen, die dem Steuergesetz entsprechen (das in der Regel am 1. Januar in Kraft tritt). Solche Systeme werden Hauptversionen haben, die sich genau einmal im Jahr ändern - nicht weil dies der Aktualisierungsplan ist, sondern weil dies für den Kunden von anderer Bedeutung ist: Wenn Sie Ihre Steuern für 2016 erheben, sollten Sie ein Programm haben, das auf das Steuergesetz für 2016 aktualisiert wird.
Letztendlich sind die Versionsnummern von so vielen Faktoren abhängig - oftmals spezifisch für eine Domain -, dass die Nummer allein nichts über den Zustand Ihrer Codebasis aussagt. Es ist ein viel besserer Ansatz, zu sehen, wann, warum und wie Bereitstellungen stattfinden - und wie reibungslos dies geschieht. Wenn Sie ein größeres Update für 10.000 Kunden einführen und ein paar Anrufe tätigen können, ist das wahrscheinlich in Ordnung. Wenn Sie 10 Kunden einen kleinen Patch zur Verfügung stellen und aus diesem Grund Überstunden leisten müssen, stimmt wahrscheinlich etwas nicht.
quelle
Die Übereinstimmung über die Bedeutung von Versionsnummern ist in der Tat major.minor.revision.buildnumber
Wenn der Major schnell ansteigt, kann es sein, dass der Entwickler all diese neuen Ideen hat und wirklich hart arbeitet.
In der Geschäftswelt kann es jedoch andere Gründe geben, die Hauptversionsnummer zu erhöhen. Mögen
Der Umsatz ist rückläufig, Kunden / Benutzer warten vor dem Upgrade auf die nächste große Hauptversion.
Der Vertrag besagt, dass Kunden zu geringfügigen Aktualisierungen berechtigt sind. Der Verkäufer kann diese nicht in Rechnung stellen, daher wird eine geringfügige Verbesserung als wesentliches Produkt-Upgrade verkauft.
Konkurrent X ist schon etwas länger im Spiel, daher ist die Hauptversionsnummer zufällig höher als Ihre. Dies macht es so, als ob Sie zurückbleiben, Sie müssen "aufholen".
quelle