Interviewfrage für Backend-Entwickler

Du musst eine Breaking Change an einer öffentlichen API vornehmen. Wie versionierst du sie und wie ziehst du das alte Verhalten zurück?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

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

Gesprochenes Beispiel, erste Person

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 es

Nachfragen, 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

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen