crea.site
2 Min. Lesezeit product

Eine Website per Chat bearbeiten, ohne sie kaputt zu machen

Eine Änderung in einfachen Worten ist leicht vorgeführt, aber schwer abzusichern. So wird eine Bitte zum Patch auf einer validierten Definition, im Entwurf.

"Mach den Header dunkler und setz die Bewertungen über die Preise."

Das vorzuführen ist einfach. Es sicher zu machen ist die eigentliche Arbeit, denn der Fehlerfall ist nicht eine falsche Farbe - sondern ein Modell, das eine ganze Seite neu schreibt, obwohl es sie nur anpassen sollte, und dabei still die Öffnungszeiten verliert.

Die Website ist Daten, kein Code

Eine Website ist hier eine validierte Definition: Seiten, Abschnitte, Inhalte, ein Design. Der Renderer macht daraus HTML, und sonst nichts. Eine Änderung fasst also nie Markup an - sie ändert die Definition, und die Definition wird geprüft, bevor sie gespeichert wird.

Geprüft heißt mehr als "ließ sich parsen". Feldübergreifende Regeln fangen ab, was ein Schema nicht ausdrücken kann: zwei Hero-Bereiche auf einer Seite, ein Beitrag ohne Datum, eine Seite, die dort verschachtelt ist, wo der Router sie nie ausliefern würde, eine Tabelle, die an eine Sammlung gebunden ist, die die Website gar nicht deklariert. Das wird sofort abgelehnt, statt veröffentlicht und später entdeckt zu werden.

Eine Änderung ist ein Patch

Das Modell soll keine neue Website zurückgeben. Es soll den kleinstmöglichen Patch liefern, der die Änderung bewirkt, bezogen auf die Website, wie sie gerade ist.

Diese eine Entscheidung nimmt den größten Teil der Gefahr weg:

  • Inhalte, die die Änderung nicht erwähnt, können sich nicht ändern, weil sie nicht in der Antwort stehen.
  • Eine kleine Änderung kostet eine kleine Antwort, deshalb sind Änderungen schnell und günstig.
  • Der Patch wird gespeichert, sodass der Verlauf zeigt, was sich geändert hat, nicht nur, was die Website geworden ist.

Nichts wird veröffentlicht, bevor du es sagst

Jede Änderung landet in einem Entwurf. Der Editor zeigt den Entwurf; die öffentliche Website liefert weiter die zuletzt veröffentlichte Version aus, bis du veröffentlichst. Jede Version wird aufbewahrt, also ist der Weg zurück ein Klick statt einer Entschuldigung.

Eine weitere Prüfung ist erwähnenswert, weil sie einen echten Fehler gefunden hat. Hat sich der Entwurf geändert, während eine lang laufende Änderung noch lief - etwa weil du in einem anderen Tab etwas angepasst hast -, wird das Ergebnis abgelehnt, statt zusammengeführt:

"Another change was saved to this website while this edit was running. Please review the current draft and try again.

Eine verlorene Änderung ist ärgerlich. Eine still überschriebene ist viel schlimmer.

Was wir nicht tun

Wir lassen keine Änderung Fakten erfinden. Eine Änderung, die ein Zitat hinzufügt, das niemand geschrieben hat, oder ein Zertifikat, das niemand besitzt, ist kein Feature - und dieselbe Regel, die die Erstellung bestimmt, gilt auch fürs Bearbeiten.

Wir tun auch nicht so, als sei etwas geändert worden, wenn es nicht so ist. Lässt sich eine Bitte nicht als Änderung der Definition ausdrücken, sagen wir das, statt etwas Ähnliches zu liefern und zu hoffen, dass es durchgeht.