fix(#8): 最佳实践 — 替换 agc suites list 为 curl API 查询
This commit is contained in:
+17
-41
@@ -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`
|
||||
- 名称反映功能:`stream-extraction` 而非 `my-suite-1`
|
||||
|
||||
## 参数设计
|
||||
|
||||
- 参数名用 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)
|
||||
日志在控制台直接打印,无需额外配置。
|
||||
|
||||
Reference in New Issue
Block a user