Skip to content

Latest commit

 

History

History
198 lines (145 loc) · 5.66 KB

readme_zh.md

File metadata and controls

198 lines (145 loc) · 5.66 KB

500行代码学会Rust

crate_version crate_downloads license

English | 中文

  • RTD (Rust To Do) 是一个用500行Rust 代码编写的todo app命令行应用。(不包括空行/注释/长行折断显示/测试代码)
  • RTD 同时也是一个教程,旨在通过实践学习Rust。
  • Learning by doing!

rtd_list_all

目录


你能从RTD学到什么?

假设你对Rust一无所知,通过500行代码学会Rust教程,一步步从零构建该项目,你将学会:

  • Rust常用语法
  • Rust模块系统(package/binary crate/library crate/mod/pub/use)
  • Rust所有权模型(伯恩斯坦条件)
  • Rust生命周期
  • Rust错误/空值处理(Result<T, E>/Option<T>)
  • Rust泛型
  • Rust模式匹配(if let , match ...)
  • Rust单元测试
  • Rust文件读写(File Seek/Buffed File I/O)
  • Rust操作环境变量
  • Rust命令行参数解析
  • Rust发布包至crate.io
  • 开发一个程序的一般过程(需求/设计/实现/测试/发布/维护)
  • 分层抽象(数据存储层/模型映射层/数据模型层/业务逻辑层/应用接口层/用户接口层)
  • 从零手写序列化/反序列化
  • 实现回收站功能(虚拟化概念)
架构图

rtd_arch_zh

存储

使用一个本地文件 $HOME/.rtd.csv 存储所有数据

data_storage rtd_list_all

完成该教程或直接安装RTD,你将得到:

  • 极其轻量级且简洁的todo命令行应用
  • 跨平台,Rust项目优秀的构建系统天然支持跨平台
  • 安全,支持回收站,完全本地,不联网,无数据库
  • 所有数据存储仅使用一个本地csv文件,可以通过复制csv文件来在不同机器间切换

有趣的事实: 我使用RTD来完成RTD教程, :)

如果你喜欢我的教程,别忘了给我点个Star哦~


准备

  • Rust 天然跨平台,本项目在 linux 环境构建测试,Windows/MacOS 同样支持,根据自身操作系统选择下载对应 Cargo 即可。
  • Cargo Rust 包管理和构建工具, 可通过Rust官网rustup一行命令直接安装,接下来的事情,它会帮你全搞定,很可爱,不是吗?

安装

通过 crate.io :

cargo install rtd-tutorial

(PS: 如果遇到网络不稳定的情况,可考虑使用 crates.io mirror

或者通过 git repo :

git clone https://github.com/cuppar/rtd.git
cargo install --path rtd

使用

查看帮助说明

rtd -h
rtd --help

rtd_help_summary rtd_help

添加一个todo

rtd -a <item-name>
rtd --add <item-name>

rtd_add

列出所有未完成的todo

rtd
rtd -l
rtd -l uncompleted
rtd --list
rtd --list uncompleted

rtd_list_uncompleted

完成一个todo

rtd -c <item-id>
rtd --complete <item-id>

rtd_complete_item

列出所有已完成的todo

rtd -l completed
rtd --list completed

rtd_list_completed

标记一个todo为未完成

rtd -u <item-id>
rtd --uncomplete <item-id>

rtd_uncomplete_item

把一个todo扔进回收站

rtd -d <item-id>
rtd --delete <item-id>

rtd_delete_item

列出所有回收站的todo

rtd -l deleted
rtd --list deleted

rtd_list_deleted

从回收站恢复一个todo

rtd -r <item-id>
rtd --restore <item-id>

rtd_restore_item

物理销毁一个todo

rtd --destroy <item-id>

rtd_destroy_item

清空回收站

rtd --destroy-deleted

rtd_destroy_deleted

列出所有todo

rtd -l all
rtd --list all

rtd_list_all

清空所有todo

rtd --clear

rtd_clear

关于作者

何志颖(Cuppar He), 软件开发工程师, 喜欢编程, 技术写作, 学习新东西, 尤其是计算机科学, 曾就职于SAP(世界百强)和阿里巴巴集团(世界百强&中国互联网巨头)。目前我在Gap Year, 如果你在寻找软件开发工程师并且能提供优质的offer(远程和现场都可以), 请与我联系[email protected]