Skip to main content

Bakoverinkompatibel endring

aktiv

Definisjon

En endring i ett system som kan føre til feil i avhengige system.

Eksempel

Sett at man har følgende GraphQL API og ønsker å endre dette til å støtte flere språk, for eksempel som følge av press fra språkrådet:

type Query {
"""The Quote Of The Day. See [RFC 865](https://datatracker.ietf.org/doc/html/rfc865) for historical context."""
qotd: String
}

En bakoverinkompatibel endring kan være noe ala følgende:

type Query {
"""The Quote Of The Day. See [RFC 865](https://datatracker.ietf.org/doc/html/rfc865) for historical context."""
qotd: Quote
}

type Quote {
nb: String
nn: String
en: String
}

En kompatibel endring vil derimot bevare eksisterende funksjonalitet samtidig som den innfører ny funksjonalitet, slik at eksisterende bruk vil fortsette å fungere.

type Query {
"""The Quote Of The Day in English. See [RFC 865](https://datatracker.ietf.org/doc/html/rfc865) for historical context."""
qotd: String @deprecated(reason: "This field will be removed after <some future date>. Please switch to the `quotd2`-field since the future is multi-lingual.")
"""The Quote Of The Day in different languages."""
qotd2: Quote
}

type Quote {
nb: String
nn: String
en: String
}

Dersom man ønsker å fase ut gammel funksjonalitet så kan man i tillegg varsle om dette slik at eksisterende brukere får anledning til å justere:

Se også

Andre tilsvarende begrep er ikke-kompatibel endring og ødeleggende endring. På engelsk brukes gjerne begrepet breaking change.