
最近在折腾一个老项目,用的是 struct2,ibatis,springMvc,memcache,solr,activeMq.
我打算整改成 springBoot,mybatis,redis,es,kafka。。
但是我对这个项目一知半解。问了交接的人,总说让我自己看代码,也没有文档。
有时候 memcache 莫名其秒就宕了。还有些定时任务也是看得莫名其秒,完全不知道更新了哪些表。
关键是很多功能也还不清晰,不知道还有哪些雷。
这个项目现在的某些接口的日查询,估计几十万吧。
不重写,以后没法做新需求。如果重写,又可能有整改失败的风险。
这个项目如果整改成功,我的水平应该会有很大提高。如果改不好,那肯定是要背锅的。
要不要重写?如何重写一个老项目?有哪些坑要注意?
1 SmiteChow 2019 年 10 月 11 日 ut 覆盖下重构 1. 假设 a 模块依赖 b 模块,现在要重构 b 模块 2. 梳理 b 模块所有对外接口,需要保留的使用 ut 覆盖,需要重构的先使用旧接口组合实现并使用 ut 覆盖 3. 重构 b 模块,确保所有 ut 不被破坏 |
2 coolair 2019 年 10 月 11 日 via Android 别重写 |
3 zhao28 2019 年 10 月 11 日 如果是希望提升技术和重新整理的话,可以私下用自己的时间,我们这边之前有一个项目,也是到了无法维护的程度,后面用私下的时间重写了,测试没有什么问题,就替换了生产的 |
4 IMCA1024 2019 年 10 月 11 日 摁个 F12 开这系统各个功能点都摁,看请求一直到 dao 层。 看多几个大概就差不多了 |
5 hotcool100 2019 年 10 月 11 日 NB 的人(比如我)是可以快速熟悉上手老项目,且能修复完善,而不是从头开始。 给别人扫尾的工作我做的太多了,典型的一次就是.NET 同事去修改某网站,网站使用的是国外比较小众的.NET 框架,他三个月没搞定,最后我出马了,从学习掌握到开发完成前后就花了一周时间。 |
6 Caballarii 2019 年 10 月 11 日 吃饱撑的 |
7 taogen 2019 年 10 月 11 日 via Android 老有没有单元测试代码 |
8 zjsxwc 2019 年 10 月 11 日 via Android 重构不是重写 |
9 haiyang416 2019 年 10 月 11 日 除非你对项目了如指掌,否则不要重构。 不过私下重构着玩倒是无所谓,只要你的时间足够。 |
10 ai277014717 2019 年 10 月 11 日 从写单元测试开始 |
11 GuangXiN 2019 年 10 月 11 日 没有测试保证就不要轻易搞大的重构 |
12 LeeSeoung 2019 年 10 月 11 日 没有测试,重构风险很大。。如果只是想练手 可以自己玩 然后跟线上的对比 |
13 javaWeber OP @hotcool100 NB 的人(比如我)是可以快速熟悉上手老项目,且能修复完善,而不是从头开始。 给别人扫尾的工作我做的太多了,典型的一次就是.NET 同事去修改某网站,网站使用的是国外比较小众的.NET 框架,他三个月没搞定,最后我出马了,从学习掌握到开发完成前后就花了一周时间。 --------------------------------------------------------------------------------------------- 犀利犀利~ |
14 javaWeber OP |
15 javaWeber OP @zjsxwc 重构不是重写 ----------------------------------------------------------------------------------------------- 我个人理解的重构是某个类、接口、代码块或者服务的重新组织提炼,这个项目已经千疮百孔了。。应该算是重写吧。 |
16 lithium4010 2019 年 10 月 12 日 建议动手干起来完事儿 大不了失败了也是老板背锅 |
17 lithium4010 2019 年 10 月 12 日 具体做的时候具体问题仔细分析做好就行了 |
18 lithium4010 2019 年 10 月 12 日 看你上来就全部框架换掉,不清楚收益是什么 |