Skip to content

[代码质量] import.rs 增长至 1584 行 45 个函数,需拆分为独立模块 #217

@evan-zhang11

Description

@evan-zhang11

问题

自 icon upload 功能和 server-side import(#167, #201)合并后,backend/src/import.rs 已增长至 1584 行、45 个函数,成为项目中最大的单文件之一。

具体问题

  1. 可维护性差 — 单文件包含文件类型检测、CRS 检测、GeoJSON 重写、Shapefile 处理、列归一化、类型强制转换、元数据注册等完全不同的职责
  2. 测试困难 — 45 个函数大多为私有函数,单元测试必须写在同一文件内
  3. 认知负荷高 — 新贡献者需要阅读大量无关代码才能理解某个功能

建议拆分方案

backend/src/import/
├── mod.rs              # 公共接口 (import_file 等)
├── detect.rs           # 文件类型检测 (is_geojson_like 等)
├── crs.rs              # CRS 检测和归一化 (已有 crs.rs,部分可移入)
├── geojson.rs          # GeoJSON/GeoJSONSeq 重写和处理
├── shapefile.rs        # Shapefile 解压和处理
├── columns.rs          # 列名归一化和类型强制转换
└── metadata.rs         # 元数据注册和 schema 更新

关联

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions