46|软件架构:如何用Rust架构复杂系统?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了使用Rust构建复杂系统的软件架构。作者指出,软件系统的架构、功能、缺陷和技术债之间相互作用,需要通过维护性的工作来减少缺陷、修复技术债、改善功能,将整个系统拉回上升通道。在软件项目的初期,应采用渐进式的架构设计,从MVP的需求中寻找架构的核心要素,构建一个原始但完整的结构,然后围绕核心要素演进。架构设计需要考虑结构、特性、决策和设计原则四个维度,包括架构的风格、主要指标、硬性规则和设计原则。文章还以KV server为例,介绍了分层结构、架构的主要指标和硬性规则的应用。最后,作者提到了亚马逊的架构决策备忘录,强调了架构的硬性约束的重要性。文章内容丰富,深入探讨了软件架构设计的重要性和方法,以及Rust在构建复杂系统中的应用。文章还介绍了Rust构建典型的架构风格,包括分层结构、流水线结构和插件结构,以及如何在Rust中创建这些结构。
《陈天 · Rust 编程第一课》,新⼈⾸单¥68
全部留言(15)
- 最新
- 精选
- HiNeNi老师,有空的时候能不能出一些宏的教程,声明宏还好,在网上一直没有找到比较好的过程宏的教程。因为之前接触过QT,了解到一些c++框架在用自己的方式(宏加上关键字扩展)对语言或程序的行为进行很有意义的扩展,所以感觉宏这一块还是大有可为的,不知道老师有空时能不能略授一二。
作者回复: 我考虑一下,回头看看这个需求有多少。最初的计划有宏,但因为这是入门的课程,所以砍掉了。
2021-12-156 - 给我点阳光就灿烂老师,可不可以具体给一个项目代码,关于插件架构的,特别好奇这种架构是怎样实现的
作者回复: 如果是内部的 plugin 结构,其实很简单,用 trait 和 trait object 处理即可;如果是外部的 plugin,稍微麻烦,这里有个例子:https://github.com/luojia65/plugin-system-example
2021-12-154 - gnu没想到 rust 课程还藏有架构设计思想的 bonus!惊喜了
作者回复: :)
2022-01-022 - 幻境之桥流水线那个例子 Context 会不会很复杂,所有 Plug 之间感觉只能通过这个 Context 交互
作者回复: 看具体的应用场景。一般来说,流水线中的 building blocks 处理的是相同的数据,如果结构差异非常大的数据被同一个流水线处理,那么要么这个流水线的粒度太大(可能需要分成不同的流水线),要么这个架构本身不适合流水线
2021-12-1621 - pedro过去二十年时间,敏捷宣言(Agile Manifesto)和精益创业(Lean startup)对软件社区最大的负面影响就是,一大堆外行或者并没有深刻理解软件工程的从业者,过分追求速度,过度曲解 MVP(Minimum Viable Product),而忽视了从起点出发前,必不可少的架构和设计功夫,导致大部分技术债实际上是架构和设计阶段的债务。 不能再认同了~
作者回复: 👍
2021-12-151 - inmo努力消化
编辑回复: 加油,进一步有进一步的乐趣,国庆快乐
2022-10-02归属地:北京 - Geek_4ca442老师请教个问题:如果在 kvServer 中保存的是一个结构体,value字段是要存储的值。 类似下面的功能该如何实现?传进来的参数val需要用到两次,尽管逻辑上只可能用到一次。 或者在 if ... else 语句中有类似的情况,如何实现比较好?是不是只能clone? pub fn set<T: Any + Send + Sync, K: Into<String>>(&self, key: K, val: T) { self.map.entry(key.into()) .and_modify(|o| { *o.value = val; // ...一些其它相关的处理 }) .or_insert(Value { count: 0, value: val, }); }
作者回复: 如果同一个数据要被用多次,可以使用引用。如果多次使用都需要所有权,那么只能 clone。如果要减少数据本身的 clone,可以用 Rc/Arc
2022-01-07 - 0@1老师,有没有出Rust高级课程的计划
作者回复: 暂时还没有,也许以后有
2021-12-184 - 幻境之桥插件化设计主要是把系统的核心能力提炼出来,供插件开发者使用,让他们的奇思妙想壮大系统生态
作者回复: 嗯
2021-12-16 - 乌龙猹今天这篇更新不仅属于干货 还非常硬 实在是不想结束这段学习之旅 虽然rust 只是刚入门 但老师深入浅出地规划了 rust 的roadmap 日后定当反复研读 以求融会贯通。最后 非常期待老师未来能推出elixir 编程第一课 到时候一定支持 也该有人来向国内开发者推荐推荐 elixir 这门语言了
作者回复: 谢谢支持!
2021-12-15