把jsp重构成vue

记录一次重构的经历与感想!望自己将来开发之路越走越顺利。

话说,我在入职之前,公司一直使用的jsp技术,并结合jQuery来处理前端页面逻辑。

但在我入职之后不久,我们领导就要求把它重构成vue。

这时,我对jsp根本不熟,业务也没摸清楚。且在这个关键时刻,另一个前端因为离家较远直接离职了!

这个担子竟然压到我一个人身上,心里一万匹草泥马奔过。。。

但也没办法,只能赶鸭子上架,怀着极其忐忑的心情进入了开发阶段,当然也有点兴奋,于我而言这也是一个难得的实践机会!

我把这次重构的经历大致分成四个阶段:(1)摸清楚jsp项目的代码(2)用Vue CLI把项目工程搭建起来(3)整理业务逻辑(4)写vue代码

1.摸清楚jsp项目的代码

老项目中的jsp文件是长这样子:

JSP(JavaServer Pages)技术是一种基于Java的Web应用程序开发技术,它允许开发人员将Java代码嵌入到HTML中,以动态生成Web页面。

虽然这是一个比较古老的技术,我也是一脸懵圈,但秉承着前端框架无非是对html、css、js的结合的原则,我硬着头皮读代码。

经过一段时间的浸泡,并且在分析后,我发现,只需要稍微懂一点jsp技术,其实就完全可以读懂jsp了,jsp页面最大的特点就是可以通过java注入参数,除此,它和所有前端框架一样是由三部分组成:

  • html部分,就把jsp文件看成html文件,虽然里面注入了一些参数,但这些参数可以让后端通过接口返回,再拿去渲染就行了
  • css部分,老项目和vue基本可以共用
  • js部分,新老项目的功能是一样的,老项目中用jquery实现的,再拿vue去实现一遍即可

基于这些,此时我对把jsp重构成vue已经有了一些把握,总体原则大概是:对html、css、js这三部分,可以重用的部分就重用,不能重用的部分就重写。

2.用Vue CLI把项目工程搭建起来

使用脚手架,很快就搭建好了项目,都是傻瓜式的操作,这个没什么好说的,给大家看一下目录结构:

3.整理业务逻辑

我后知后觉才发现,重构最难的不是编码,而是业务逻辑

我对业务逻辑的信息来源有两个:一是看老项目的源代码,二是问其他老员工

但是前者效率极低,后者又困难重重

为何这么说,参考以下两点:

  1. 程序员最痛苦的莫过于阅读别人写的代码
  2. 作为新人,得遵守一些职场潜规则

但又没办法,只得蛮力通关 了,忍受着巨大的痛苦,一方面得加班阅读代码 ,一方面要虚心求教老员工 (我司的环境大概是,对业务越熟的人,脾气就越大,问题问多了,他们会很不耐烦,对此,我做了很多心理建设)。

后来,我也是整理出了一份前端业务逻辑资料,然后被放到了公司公共文件夹里,被后来的员工永久查看学习🐶!

4.写vue代码

最后阶段就是编码了,我把它分为前期和后期。

前期攻坚难点,重点关照那些难实现的功能,后期画页面,要保持效率,基本要能够一天画2个页面。

后来翻看了一下代码库的提交记录,从第一行代码的提交,到进入测试,历时3个月。

编码阶段是枯燥乏味的,前面靠"蛮劲"可以挺过去,但是现在每天得靠"有恒"二字给自己打气🐪!

然后,终于把项目重构完成了,我也长吁了一口气!

但是事情并没有我想象的那么简单,更恶心的事情来了,bug颇多!

短短几天,测试就提了几百个问题单!

泪奔啊!蛮劲用完了,恒心也消磨的差不多了!但是问题还是不依不饶的出现。。。

可能我这人就属于那种打不死的小强,想着好不容易坚持到这一步,无论如何我都要拿下它!

于是又向bug们发起了"猛攻"!

又渡过了一段漫长且艰难的解bug时期。。。

终于把bug也解完了,我和测试都长吁一口气!

什么?代码要想顺利上线,还要处理CI?

最后,我精疲力竭的处理完了一千多个CI问题,也终于体会到了,有时候,不逼自己一把,你永远不知道自己可以做到什么程度!

至此,项目终于上线了!

这次重构经历,我思考了这么几个问题:

  1. 公司为什么要重构这个项目?

    答:这个项目本来用户量大,将来还有大量的新需求要接,但是技术架构上已经落后了,如果不重构,将来搞不定新需求,老代码也不好维护,毕竟新来的员工会jsp的没多少。

  2. 重构的重点在哪?

    答:在于业务。业务是大于技术的,特别是新员工,别急着钻研项目中用到了哪些技术,还是多花点时间了解业务吧!

  3. 重构的难点在哪?

    答:技术上的困难总有办法,但是沟通上的困难却似不可逾越的鸿沟,因为工作的日常除了编码,更多的是:和产品互怼、与测试撕逼、向领导交差,所以,程序员们,提升情商吧!

我觉得,最重要的,是进行心态建设,遇到难关不要怕,永远相信自己可以挺过去,毕竟知识是死的,人是活的,只要我们"有恒",就算再难的东西,用"蛮劲"去"猛攻",终将拿下!

相关推荐
啦啦9118865 分钟前
【版本更新】Edge 浏览器 v142.0.3595.94 绿色增强版+官方安装包
前端·edge
语落心生6 分钟前
Apache Geaflow推理框架Geaflow-infer 解析系列(一)Geaflow-Infer 模块简介
架构
语落心生9 分钟前
Apache Geaflow推理框架Geaflow-infer 解析系列(三)环境初始化流程
架构
语落心生12 分钟前
Apache Geaflow推理框架Geaflow-infer 解析系列(二)整体架构设计
架构
蚂蚁集团数据体验技术23 分钟前
一个可以补充 Mermaid 的可视化组件库 Infographic
前端·javascript·llm
LQW_home32 分钟前
前端展示 接受springboot Flux数据demo
前端·css·css3
q***d17338 分钟前
前端增强现实案例
前端·ar
IT_陈寒39 分钟前
Vite 3.0 重磅升级:5个你必须掌握的优化技巧和实战应用
前端·人工智能·后端
JarvanMo44 分钟前
Flutter 3.38 + Firebase:2025 年开发者必看的新变化
前端
Lethehong1 小时前
简历优化大师:基于React与AI技术的智能简历优化系统开发实践
前端·人工智能·react.js·kimi k2·蓝耘元生代·蓝耘maas