软件工程定律合集
团队协定律
- 康威定律:组织的沟通结构会映射到系统设计中。
- 布鲁克斯定律:为落后的项目加人会让它更晚。
- 邓巴数:一个人能维持的稳定关系大约是 150。
- 价格定律:参与者的平方根贡献了约 50% 的工作量。
计划与估算
- 帕金森定律:工作会填满可用的时间。
- 霍夫斯塔德定律:任务总是比预期更久,即使已考虑此定律。
- 古德哈特定律:当衡量标准成为目标时,它就失效了。
架构权衡
- 希伦姆定律:足够多的 API 用户会依赖系统的所有可观行为。
- 加尔定律:能工作的复杂系统必然源于能工作的简单系统。
- CAP 定理:分布式系统最多只能同时满足一致性、可用性、分区容忍中的两项。
质量与技术债务
- 童子军原则:离开时让代码比你发现时更好。
- 林纳斯定律:足够多的 eyeballs 能让所有 Bug 变得浅显。
- 测试金字塔:应有很多快速单元测试、较少的集成测试、极少的 UI 测试。
设计原则
- YAGNI:只有在真正需要时才添加功能。
- DRY:每项知识应有唯一明确的表示。
- 迪米特法则:对象只应与其直接朋友交互。
Anthropic Claude CLI 在 OpenClaw 中再次获准使用
使用方式恢复
Anthropic 确认 OpenClaw 风格的 Claude CLI(包括 claude -p)在此次集成中是被允许的,除非 Anthropic 发布新政策。长期运行的网关仍建议使用 Anthropic API Key 作为最清晰的生产路径。
配置要点
- 思考默认:Claude 4.6 模型在未显式设定时使用自适应思考;可通过
/think:或模型参数覆盖。 - 快速模式:
/fast on对应service_tier: "auto",/fast off对应service_tier: "standard_only"。 - 提示缓存:
cacheRetention参数控制缓存时长,默认short(5 分钟),可设long(1 小时)或none。 - 1M 上下文窗口:在支持的 Opus/Sonnet 模型上启用
params.context1m: true,对应 Anthropic betacontext-1m-2025-08-07。 - Claude CLI 后端:OpenClaw 已内置 Anthropic
claude-cli后端,可直接复用已有登录。
Mediator.ai:基于纳什博弈和 LLM 的公平谈判工具
产品定位
Mediator.ai 利用大语言模型将双方的自然语言陈述转化为可量化的需求,再运用 1950 年约翰·纳什的合作博弈理论寻找双方都能接受的协议。
核心能力
- 自动起草:系统生成多份候选协议,根据双方评分迭代优化,直至无更好方案。
- 结构化结果:在案例中,不仅调整股权比例,还提供管理薪金、临时回归路径、共同豁免和买卖 shotgun 条款。
- 可扩展场景:适用于创始人股权、共同居住、承包商纠纷等任何双方希望达成协议且不想被压制的情境。
实际影响
用户只需分别描述自己的立场,AI 完成谈判模拟,输出可直接使用的协议草案。演示显示,传统僵局可以转变为双赢的安排,而无需律师参与。
动态语言解释器的逐步加速之路
性能瓶颈
最初的 Zef 解释器采用 64 位带标签值、频繁 std::string 查找和递归 AST 遍历,基准慢于 CPython 35 倍、Lua 80 倍、QuickJS 23 倍。
关键优化
- 直接操作符节点:为每个运算符生成独立 AST,省去字符串比较。
- 符号替代字符串:全局哈希 consed Symbol,变量/属性查找变为指针比较。
- 内联缓存与观察点:在属性访问点缓存接收者类型和偏移,运行时检测可能被重写的名字以保证正确性。
- 参数传递自定义类型:零、一、二参数专用路径,消除堆分配。
- Getter/Setter 特化:检测纯字段读写,生成直接偏移加载/存储函数。
- 全局方法哈希表:以 (接收者类, 符号) 为键,一次查找定位目标函数。
- 值慢路径改造:按值传递,避免临时 Value 分配。
结果
经过 21 步优化后,Zef 解释器仅比 CPython 慢 2.1 倍,比 Lua 慢 4.8 倍,比 QuickJS 慢 1.35 倍;相当于比基线快 16.6 倍。使用普通 GCC(Yolo‑C++)进一步提升至比 CPython 快 1.9 倍,但该版本无法释放内存,仅适合短时基准。
Ternary Bonsai:1.58‑bit 语言模型
模型定位
Ternary Bonsai 采用三元权重 {-1, 0, +1},每 128 权重共享一个 FP16 放大因子,实际等效为 1.58 bit/weight。该方案嵌入嵌入、注意力、MLP 和语言模型头部,没有更高精度的逃 hatch。
规模与资源
- 三种规模:1.7B、4B、8B 参数。
- 8B 版约占 1.75 GB 内存,比同等 16‑bit 模型小约 9 倍。
- 在 MMLU、GSM8K、HumanEval+ 等基准上平均得分 75.5,比 1‑bit Bonsai 8B 高 5 分,仅多占 600 MB。
性能表现
- 在 Apple M4 Pro 上,8B 版吞吐约 82 token/s,能耗 0.105 mWh/token;相比同规模 16‑bit 模型快约 5 倍。
- 在 iPhone 17 Pro Max 上吞吐约 27 token/s,能耗 0.132 mWh/token,能效比全精度模型高 3‑4 倍。
- 模型可在 Mac、iPhone、iPad 上通过 MLX 原生运行,权重采用 Apache 2.0 许可证。
定位与权衡
当绝对最小占用是首要时,1‑bit 仍是最优;当允许适度增加内存以获得显著性能提升时,Ternary Bonsai 在 1.7B‑8B 区间提供了有吸引力的折中方案。
基于 CRDT 的实时类型安全图数据库
项目定位
@codemix/graph 是一个使用 TypeScript 构建的图数据库,内部借助 Yjs(一个 CRDT 库)实现离线优先、多协同编辑。支持 Zod、Valibot、ArkType 等 Schema 库进行类型声明,提供类 Gremlin 和类 Cypher 查询 API。
核心能力
- Schema 驱动:顶点、边、索引通过普通对象声明,属性在每次变更时会在编译期和运行期进行校验。
- 类型安全遍历:基于 Gremlin 风格的遍历 API,每一步都由 TypeScript 检查标签、属性键和跳数。
- Cypher 兼容:可将 Cypher-like 字符串解析为相同的遍历步骤,便于暴露给 LLM 或外部客户端。
- Yjs 后端:只需把存储层换为
YGraph,整图即成为 Yjs 文档的一部份,实现免冲突的实时同步。 - 协作属性:通过
ZodYText、ZodYArray等包装,标题、标签等字段可在所有副本间无冲突地更新。
使用场景
- 需要实时协作的图式知识库(例如航空路线图)。
- 将图数据作为 LLM 上下文来源,通过自然语言查询获取结构化答案。
- 作为离线优先的本地先行数据库,网络恢复后自动合并更改。
以上内容均摘自今日 Hacker News 热议,供技术爱好者快速捕捉要点。
相关链接:
- Laws of Software Engineering
- Anthropic says OpenClaw-style Claude CLI usage is allowed again
- Show HN: Mediator.ai – Using Nash bargaining and LLMs to systematize fairness
- MNT Reform is an open hardware laptop, designed and assembled in Germany
- Framework Laptop 13 Pro
- How to make a fast dynamic language interpreter
- Ternary Bonsai: Top Intelligence at 1.58 Bits
- A Roblox cheat and one AI tool brought down Vercel's platform
- The Beauty of Bonsai Styles
- A type-safe, realtime collaborative Graph Database in a CRDT
