用过Rust中Cargo工具的,都会对其赞叹不已;
Cargo 不光支持代码格式化、构建、项目管理,还具备良好的可扩展性,同时也支持第三方的插件工具;
本文讲述了一些常见的Cargo命令,同时讲述了如何编写一个Cargo扩展插件;
源代码:
用过Rust中Cargo工具的,都会对其赞叹不已;
Cargo 不光支持代码格式化、构建、项目管理,还具备良好的可扩展性,同时也支持第三方的插件工具;
本文讲述了一些常见的Cargo命令,同时讲述了如何编写一个Cargo扩展插件;
源代码:
Rust中没有面向对象中的构造函数的概念,取而代之,通常情况下在初始化一个变量时就要为其所有的字段赋值!
有的时候这样比较麻烦,可以使用 Default 和 With Trait 来简化初始化操作;
源代码:
本文讲述了Rust中模块的组织形式和约定;
源代码:
本文讲解了如何Rust中进行错误处理;
源代码:
有的时候我们在发布一些Cli工具时,除了明确的版本号之外,还想要添加对应的Git CommitId号;
这个功能可以通过 build.rs 脚本实现;
源代码:
在Go中我们知道,如果程序在运行时发生了panic,如果不使用 recover 恢复,则程序会直接退出;
同样的,在Rust中发生数组越界、unwrap 错误等都会panic;
通常情况下,发生panic之后,rust会中断程序执行并退出;
但是我们也可以指定panic为unwind来展开调用栈,而非中断执行并退出程序;
源代码:
参考:
之前服务器用的是 CentOS7,很多东西都已经过时了,用起来很不方便;
所以趁着周末有空,重建了整个系统,改用 Debian;
同时也把服务器上所有的服务也都容器化了,更方便管理;
源代码:
相比于 MySQL 我更喜欢性能更好、使用更方便并且插件生态更丰富的 Postgres!本文主要分享了一个可以学习并部署高可用Postgres的网站 CrunchyData;
社区地址:
网站:
有的时候我们想要跟踪我们的代码到底分配了多少的内存,一个常用的方法是使用 Valgrind 工具进行内存分析;
但是对于一些场景,我们不想这么麻烦,那么此时我们可以通过简单的覆盖 malloc、free 等函数实现!
源代码:
BTree、B+Tree和LSM-Tree等数据结构是数据库存储引擎中及其常用的数据结构,本文讲解了这些数据结构的特点和异同;
视频地址: