从 re-frame、Raft、Free Monad 和 Fetch 出发,理解 effect value、interpreter、effect program 与语言级 Effect System 的区别。
software-architecturefunctional-programmingeffect-system
11 min read
关于 AI agent、编程、分布式系统、游戏与写作的公开笔记。
这里是我的个人知识库的公开部分。我主要写 AI agent、Clojure、Scala、分布式算法、游戏 AI、软件工程、写作、游戏和 App 开发——记录实践中踩过的坑、验证过的做法,以及一些值得长期思考的问题。
从 re-frame、Raft、Free Monad 和 Fetch 出发,理解 effect value、interpreter、effect program 与语言级 Effect System 的区别。
nrepl-starter 在 Java 应用内部启动 Clojure nREPL,Tenx 再把 IDEA 里的方法调用转成 REPL 表达式,让复杂测试数据准备和运行时调试从半小时缩短到秒级。
Fetch 把业务查询写成可组合的程序描述,再自动发现独立请求、合并批量查询,并沿着数据依赖分轮执行。
TinyKV 的 Raft 节点把网络和磁盘副作用变成可检查的消息与 Ready。测试只需传递和断言这些 value,就能模拟选举、丢包与网络分区。
Flutter 的状态管理可以离开模拟器测试。re-dash 把 re-frame 的六个 domino 搬进 ClojureDart:view 是纯函数,用户行为是数据。