mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 04:15:14 +08:00
chore: establish development baseline
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
# 开发指南
|
||||
|
||||
## 环境准备
|
||||
|
||||
### 安装依赖
|
||||
|
||||
#### Go
|
||||
```bash
|
||||
# 安装 Go 1.22+
|
||||
# 参考:https://golang.org/doc/install
|
||||
|
||||
go version # 验证安装
|
||||
```
|
||||
|
||||
#### Rust
|
||||
```bash
|
||||
# 安装 Rust 1.75+
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
|
||||
rustc --version # 验证安装
|
||||
cargo --version
|
||||
```
|
||||
|
||||
#### Docker
|
||||
```bash
|
||||
# 安装 Docker 和 Docker Compose
|
||||
# 参考:https://docs.docker.com/get-docker/
|
||||
|
||||
docker --version
|
||||
docker compose version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 项目结构
|
||||
|
||||
请参考 [架构文档](../architecture/README.md) 了解完整的项目结构。
|
||||
|
||||
---
|
||||
|
||||
## 开发工作流
|
||||
|
||||
### 1. 创建功能分支
|
||||
|
||||
```bash
|
||||
git checkout -b feature/your-feature-name
|
||||
```
|
||||
|
||||
### 2. 开发
|
||||
|
||||
```bash
|
||||
# 实时编译检查
|
||||
make check
|
||||
|
||||
# 运行测试
|
||||
make test
|
||||
|
||||
# 格式化代码
|
||||
make fmt
|
||||
```
|
||||
|
||||
### 3. 提交
|
||||
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "feat: 添加新功能"
|
||||
```
|
||||
|
||||
提交信息遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范:
|
||||
- `feat:` 新功能
|
||||
- `fix:` 修复 bug
|
||||
- `docs:` 文档更新
|
||||
- `style:` 代码格式(不影响功能)
|
||||
- `refactor:` 重构
|
||||
- `test:` 测试相关
|
||||
- `chore:` 构建工具或辅助工具
|
||||
|
||||
### 4. 推送和 PR
|
||||
|
||||
```bash
|
||||
git push origin feature/your-feature-name
|
||||
# 然后在 GitHub 创建 Pull Request
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 代码规范
|
||||
|
||||
### Go
|
||||
- 遵循 [Effective Go](https://golang.org/doc/effective_go)
|
||||
- 使用 `gofmt` 格式化
|
||||
- 使用 `golangci-lint` 进行静态检查
|
||||
|
||||
### Rust
|
||||
- 遵循 [Rust API Guidelines](https://rust-lang.github.io/api-guidelines/)
|
||||
- 使用 `cargo fmt` 格式化
|
||||
- 使用 `cargo clippy` 进行静态检查
|
||||
|
||||
### TypeScript
|
||||
- 遵循 [TypeScript Style Guide](https://google.github.io/styleguide/tsguide.html)
|
||||
- 使用 ESLint 和 Prettier
|
||||
|
||||
---
|
||||
|
||||
## 测试
|
||||
|
||||
### 单元测试
|
||||
|
||||
```bash
|
||||
# Go
|
||||
go test ./...
|
||||
|
||||
# Rust
|
||||
cargo test
|
||||
```
|
||||
|
||||
### 集成测试
|
||||
|
||||
```bash
|
||||
# 需要先启动数据库
|
||||
make dev
|
||||
|
||||
# 运行集成测试
|
||||
go test -tags=integration ./...
|
||||
```
|
||||
|
||||
### 基准测试
|
||||
|
||||
```bash
|
||||
make bench
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 调试
|
||||
|
||||
### Go
|
||||
使用 Delve 调试器:
|
||||
```bash
|
||||
go install github.com/go-delve/delve/cmd/dlv@latest
|
||||
dlv debug ./cmd/bat
|
||||
```
|
||||
|
||||
### Rust
|
||||
使用 rust-lldb 或 rust-gdb:
|
||||
```bash
|
||||
rust-lldb target/debug/bat-cas-engine
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 1. 编译失败
|
||||
|
||||
确保安装了所有依赖:
|
||||
```bash
|
||||
go mod download
|
||||
cargo fetch
|
||||
```
|
||||
|
||||
### 2. 测试失败
|
||||
|
||||
确保数据库已启动:
|
||||
```bash
|
||||
make dev
|
||||
```
|
||||
|
||||
### 3. FFI 绑定问题
|
||||
|
||||
重新生成绑定:
|
||||
```bash
|
||||
cd crates/bat-ffi
|
||||
cargo build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
更多问题请查看 [FAQ](./faq.md)(待创建)或提交 Issue。
|
||||
Reference in New Issue
Block a user