Ich möchte eine große Liste von Elementen erstellen, die das einfache Einfügen neuer Elemente und das einfache Ändern der Position von Elementen in dieser Liste ermöglichen. Wenn ich die Position eines Artikels aktualisiere, möchte ich so wenig Felder wie möglich bezüglich der Reihenfolge der Artikel ändern.
Nach einigen Recherchen fand ich heraus, dass Jiras Lexorank-Algorithmus alle diese Anforderungen erfüllt. Jede Geschichte in Jira hat ein 'Rangfeld', das eine Zeichenfolge enthält, die aus 3 Teilen besteht: <bucket>|<rank>:<sub-rank>
. (Ich weiß nicht, ob diese Teile tatsächliche Namen haben, das ist, was ich sie zur Erleichterung der Bezugnahme nennen werde)
Beispiele für gültige Rangfelder:
0|vmis7l:hl4
0|i000w8:
0|003fhy:zzzzzzzzzzzw68bj
Wenn Sie eine Karte über 0|vmis7l:hl4
ziehen, erhält die neue Karte den Rang 0|vmis7l:hl2
, was bedeutet, dass nur das Rangfeld für diese neue Karte aktualisiert werden muss, während die gesamte Liste immer nach diesem Rang sortiert werden kann. Feld. Das ist ziemlich clever, und ich kann mir nicht vorstellen, dass Lexorank der einzige Algorithmus ist, der das verwendet.
Meine Frage bezieht sich auf die Erstellung neuer Karten in Jira. Jede neue Karte beginnt mit einem leeren Unterrang, und der Rang wird immer so gewählt, dass die neue Karte am Ende der Liste steht. Ich habe eine Menge neuer Geschichten erstellt, nur um zu sehen, wie sich der Rang ändern würde, und es scheint, dass der Rang immer um 8 erhöht wird (in Basis 36).
Ich kann mir nur vorstellen, dass nach einiger Zeit (270 Millionen Karten) keine Ränge mehr generiert werden müssen und das System das Rangfeld aller Karten neu berechnen muss, um Platz für zusätzliche Ränge zu schaffen.
Tags und Links algorithm jira sorting jira-agile