• HiNeNi
    2021-12-15
    老师,有空的时候能不能出一些宏的教程,声明宏还好,在网上一直没有找到比较好的过程宏的教程。因为之前接触过QT,了解到一些c++框架在用自己的方式(宏加上关键字扩展)对语言或程序的行为进行很有意义的扩展,所以感觉宏这一块还是大有可为的,不知道老师有空时能不能略授一二。

    作者回复: 我考虑一下,回头看看这个需求有多少。最初的计划有宏,但因为这是入门的课程,所以砍掉了。

    
    6
  • 给我点阳光就灿烂
    2021-12-15
    老师,可不可以具体给一个项目代码,关于插件架构的,特别好奇这种架构是怎样实现的

    作者回复: 如果是内部的 plugin 结构,其实很简单,用 trait 和 trait object 处理即可;如果是外部的 plugin,稍微麻烦,这里有个例子:https://github.com/luojia65/plugin-system-example

    
    3
  • gnu
    2022-01-02
    没想到 rust 课程还藏有架构设计思想的 bonus!惊喜了

    作者回复: :)

    
    2
  • 幻境之桥
    2021-12-16
    流水线那个例子 Context 会不会很复杂,所有 Plug 之间感觉只能通过这个 Context 交互

    作者回复: 看具体的应用场景。一般来说,流水线中的 building blocks 处理的是相同的数据,如果结构差异非常大的数据被同一个流水线处理,那么要么这个流水线的粒度太大(可能需要分成不同的流水线),要么这个架构本身不适合流水线

    共 2 条评论
    1
  • pedro
    2021-12-15
    过去二十年时间,敏捷宣言(Agile Manifesto)和精益创业(Lean startup)对软件社区最大的负面影响就是,一大堆外行或者并没有深刻理解软件工程的从业者,过分追求速度,过度曲解 MVP(Minimum Viable Product),而忽视了从起点出发前,必不可少的架构和设计功夫,导致大部分技术债实际上是架构和设计阶段的债务。 不能再认同了~

    作者回复: 👍

    
    1
  • inmo
    2022-10-02 来自北京
    努力消化

    编辑回复: 加油,进一步有进一步的乐趣,国庆快乐

    
    
  • Geek_4ca442
    2022-01-07
    老师请教个问题:如果在 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

    
    
  • 0@1
    2021-12-18
    老师,有没有出Rust高级课程的计划

    作者回复: 暂时还没有,也许以后有

    共 4 条评论
    
  • 幻境之桥
    2021-12-16
    插件化设计主要是把系统的核心能力提炼出来,供插件开发者使用,让他们的奇思妙想壮大系统生态

    作者回复: 嗯

    
    
  • 乌龙猹
    2021-12-15
    今天这篇更新不仅属于干货 还非常硬 实在是不想结束这段学习之旅 虽然rust 只是刚入门 但老师深入浅出地规划了 rust 的roadmap 日后定当反复研读 以求融会贯通。最后 非常期待老师未来能推出elixir 编程第一课 到时候一定支持 也该有人来向国内开发者推荐推荐 elixir 这门语言了

    作者回复: 谢谢支持!

    
    