> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/de/2020/w28-definitions-and-interface-dependencies.md).

# W28-Definitionen und Schnittstellenabhängigkeiten

### Die Bedeutung von Definitionen <a href="#id-ding-yi-de-zhong-yao-xing" id="id-ding-yi-de-zhong-yao-xing"></a>

Viele alltägliche Verwirrungen und unklare Zuständigkeiten gehen auf Probleme bei der Definition von Begriffen zurück. Entweder ist die Definition unklar, oder sie ist klar, aber nicht gemeinsam anerkannt. Ein Beispiel: Wenn QA in ones einen Bug zuweist, ist in komplizierteren Fällen manchmal unklar, wer ihn bekommen soll. Der Grund ist eine unklare oder nicht gemeinsam geteilte Definition der zugewiesenen Person. Ohne klare Definition verstehen wir darunter meist mehrere Rollen zugleich: die Person, die das Problem verursacht hat, die es bearbeitet, und die dafür verantwortlich ist. Sobald das Problem etwas komplexer wird, entsteht aus diesem einen Begriff eine Mehrdeutigkeit. Eine einfache, klare Definition löst das oft sofort. Die einfachste Regel wäre etwa: Der Bug geht an die Person, die ihn beheben soll. Die zugewiesene Person ist die bearbeitende Person. Das hat nichts mit der Aufteilung der Verantwortung zu tun. Ursache und Verantwortliche zu ermitteln, ist Aufgabe der COE-Retrospektive.

### **Wie Schnittstellenabhängigkeiten die Abwärtskompatibilität beeinflussen** <a href="#id-jie-kou-jian-yi-lai-dui-xiang-xia-jian-rong-de-ying-xiang" id="id-jie-kou-jian-yi-lai-dui-xiang-xia-jian-rong-de-ying-xiang"></a>

Bei einer Architektur mit getrenntem Frontend und Backend muss jede Schnittstellenänderung abwärtskompatibel sein. Üblicherweise werden Felder in Backend-Schnittstellen nur ergänzt, nicht verändert. Fehlt die Abwärtskompatibilität, verhindern weder eine andere Reihenfolge der Frontend- und Backend-Releases noch ein Umschalter zwischen alter und neuer Schnittstelle die Fehlerspitzen am Übergang des Releases. Besonders zu beachten sind Abhängigkeiten zwischen Schnittstellen. Vielleicht verändern wir die alte Schnittstelle nicht, sondern erstellen eine neue Version. Hängt diese aber von einer vorherigen Schnittstelle ab, die etwa die Anfrageadresse der nächsten Schnittstelle liefert, müssen wir auch bei einer bloßen Ergänzung sorgfältig prüfen, ob die vorgelagerte Schnittstelle die neue nachgelagerte Version kompatibel unterstützt.
