Rust适合领域概念吗? - Reddit
💡
原文中文,约1100字,阅读约需3分钟。
📝
内容提要
本文讨论了使用Rust进行领域驱动设计的问题。Rust的所有权系统和缺乏继承、抽象类等特性可能会使得实现与领域概念保持距离,但Rust非常擅长使用结构、枚举和特征进行分层建模。对于循环图等问题,建议使用某种ID来指代外部聚合体/对象。作者认为,领域建模并不是问题所在,而是虚拟调度的模板可能存在问题。
🎯
关键要点
- 作者使用Rust近一年,编写了约2万行代码,涉及CLI、WebAssembly应用和Web服务器等。
- 编程范式的演变趋向于更大规模的设施来操作领域概念的结构。
- Rust缺乏继承和抽象类,使得实现与领域概念保持距离,尤其是由于所有权系统的限制。
- Rust擅长使用结构、枚举和特征进行分层建模。
- 如果两个事物通过整体联系,整体是部分的结构;如果是相互排斥的种类,则是枚举;相似之处可以用trait表示;不同且不可互换的事物可以用newtype包装器。
- 领域对象如果是循环图,建议使用ID指代外部聚合体/对象,以避免混乱。
- 领域建模本身不是问题,问题在于虚拟调度的模板,例如跨多个存储更新的数据库事务。
➡️