某服务承接页 H5 页面(实习项目)
| 前端 PM
-
Situation:为支持汽车业务发展,需要为相关商品订单增加服务能力,该服务能力以内嵌 H5 的形式实现,方便多处投放。
- Task:项目有服务工单申请、工单详情、地址选择、订单选择、门店选择等页面。
团队之前已有一个类似的服务类多页项目,功能和 UI 均比较相似。原项目基于阿里开源跨端框架 Rax 的
MPA,技术上具备拓展的可行性,考虑对该项目的相关功能组件进行复用。
- Action:
- 原项目的重构:从原项目相关页面需要复用的功能组件进行抽取重构
- 团队协作:实施上需要熟悉原项目,为提高开发进度,降低外包同学的上手难度,只把一些功能相对独立的页面分配出去
- 项目开发:工程使用 TypeScript 开发,过程中大量复用团队沉淀的基础组件、业务组件、功能 Api,提高开发效率
- 协调测试:该方案可能会对原项目功能产生副作用,需要与相关测试同学沟通到位,做好回归测试
- Result:通过重构,预估需要三周完成的项目,提前一周实现了提测上线,且未对原项目产生副作用。
某测绘院互联网地图服务平台(实验室项目)
| 项目 PM
-
Situation:一个实验室项目,甲方有许多历史地图成果需要向公众提供网络浏览服务,同时希望支持一定的专题定制。
- Task:实验室有类似功能的历史项目,但技术栈较为落后,需要在理解历史代码的基础上进行重构,以支持项目要求。
- Action:
- 前端重构:将历史项目的 jQuery 技术栈切换至 Vuejs
生态
- 地图框架:地图实现上,摒弃笨重的 ArcGIS Api for JavaScript ,选用轻量开源的 Leaflet 库及第三方插件实现。
- 重写制图引擎:历史项目的定制部分,使用了后端渲染方案,前端展示后端返回的符号图片;借助前端图形库 D3js
、ECcharts 等开源符号库,在前端封装了一套 Leaflet 符号渲染系统,替换后端服务引擎
- 启用 Node 服务端:原后端栈是 Java,由于语言的限制,加上抽离制图引擎后,后端服务相对简单,使用 Express
进行了重写
- Result:
- 开发效率提升:转至 Vuejs 技术栈后,借助其组件化、数据驱动的设计思想,提高了代码复用,降低了维护成本
- 用户体验:引入 MVVM 框架使网页加载渲染速度更快;可交互的符号系统提升了用户体验