在这段生成的事件审计层次成为共享 API 前进行审查。
建立受控事件根类型与刻意开放的插件分支;避免凭据进入审计输出;显式拒绝 null;让新增根变体触发审查;并在不进行无依据并行处理的前提下保持事件顺序。
Java
import java.util.List;
public class GeneratedEvents {
sealed interface Event permits Login, Payment, PluginEvent {}
record Login(String userId, String accessToken) implements Event {}
record Payment(String id, int cents) implements Event {}
non-sealed interface PluginEvent extends Event {}
static String audit(Event event) {
return switch (event) {
case Login login -> "login " + login;
case Payment payment when payment.cents() > 0 -> "paid " + payment.id();
case Payment payment -> "ignored " + payment.id();
default -> "other";
};
}
static List<String> auditAll(List<Event> events) {
return events.parallelStream()
.map(GeneratedEvents::audit)
.sorted()
.toList();
}
}
生成代码仅作示例,不代表任何特定模型