reL4 编程公约草案 #
🧭 命名规范(Naming Conventions) #
| 类型 | 命名风格 | 示例 | 
|---|---|---|
| 变量 / 函数 | snake_case | calculate_sum | 
| 常量 / 静态变量 | SCREAMING_SNAKE_CASE | MAX_BUFFER_SIZE | 
| 类型 / 枚举 / Trait | CamelCase | HttpRequest, Display | 
| 生命周期标识符 | 'lowercase | 'a, 'static | 
| 模块名 | snake_case | utils, io_helper | 
| Feature | snake_case | smp, mcs, have_cpu | 
🧼 代码风格(Code Style) #
- 每行不超过 100 字符
 - 使用 
rustfmt格式化代码: 
  rustup component add rustfmt
  cargo fmt
🔍 错误处理 (Error Handling) #
- 使用 Result<T, E> 处理可预期错误
 - 使用 ? 操作符传播错误
 - 避免使用 unwrap() / expect(),除非确定无误
 
📦 模块与 Crate 结构(Project Structure) #
- 使用 
workspace拆分大型项目 - 每个模块职责单一,避免循环依赖
 lib.rs只作为入口,不承载业务逻辑,main.rs中相关逻辑
🧰 工具建议(Tooling) #
rustfmt自动格式化代码clippy静态分析和潜在错误提示
📝 文档规范(Documentation) #
- 使用 /// 注释 public API
 - 使用 //! 注释 crate 或模块入口
 - 添加 # Examples,自动作为测试用例
 
/// 获取两个数字之和
///
/// # Examples
///
/// ```
/// assert_eq!(my_crate::add(2, 3), 5);
/// ```
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}
适当使用抽象 #
草案
- 对于不需要加锁的场景适当使用抽象,例如启动核专属的变量,就可以使用一个 struct 来定义, e.g. 
BootCore<usize> - 对于 
unsafe代码进行收集,减少unsafe代码的分布 - 减少直接指针的使用,使用一个类型或者抽象进行计算
 - 使用 
cargo clippy检测语法的异常 - 对于确认无误的代码,在 mod 或 crate 上加入 
#![deny(warnings)]和#![deny(missing_cos)],确保后续代码不出现问题