Zum Inhalt springen

Sechs Schritte, keine Erlaubnis

Schreiben Sie ein Kit in Ihrer Sprache.

Ein Kit ist Quo, von jemandem in irgendeiner Sprache geschrieben, und jeder darf eines allein aus den veröffentlichten Dokumenten schreiben. Sechs Schritte, jeder sagt, was zu lesen ist und wie fertig aussieht. Niemand registriert es, niemand genehmigt es, und der Prüfer ist der einzige Richter.

?Schablone, kein Hausüber ein Kit gelegt
01

Die Spec ganz lesen.

SPEC.md ist das Ganze von Quo. Es setzt nichts aus einem anderen Dokument voraus und stützt sich auf nichts als die Standards, die es nennt. Jeder Begriff wird dort definiert, wo er eingeführt wird.

Fertig, wenn Sie jedes Kapitel gelesen haben und zu jeder Regel sagen können, welche Bytes sie festlegt.

02

Die Fragen vor dem Code beantworten.

KIT-SPEC.md stellt 28 Fragen, jede Wahl, die SPEC.md einem Kit überlässt. Es fragt und antwortet nie, und jede Antwort wird akzeptiert.

Fertig, wenn alle 28 beantwortet sind, jede mit ihrem Grund, in einem eigenen Dokument neben der Stelle, an der der Code stehen wird.

03

Allein aus der Spec schreiben.

Kein Kit ist die Referenz, und keines ist zum Importieren gedacht. Jedes der 5 Beispiele wurde kalt geschrieben, von einem Agenten, der nur die veröffentlichten Dokumente und den Verifier hatte, und nie ein anderes Kit.

Fertig, wenn Ihr Kit aus den Dokumenten geschrieben ist, ohne dass ein anderes Kit offen war.

04

Den Harness stellen.

HARNESS.md ist Testwerkzeug neben dem Protokoll, in 2 Teilen: was ein Kit antwortet, um ohne Carrier beurteilt zu werden, und was es antwortet, um mit getragenen Bytes beurteilt zu werden. Ein Kit darunter ist ein ausführbares Programm namens stand, das Anfragen auf stdin liest und Antworten auf stdout schreibt.

Fertig, wenn Ihr Programm stand jede Anfrage beider Teile beantwortet, oder bad request antwortet, wo es keine solche Seite hat.

05

Den Verifier bestehen.

Der Verifier beurteilt Ihr Kit als Tür, als Fragenden, als Listener und Wählenden jedes Carriers, den es trägt, und als Leser des at in einer Einladung und in einer Antwort. Er lehnt nur dort ab, wo SPEC.md die Bytes festlegt. Aus dem Beispielordner, mit dem Ordner und dem Programm stand Ihres Kits:

node ../verifier/cli.js --cwd go -- ./stand

Fertig, wenn der Verifier mit 0 endet: keine Prüfung scheiterte. Das ist notwendig, und es sagt nichts darüber, ob Ihr Kit gut ist.

06

Ein anderes Kit treffen.

Je zwei Kits werden zusammen über den Proxy des Verifiers beurteilt: Ein ward steht in einem, das andere fragt ihn über jeden Carrier, den beide teilen, und über TCP kommen Frames verspätet, doppelt, in falscher Reihenfolge, verändert und gar nicht an.

node ../verifier/cli.js --two -- "$PWD/go/stand" -- "$PWD/rust/target/debug/stand"

Fertig, wenn Ihr Kit mit jedem anderen Kit besteht, in beide Richtungen.