文章
这里收录了我发布的全部文章。
-
mio(五):关键设计决策
mio 的每一个设计决策都是为 Rust 的 ownership 系统量身定做的。Token 替代回调是为了避免 closure 生命周期问题;强制边缘触发是为了简化 API 和提高性能;强制 non-blocking 是为了避免意外阻塞事件循环;没有全局状态是为了让 Poll 的生命周期完全由用户控制。
-
整洁架构(三):方法设计-每层用自己的语言命名和传参
Handler 说协议语言(HTTP 动词 + 资源),Service 说业务语言(领域动词 + 意图),Repository 说存储语言(CRUD + 查询条件),Domain Entity 说规则语言(不变量 + 状态转换)。如果两层的方法签名几乎一样,说明有一层在当透传中间人,不该存在。
-
mio(四):为什么不直接用 mio
mio 刻意只做事件通知,不提供 timer、buffer 管理、async/await、任务调度。直接用 mio 写服务器代码就像用 epoll_wait 的 C 代码一样繁琐。tokio 在 mio 之上叠加了完整的异步运行时。这不是 mio 的缺陷——这是 Unix 哲学的 "do one thing well"。
-
整洁架构(二):核心原则-依赖方向永远从外向内
Clean Architecture 只有一条铁律:内层不能 import 外层的任何东西。通过接口定义在消费方(依赖反转),实现内层调用外层能力、却不依赖外层实现。其余分层、命名都是这条规则的推论。