# 模块化最佳实践

## 文件组织

建议按功能拆分模块：

```text
src/
├── main.dj
├── components/
│   ├── button.dj
│   └── card.dj
├── utils/
│   └── strings.dj
└── models/
    └── user.dj
```

## 导出策略

- 只导出真正的公共 API
- 内部辅助函数默认保持模块私有
- 避免在一个文件里堆太多无关能力

## 避免循环依赖

循环导入会导致编译错误。<br />


如果两个模块互相需要能力，优先提取公共依赖到第三个模块。

## 命名建议

- 文件名使用清晰、稳定的语义命名
- 导出符号名应直接表达用途
- 同一目录内保持命名风格一致
