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.