← 全部项目

工学交替 · 2025 年起 · 进行中

S-Print v4

Société des Grands Projets 合同承包方申报平台的重构:从 Java/Vue 到 Symfony 和 React。

S-Print v4

故事

S-Print 是 SGP 提供给合同合作伙伴的平台,用于申报并核查其数据:建设大巴黎快线所产生的经济活动和创造的就业,以及工地安全。它跟踪合同中的明确承诺,例如将至少 20% 的金额分配给中小企业、将 10% 的工时分配给远离就业的人群。

第 3 版基于 Java 和 Vue.js。我参与构建的第 4 版在服务端改用 Symfony 与 API Platform,在界面端改用 TypeScript 与 React。目标是:用带有受控基础数据的易用录入界面取代企业过去发送的 Excel 文件,并自动把数据导入分析工具 Cockpit。同时也要让技术底座现代化、减少技术债并便于后续演进。

我是开发部门 S-Print 团队的开发专员。我逐个功能地重建第 3 版所做的事情:React/TypeScript 页面与组件(企业列表与搜索、事故统计数据查看、经济足迹的列表与表单、合同创建)、带有良好错误处理的可复用 API 调用机制、Symfony 服务的改进及其 API 测试。我做代码评审,编写并运行测试,撰写文档,并轮流主持敏捷仪式。

在第 4 版完成之前,第 3 版仍在生产中运行:所以我总要分析现有系统,以免遗漏任何东西。我与导师一起设定的目标之一:为第 4.0.0 版的发布做出贡献,并积极参与代码评审。

我的收获

重构而不破坏:理解旧版本,干净地重写,逐字段比对。表单每个字段的背后,都是对本地就业和小企业的真实承诺,所以数据的准确性是首要任务。