首页 · 实习经历
内河货船智能航行 HMI
安卓平板上的航行人机界面,聚合定位与感知实时状态流,展示航线、他船与危险告警。外包团队退出后独立接手后端,并重构鉴权与整套 UI。
浙江国科智舶 2026.01 – 2026.04 全栈 · 独立负责
- 3 周
- 初代交付周期
- 12+
- 聚合话题数
- 50Hz
- 状态流频率
- Python
- FastAPI
- TimescaleDB
- ROS 2
- Vue 3
- MapLibre
业务背景
产品
内河货船的智能航行人机界面,跑在驾驶台的安卓平板上。船员据此看到当前航线、周围他船与危险告警。
交付约束
初代要在三周内上船可用。到岗第三天完成全系统业务上手,随后进入开发。
中途变化
公司与外包后端团队解除合作,后端服务无人维护。我接手后成为该产品前后端的主要开发者。
数据链路
链路里由他人实现的环节已如实标注;点节点可看各自的职责与我负责的部分。
点击任一节点,查看它在链路里的职责与我负责的部分。虚线为依赖调用,实线为主数据流。
我负责的重构
初代三周交付靠的是先跑通;能继续迭代靠的是随后把临时实现换掉。
重写登录鉴权
问题
原实现是测试人员为了跑通流程临时搭的,凭据处理与会话管理都不足以支撑上船使用,后续每加一个需要区分身份的功能都要绕开它。
备选方案
- 在原实现上打补丁:短期快,但每个新功能都要重复处理同一批边界情况
- 整体重写鉴权:一次性成本高,之后所有权限相关功能都有统一入口
选择
重写鉴权,把登录、会话与接口侧的身份校验收敛到统一入口,前端状态与后端会话生命周期对齐。
代价
重写期间需要同时兼容旧客户端,短期内两套逻辑并存。
整套 UI 组件化重构
问题
初版界面同样是临时搭建的:页面层级混乱、状态散落在各个组件里、样式重复。三周交付初代之后,继续在这个基础上加功能的成本会越来越高。
备选方案
- 按需局部改:每次改动都要在多处同步,容易漏
- 组件化重构 + 统一状态管理:前期投入,换后续迭代速度
选择
重新划分页面层级,抽出可复用组件,把跨页面共享的船舶与航行状态收敛到统一的状态管理里。
代价
重构期间功能交付会短暂放缓,需要和产品节奏协调。