第9章:构建真实项目
第 91--100 节 之前学到的所有知识将汇合在一起。构建库、工具、服务器和解析器。
前面的章节介绍了 C 的基础构建块和 Auto 更安全的替代方案。现在是时候构建真正的软件了。 本章将通过完整的项目进行讲解——从小型库到 CLI 工具、HTTP 服务器和文本解析器。
每节都同时展示 C 方法(你需要手动编写的代码)和 Auto 方法(你实际编写的代码)。 学完本章后,你将掌握构建自己项目所需的模式。
91. 设计小型库
一个好的库有清晰的 API、最少的依赖和可组合的构建块。
C 库的模式:
- 头文件(
.h)声明公共 API - 实现文件(
.c)包含逻辑 - 所有名称加前缀以避免冲突(例如
vec2_add、vec2_length)
c
/* vec2.h */
typedef struct { float x; float y; } Vec2;
Vec2 vec2_new(float x, float y);
Vec2 vec2_add(Vec2 a, Vec2 b);
float vec2_length(Vec2 v);Auto 库的模式:
- 类型将相关数据分组
- 类型上的方法提供 API
mod和use组织模块
auto
type Vec2 { x float, y float }
fn Vec2.new(x float, y float) Vec2 { ... }
fn Vec2.add(a Vec2, b Vec2) Vec2 { ... }
fn Vec2.length(v Vec2) float { ... }Auto 的方法语法保持 API 简洁。类型名充当命名空间,取代了 C 的手动前缀约定。