作者分享了为《Logic for Programmers》一书编写的Z3 SMT求解器示例代码。文章从基础数学约束求解、优化年金存款、逆向工程线性同余生成器(RNG),到定理证明和股票交易策略,逐步展示了Z3在软件研究和形式化验证中的实际应用。内容包含大量Python代码片段、工程踩坑经验(如Z3数组理论与Python列表的区别、优化器性能问题)以及对SMT求解器局限性的诚实反思,适合对形式化方法、约束编程和底层算法感兴趣的开发者。
作者反驳“注释只解释为什么,不解释是什么”的主流观点。通过变量命名和代码重构(Extract Till You Drop)两个案例,指出过度追求代码自解释会导致上下文切换成本增加。主张在特定场景下,直接写清楚“做什么”的注释比强行拆分函数或依赖版本控制记录更有效,旨在引发关于代码整洁与可读性的工程实践讨论。
Been quiet around here! I’ve been putting almost all of my writing time into Logic for Programmers and my whole brain is book-shaped. Trust me, you do not want to read my 2000-word rant on Sphinx post...
作者基于April Cools活动,为不玩游戏的朋友推荐了四款入门游戏:Baba is You、Stardew Valley、The Case of the Golden Idol和Balatro。文章详细阐述了选品标准(无需特殊硬件、无文化门槛、具有文化意义且经本人验证非玩家喜爱),并深入分析了每款游戏的设计哲学、类型演变及为何适合新手。内容兼具个人体验、行业观察和具体的游戏推荐,对科技和游戏爱好者有较高参考价值。