fix(#8): 最佳实践 — 替换 agc suites list 为 curl API 查询

This commit is contained in:
2026-07-13 10:34:14 +00:00
parent 50845c7958
commit c05f2c9f94
+17 -41
View File
@@ -1,54 +1,30 @@
# 最佳实践 # 套件开发最佳实践
## 先查市场,再动手写 ## 命名规范
开发新套件前,先搜索市场是否已有能复用的套件:
```bash
curl -s 'https://suites.mercator.cn/api/v1/suites/search?q=缓冲区' | jq '.[] | {name, version}'
curl -s 'https://suites.mercator.cn/api/v1/suites/search?q=面积计算' | jq '.[] | {name, version}'
```
能找到现成的就引用它。不需要每次都写自己的脚本。
## 套件命名规范
- 使用英文小写 + 连字符:`buffer-analysis``land-use-classification` - 使用英文小写 + 连字符:`buffer-analysis``land-use-classification`
- 名称反映功能:`stream-extraction` 而非 `my-suite-1` - 名称反映功能:`stream-extraction` 而非 `my-suite-1`
## 参数设计
- 参数名用 snake_case`input_path``buffer_distance` - 参数名用 snake_case`input_path``buffer_distance`
- 必填参数和可选参数区分清楚
- 提供合理的默认值
- 写清楚描述和单位
```yaml ## 查市场
threshold:
type: number 开发新套件前,先查询市场是否已有能复用的套件:
default: 100
description: "河网提取阈值(像元数)" ```bash
curl -s https://suites.mercator.cn/api/v1/suites | python3 -c "import json,sys; [print(s['name']) for s in json.load(sys.stdin)]"
``` ```
## 输出设计 ## 模板复用
- 输出 JSON 包含关键字段 有现成的 Suite → 在 workflow.yaml 中用 `suite_id` 引用。
- 文件输出路径写清楚 找不到 → 写新脚本 → 发布为新 Suite → 方便后续者复用。
```python ## 调试技巧
result = {
"status": "ok",
"output_path": "/tmp/output/result.shp",
"feature_count": 42
}
```
## 测试 `agc run` 时,注意观察:
发布前用 `agc run` 测试,确认输入输出正确。 1. 是否成功解析套件和下载 package_url
2. 输入文件是否复制到工作目录
3. Docker 容器内脚本的执行输出
## 版本迭代 日志在控制台直接打印,无需额外配置。
- 修复 bug 或小幅改进 → 递增补丁版本(1.0.0 → 1.0.1
- 新增功能 → 递增次版本(1.0.0 → 1.1.0
- 重大变更 → 递增主版本(1.0.0 → 2.0.0