跳到正文

首页 · 实习经历

内河货船智能航行 HMI

安卓平板上的航行人机界面,聚合定位与感知实时状态流,展示航线、他船与危险告警。外包团队退出后独立接手后端,并重构鉴权与整套 UI。

浙江国科智舶 2026.01 – 2026.04 全栈 · 独立负责
3 周
初代交付周期
12+
聚合话题数
50Hz
状态流频率
  • Python
  • FastAPI
  • TimescaleDB
  • ROS 2
  • Vue 3
  • MapLibre

业务背景

产品

内河货船的智能航行人机界面,跑在驾驶台的安卓平板上。船员据此看到当前航线、周围他船与危险告警。

交付约束

初代要在三周内上船可用。到岗第三天完成全系统业务上手,随后进入开发。

中途变化

公司与外包后端团队解除合作,后端服务无人维护。我接手后成为该产品前后端的主要开发者。

我负责的重构

初代三周交付靠的是先跑通;能继续迭代靠的是随后把临时实现换掉。

重写登录鉴权

问题

原实现是测试人员为了跑通流程临时搭的,凭据处理与会话管理都不足以支撑上船使用,后续每加一个需要区分身份的功能都要绕开它。

备选方案

  • 在原实现上打补丁:短期快,但每个新功能都要重复处理同一批边界情况
  • 整体重写鉴权:一次性成本高,之后所有权限相关功能都有统一入口

选择

重写鉴权,把登录、会话与接口侧的身份校验收敛到统一入口,前端状态与后端会话生命周期对齐。

代价

重写期间需要同时兼容旧客户端,短期内两套逻辑并存。

整套 UI 组件化重构

问题

初版界面同样是临时搭建的:页面层级混乱、状态散落在各个组件里、样式重复。三周交付初代之后,继续在这个基础上加功能的成本会越来越高。

备选方案

  • 按需局部改:每次改动都要在多处同步,容易漏
  • 组件化重构 + 统一状态管理:前期投入,换后续迭代速度

选择

重新划分页面层级,抽出可复用组件,把跨页面共享的船舶与航行状态收敛到统一的状态管理里。

代价

重构期间功能交付会短暂放缓,需要和产品节奏协调。