掌握 Rust 的六边形架构
六边形架构带来了模块化、解耦和清晰接口设计的好处,可以为 Rust 应用程序的可维护性和可扩展性提供了重要指导。
本文介绍了如何使用六边形架构编写灵活、易于维护的 Rust 应用程序
内容要点:
- 糟糕代码问题:硬编码依赖导致代码难以改善和理解。
- 架构概述:六边形架构为模块化应用程序提供了解耦的方法。
- 关注点分离:逐步改进紧密耦合的代码,使代码更易理解和测试。
- 仓储模式:使用仓储模式隐藏持久化细节,减少模块间直接依赖。
- 领域模型:定义业务逻辑的数据模型,确保数据有效性和一致性。
- 错误处理:设计清晰的错误类型,增强代码健壮性。
- 实现和测试:使用 mock 测试技术,简化测试过程。
原文链接 https://www.howtocodeit.com/articles/master-hexagonal-architecture-rust
Rust的三种引用类型
这篇文章介绍了 Rust 中的三种引用类型:&T、&mut T 和 Pin<&mut T>。作者讨论了引用类型的复杂性,以及 Pin 引用的特殊性。尽管 Rust 试图将引用类型底层化为两种类型,但 Pin 引用作为第三种引用类型存在并带来挑战。作者提出了解决 Pin 引用带来问题的方法,包括将 Pin 引用纳入语言本身或对 DerefMut 进行泛化。
原文链接 https://ssbr.xyz/blog/rust-has-three-reference-types/
Rust所有权
本文介绍了如何将结构类型理论应用于编程语言设计,重点讨论了所有权和结构类型在程序设计中的作用。
作者试图通过解释所有权和结构类型的概念,希望让更多普通程序员能够理解编程语言的工作原理。
文章探讨了类型系统和正确性属性的重要性,以及所有权如何扩展语言的类型系统,以确保程序的安全性和活性属性。此外,还介绍了子结构类型的概念,以及如何通过引入线性类型和会话类型来增强类型系统。
原文链接 https://without.boats/blog/ownership/
rensa: 高性能 MinHash实现
rensa 是一个使用 Rust 实现的高性能 MinHash,同时提供 Python 绑定,用于高效估计相似性和去重大型数据集。
github地址 https://github.com/beowolx/rensa
--