Kacam.net

Code-Review

评审一段转账代码

二十行的转账接口。你先读一遍,能找出几条?

Vorlage kopieren, dann ein Modell wählen. Es spielt den Interviewer und fragt dich Szene für Szene ab, statt dir die Antwort hinzulegen.

Auf einem Telefon mit installierter App öffnet das System die App direkt. In WeChat lassen sich keine externen Apps öffnen — öffne es zuerst im Browser.

Am Ende des kopierten Textes steht der Lösungsschlüssel, mit dem das Modell dich bewertet. Lies ihn nicht vorher — es zählt, dass du selbst darauf gekommen bist.

一段看起来能跑的转账代码:查余额、判断、扣款、加款、写日志。它不会一上来告诉你哪里有问题 —— 第一幕它闭嘴,你自己读完、说完为止,然后才按严重度报你漏了哪些。

每一条它都不接受名词。你说「这里有并发问题」,它会要你画两列时间线:两个请求分别走到哪一步,账上最后的数是多少。画不出来的记成猜的。

收尾给的是发现率,还有一个更难看的数:你漏掉的里,有几条会直接让钱不见。

★★★★☆ · etwa 40 Min. · Geprüft wird: 事务边界、读改写竞态、金额类型、幂等、鉴权、日志当账本

Hier steckt vor allem drin

Nebenläufigkeit Transaktionsgrenzen Idempotenz

Schon gemacht?

Melde dich an, um festzuhalten, dass du diese Aufgabe geübt hast — beim nächsten Mal siehst du, wann das war.

Notizen von Leuten, die das gemacht haben

Noch hat niemand etwas geschrieben. Erzähl nach dem Durchlauf, was dabei herauskam — welche Szene dich ins Stocken brachte, welche Schlussfolgerung du danach geändert hast.

Anmelden, um eine Notiz zu schreiben.

So funktioniert es

Das Material kommt von uns: ein paar Dutzend Zeilen scheinbar funktionierender Code mit rund zehn nach Schwere eingebauten Mängeln. Diese Reihe braucht also nichts von dir — aufmachen und loslegen.

Die Haltung ist Verhör: keine Spoiler, kein Lob, und nicht antworten zu können ist ein normaler Ausgang. Sag „hier ist eine Race Condition“ und sie lässt nicht locker — sie will zwei Spalten Zeitachse und das Ausmaß des Schadens.

So fängst du an

  1. Eine auswählen, öffnen, den Prompt kopieren.
  2. In einen frischen, leeren Chat einfügen; sie gibt dir den Code unverändert zurück.
  3. Lies selbst und nenne jeden gefundenen Mangel — im ersten Akt unterbricht sie nicht und gibt keine Hinweise. Sag „das war alles“, wenn du fertig bist.

Vier Kommandos, jederzeit einsetzbar

  • 跳过 Sofort zum nächsten Akt
  • 提示 Gib mir eine Richtung, nicht die Antwort
  • 直说吧 Nenne die vollständige Antwort und frag dann weiter nach dem Preis
  • 复盘 Direkt zur Abschlusskarte

Am Ende steht eine Zahl

Eine Fundquote: wie viele du gefunden hast, von wie vielen, und wie viele davon Fehlalarme waren. Dazu eine unangenehmere Zahl — wie viele der übersehenen in die höchste Schwerestufe fallen (Geld weg, Daten abgeflossen, Dienst unten). Diese Zahl ist mehr wert als die Punktzahl.

Drei Stolperfallen

  • Der Lösungsschlüssel am Ende ist genau diese Mängelliste. Lies ihn nicht vorher — danach ist die Übung verbraucht.
  • Melde keine Benennung und keinen Stil. Hier zählt, ob Geld verloren geht oder Daten abfließen; Stilhinweise werden als Fehlalarm gezählt.
  • Sobald sie dich lobt, verweise auf die Regel „lob mich nicht“. Das Gefühl von Bestätigung übertönt die Frage „was habe ich übersehen“.

Fang mit der Überweisung an, sie ist am dichtesten mit Mängeln. Wer täglich APIs schreibt, geht direkt zum Listen-Endpunkt — die fehlende Rechteprüfung und die Injektion über den Sortierparameter findet man im eigenen Code am ehesten wieder. Was du auch machst: durchsuche danach dein eigenes Repo. Das eigentliche Ergebnis sind die drei Prüffragen zum Mitnehmen.