Rust 实战 · 手写下一代云原生消息队列
15
15
1.0x
00:00/00:00
登录|注册

04|项目初始化四大件:命令行参数、配置、日志、测试用例

本课程为精品小课,不标配音频
你好,我是文强。
上节课我们完成了项目的初始化,这节课我们来完成如何处理命令行参数如何管理配置如何记录日志如何运行测试用例四个任务。有了这四个基础部分,项目的基础模块就基本成型了。

处理命令行参数

Rust 处理命令行参数推荐使用 clap 这个库。
这里,我想同时跟你聊一下如何更好地使用前面提过的 https://crates.io/ 这个网站,它是 Rust 的公共库的代码仓库。
在我看来,能不能把 crates.io 用好,决定了你能不能学好 Rust 这个语言。接下来我们就以使用 clap 库来处理命令行参数这个 case 来讲解一下如何用好 crates.io。
比如我们需要使用库 clap,下图是 clap 库的首页。一般在首页都会有关于这个库详细的使用说明,比如使用方法、使用 demo。所以你得重视这个页面,在这个页面可以得到很多信息。另外需要关注右下角两个链接,一个是库的 Rust 文档地址,格式是统一的;另一个一般是源码所在地址,一般是 GitHub 仓库的地址。
这里有个技巧是:如果在文档中找不到你想要的信息,可以尝试去 GitHub 仓库找,GitHub 仓库一般有更详细的 example 信息。
如下图所示,库的文档首页是统一格式的。它会展示库中 Modules、Macros、Structs、Enums、Traits、Type Aliases 六部分信息,分别会列举库中的 mod、宏、结构体、枚举、Trait、Type Alias 等相关信息。你可以根据需要查看对应部分的内容。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 命令行参数推荐使用 clap 库,通过定义结构体 ArgsParams 和解析参数来处理命令行参数。 2. 在 Rust 中,建议使用 toml 格式的配置文件,并通过 serde 库来解析配置文件内容。 3. 日志模块的核心需求包括支持多个不同的日志级别、多种日志滚动方式、自定义日志格式和根据不同的类型将日志打印到不同的文件。 4. 在 Rust 中,建议使用 log4rs 库来记录日志,通过编写 log4rs.yaml 文件、初始化日志模块和记录日志来实现日志记录功能。 5. 初始化日志配置需要复杂的步骤,但通过优化使用体验,可以让用户大部分情况下不需要理解 log4rs 的语法,且修改日志存放目录时不需要修改 log4rs.yaml 中的日志路径。 6. 测试用例的编写一般依赖 assert_eq 来判断数据是否符合预期,可以通过 cargo test --package 模块名 来测试模块中的测试用例。 7. 为了测试服务接口的进出参是否正常,可以通过封装 shell 脚本来启动服务并执行测试用例。 8. 命令行参数推荐使用 clap 库,配置文件建议用 toml 格式文件,日志模块通过 log4rs 来初始化即可,测试用例建议和代码写在同一个文件。 9. 配置文件建议用 toml 格式文件,通过 toml 库配合 OnceLock 来实现配置文件的单例加载。 10. 日志模块通过 log4rs 来初始化,测试用例建议和代码写在同一个文件,如果需要依赖外部系统完成测试用例,建议在 Cargo Test 上配合 shell 来完成对应的工作。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Rust 实战 · 手写下一代云原生消息队列》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)