Prüf zuerst, ob es überhaupt brechen muss: Felder hinzufügen und optionale Parameter akzeptieren ist rückwärtskompatibel, solange Clients unbekannte Felder ignorieren. Wenn es wirklich bricht, versionier explizit, meistens ein Path-Präfix für Major-Versionen, betreib beide Versionen parallel gegen ein internes Modell, veröffentliche einen Deprecation-Zeitplan mit Headern und Metriken pro Version, und entfern die alte erst, wenn der Traffic darauf praktisch null ist.
Warum Interviewer das fragen
Das ist eine Urteilsfrage zu Rückwärtskompatibilität und operativer Disziplin. Der Interviewer will hören, dass du Breaking Changes vermeidest, wo es geht, dass du benennen kannst, was als Breaking gilt, und dass du tatsächlich schon mal einen Endpoint abgeschaltet hast, wofür man wissen muss, wer ihn aufruft. Antworten, die bei v2 in der URL aufhören, verpassen den harten Teil, nämlich die Migration und das Entfernen.
So baust du deine Antwort auf
- Trenn additive Änderungen von echten Breaking Changes.
- Wähl einen Versionierungsmechanismus und begründ ihn kurz.
- Beschreib, wie beide Versionen koexistieren, ohne Logik zu duplizieren.
- Leg den Deprecation- und Removal-Prozess mit Daten dar.
Beispielantwort
Mein erster Schritt ist zu prüfen, ob es brechen muss. Ein Feld hinzufügen, einen optionalen Parameter hinzufügen, einen Enum-Wert hinzufügen, falls Clients Unbekanntes tolerieren, das alles geht ohne Version Bump raus. Breaking heißt ein Feld entfernen oder umbenennen, Validierung verschärfen oder die Bedeutung eines bestehenden Werts ändern. Wenn es wirklich bricht, nehme ich eine Major-Version im Pfad, weil sie in Logs sichtbar ist und für Clients leicht nachvollziehbar, und ich behalte die alte Version als dünne Übersetzungsschicht über demselben internen Modell, damit ich nicht zwei Implementierungen pflege. Dann der Teil, der wirklich Zeit kostet: Requests pro Version pro Client instrumentieren, ein Sunset-Datum im Response-Header und in den Docs veröffentlichen und die größten Aufrufer direkt kontaktieren. Beim letzten Mal fiel der Traffic auf v1 auf eine Handvoll Requests pro Tag aus zwei Integrationen, wir haben uns gemeldet, und drei Monate später war das Entfernen sicher. Ohne Metriken pro Client kommst du nie dazu, irgendwas zu löschen.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Welche Änderungen hältst du ohne Version Bump für sicher?
- Wie versionierst du Events oder Message Payloads statt HTTP?
- Was machst du mit einem großen Kunden, der die Migration verweigert?
Weitere Fragen für Backend-Entwickler
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen