计时、无提示、答案锁到交卷之后Timed, no hints, answers locked until you hand in
沙箱跑绿不等于能在空文件夹里做出来。练习场的题文件建好了、依赖装好了、测试写好了,点一下就跑;真实考试是空文件夹、自己配环境、自己读 schema、没有提示按钮。考场就是用来堵这个缺口的:A green sandbox is not the same as building it in an empty folder. In the practice pages the files exist, the deps are installed, the tests are written, and one click runs them. The real assessment is an empty folder, your own setup, your own reading of the schema, and no hint button. The arena closes that gap: 计时、无提示、答案锁到交卷之后。timed, no hints, answers locked until you hand in.
考场不是入门用的。这里的每道题都假设你已经在对应那节课里做过一遍,现在要验证的是「没有答案在旁边还写不写得出来」。第一次进来建议从时限最短的那道开始。The arena is not for first contact. Every challenge assumes you already worked through the matching lesson; what is being tested is whether you can still write it with no answer next to you. On your first visit, start with the shortest limit.
规则很短The rules are short
开考按钮一按,计时立刻开始,需求才会出现在下一页 —— 读题也算在时间里,真实考试就是这样。中途刷新不会重置,超时不会打断,但记录会照实写。The moment you press start the clock runs, and only then does the next page show the requirements: reading the paper is part of the time, exactly as in the real thing. Refreshing does not reset it, going over time does not interrupt you, and the record says what happened.
题目Challenges
7 道题7 challenges空文件夹。自己起一个 Vite + React + TS 项目,自己装依赖,把 Notes Manager 的增删改写出来并让四个测试全过。测试文件的 data-testid 一个都不能改。An empty folder. Start a Vite + React + TS project yourself, install the dependencies yourself, and write the Notes Manager add, edit and delete so all four tests pass. Do not change a single data-testid in the test file.
空文件夹。实现一个带并发上限的异步任务调度器:并发数不得超过上限、结果顺序与输入一致、失败的任务以 rejected 出现而不是让整批崩掉。An empty folder. Implement an async task scheduler with a concurrency limit: never run more than the limit at once, keep results in input order, and report a failed task as rejected instead of letting the whole batch fail.
换了业务场景的 React 考试:Support Ticket Board。考点和 Q1 一致,但题面是新的 —— 不许回头看 Q1 的答案。The React exam in a different business setting: Support Ticket Board. It tests the same things as Q1, but the problem is new — do not look back at your Q1 answer.
空文件夹。自己搭一个 Apollo Federation subgraph:写 schema、写四个 resolver、用 DataLoader 防 N+1、错误带上 extensions.code,并让十个测试全过。An empty folder. Build an Apollo Federation subgraph yourself: write the schema, write the four resolvers, use DataLoader to avoid N+1, put extensions.code on errors, and make all ten tests pass.
空文件夹(或一个空的 Spring Initializr 骨架)。把六个 REST 端点写出来:方法、路径、状态码、参数来源、校验、异常处理,五个测试全过。An empty folder, or an empty Spring Initializr skeleton. Write the six REST endpoints: method, path, status code, where each parameter comes from, validation, and exception handling, with all five tests passing.
换了业务场景的 Federation 考试:Book Reviews。subgraph 加 entity 缝合,考点和 Task 1 一致,题面是新的。The Federation exam in a different business setting: Book Reviews. A subgraph stitched together with an entity; it tests the same things as Task 1, and the problem is new.
空文件夹。只有四个测试和一份数据文件:搭一个 Cab Booking 应用 —— Context 存「当前预订」和「行程历史」,四个页面用一个状态机切换,历史只留最新三条且最新在最上。四个测试全过。An empty folder. You get four tests and one data file. Build a Cab Booking app: Context holds the current booking and the ride history, four pages switch through one state machine, and the history keeps only the three most recent with the newest first. All four tests pass.