在拥有 30 年 UX 设计经验后,作者通过与游戏理论家拉夫·科斯特(Raph Koster)合作,挑战了自己原有的设想。他不再局限于“游戏化”(点数和徽章)的表面形式,而是试图探索游戏设计中更深层、更本质的内核。
他提出了连接游戏设计与应用 UX 的六个“透镜”:
1. **故事与叙事**:无论设计如何,用户都会自行构建叙事;创作者必须打造连贯的故事线来引导这一过程。
2. **分形设计**:复杂的系统是由嵌套的微小技能集合而成的。与游戏一样,应用应严谨地拆解每一项交互。
3. **学习循环**:乐趣是学习的副产品。应用应通过分层构建来引导用户掌握技能,而非用复杂性让用户感到不知所措。
4. **示能**:游戏利用细腻的多层反馈(如《塞尔达传说:旷野之息》中的体力轮)来直观地引导用户。
5. **暗示性**:利用微妙的环境线索取代碍事的对话框,防止用户陷入“无脑操作”或停滞不前。
6. **节奏**:不要一次性展示所有内容,而应通过精心策划的旅程引导用户,从单一且清晰的操作开始。
通过应用这些透镜,设计师可以跳出僵化的准则,创造出既引人入胜又极其直观的体验。
本摘要探讨了 Nix 如何通过引入“动态派生”(dynamic derivations),从“应用式”(applicative)构建系统向“单子式”(monadic)构建系统转型。
传统上,Nix 是应用式的:整个构建图必须预先已知,这使得工具能够在执行前对构建过程进行推断。然而,动态派生允许在构建过程中定义构建图。虽然 Nix 长期以来通过评估器(evaluator)中的“派生导入”(import-from-derivation, IFD)支持“单子式”行为,但动态派生将此能力转移到了调度程序(scheduler)层面。这使得之前受限于评估器的步骤能够实现并行化、远程构建和缓存。
作者通过一个“掷骰子”实验展示了这一点:构建过程会随机决定是停止还是继续,即在运行时生成依赖图的下一步。除了简单的构建图生成(如 `cargo-dyndrv`)外,该原语还支持复杂的应用场景,例如:
* **状态空间搜索:** 根据发现的情况扩展构建边界。
* **网络爬虫:** 在获取页面时动态发现依赖关系。
* **递归模拟:** 运行进程直到满足特定条件。
虽然这种转变挑战了我们预先审视构建图的能力,但它从根本上拓展了 Nix 的构建边界。
JetBrains 宣布推出 **JetBrains Air**,这是一个全新的开放式生态系统,旨在应对代理式 AI 开发带来的复杂挑战。鉴于企业在管理、审计和控制自主代理方面面临诸多困难,JetBrains 正将其重心从单纯提供个人开发工具(IDE)转向构建一套用于团队协作和组织监管的综合系统。
JetBrains Air 构建于三大核心支柱之上:
* **JetBrains IDE 中的 Air**:强化开发环境,用于指挥代理并验证其代码。
* **Air Teams**:协调开发人员与代理之间的软件交付工作流。
* **Air Governance**:提供集中式可见性、成本管理和安全策略。
该系统的一个关键特性是其**多供应商的开放式方案**。通过代理客户端协议(ACP),JetBrains Air 支持各种模型和代理,确保企业不会被锁定在单一供应商身上。通过将这种灵活性与 JetBrains 深度且确定性的代码智能相结合,该平台旨在解决“验证瓶颈”问题——即 AI 生成的代码易于产出但难以审计的问题。最终,JetBrains Air 致力于帮助企业在不牺牲质量、安全或问责制的前提下,实现 AI 实验的规模化应用。