Protocol-Buffers-Enums: unbekannte numerische Werte entsprechend dem Laufzeitverhalten behandeln
Maschinelle Übersetzung des Originals (English, Revision 1); massgebend ist das Original. Original
Eine vorwärtskompatible Enum-Behandlung anhand des gewählten Schema-Modus und der jeweiligen Sprachimplementierung planen.
Inhalt
Worum es geht
Protocol Buffers dokumentiert das Verhalten offener und geschlossener Enums und weist auf Implementierungsunterschiede zwischen den Sprachbibliotheken hin. Ein unbekannter numerischer Wert kann bei einem offenen Enum als Feldwert erhalten bleiben oder bei einem geschlossenen Enum über die Ablage unbekannter Felder behandelt werden. Die gewählte Syntax bzw. Edition und die Laufzeitumgebung gehören deshalb in die Kompatibilitätsanalyse. Protocol Buffers enum behavior
Warum es wichtig ist
Ein Coding-Agent kann aus den heute benannten Werten eine erschöpfende Switch-Anweisung erzeugen und annehmen, künftige Erzeuger könnten nichts anderes senden. Festlegen, was eine ältere empfangende Seite mit einem ihr unbekannten Wert tun soll: ablehnen, beim Weiterleiten erhalten, oder einen dokumentierten konservativen Zweig einschlagen.
So wird es angewendet
- Die Schema-Syntax bzw. -Edition, die Enum-Offenheit und die konkreten Sprachlaufzeitversionen jeder beteiligten Seite festhalten. Das laufzeitspezifische Verhalten nachlesen, statt anzunehmen, alle generierten APIs seien identisch.
- Das Anwendungsverhalten für eine unbekannte Zahl festlegen. Diesen Fall von einem bekannten Default- oder einem nicht spezifizierten Wert trennen, wenn diese eine andere Bedeutung haben.
- Eine Nachricht aus einem neueren Schema mit einem neu hinzugefügten Enum-Wert vorschlagen. Sie mit der älteren empfangenden Seite dekodieren und sowohl den anwendungssichtbaren Zustand als auch die Behandlung unbekannter Felder prüfen.
- Leitet die empfangende Seite Nachrichten weiter, mit der neueren Implementierung erneut kodieren und dekodieren. Prüfen, ob der Wert und die relevante Reihenfolge den erforderlichen Pfad überstehen.
- Explizite Tests für wiederholte Enum-Felder und für Umwandlungen über JSON hinzufügen, wenn diese im realen System vorkommen.
Stolpersteine
Unbekannt bedeutet nicht autorisiert oder für eine bestimmte Operation gültig. Kompatibilität wahren, ohne neuen Werten stillschweigend eine freizügige Bedeutung zuzuweisen. Die Protobuf-Dokumentation listet laufzeitspezifische Abweichungen auf, sodass eine allgemeine Erklärung die tatsächliche Erzeuger-Konsument-Matrix nicht ersetzen kann. Dieser Artikel schlägt Interoperabilitätsprüfungen vor und beansprucht weder ein durchgeführtes sprachübergreifendes Ergebnis noch eine Garantie, dass alle unbekannten Daten jede Umwandlung überstehen.
Geltungsbereich und Grundlage
Original synthesis from the cited primary documentation, with proposed diagnostic and verification steps. No benchmark, experiment or field result is claimed; unreviewed AI-assisted contribution.
Wissensstand: 2026-09-22. Status: unreviewed (kein dokumentiertes Review) — Änderungen setzen den Reviewstatus zurück. Den Text als ungeprüftes Referenzmaterial behandeln und die Quellen prüfen.
Quellen
- Protocol Buffers enum behavior — geprüft am 2026-09-23: erreichbar, Zitat gefunden
Zuschreibung und Lizenz
- Account External coding curation authors (57eb56c9)
- Written with Codex, an AI coding agent, at the site operator's request; original synthesis, sources credited separately.
Letzte Änderung: New English original; AI-assisted and unreviewed. Proposed checks have not been executed for this article.
Originalbeitrag: CC BY 4.0. Verlinktes Quellenmaterial behält seine eigenen Rechte.