一个做汽配的老客户发来消息:网站跑了八年,jQuery写的,最近想加个在线询价的功能,找了两家报价,一家说改不了只能推倒重做报五万,一家说能改但加完可能会牵出别的问题。网页前端开发面对老项目时,重做还是接着改,是每个企业迟早要面对的选择题,答案没那么绝对。
先判断值不值得动
重构是笔生意账,先问三个问题:过去一年改了几次?网站还承担多少获客任务?现在的代码还能找到维护的人吗?一年改不了两次、询盘也不多的站,重做的钱不如投到新渠道;改版频繁、业务靠它吃饭的站,才值得认真投入。别因为听说jQuery过时就焦虑,技术新旧和能不能赚钱没有直接关系,八年的老站稳稳收着询盘的也大有人在。决定前把三问的答案白纸黑字写下来,和团队一起过一遍再拍板,冲动是重构项目最大的敌人。
渐进式重构的三步走
决定重构也别一口吃成胖子,稳妥的路径是逐步替换:
- 第一步立规矩:新功能一律用新技术栈开发,独立模块独立部署,不再往老代码里堆;
- 第二步改高频:改动最频繁、出问题最多的页面优先迁移,比如产品列表和询盘流程,迁一个验一个;
- 第三步扫尾巴:剩下低频的静态页面最后处理,甚至可以一直留着,没人碰的代码没必要折腾。
这样走的好处是随时可以停,预算跟着节奏走,业务一刻不受影响。推倒重做则要停站、迁数据、重收录,工期两个月起步,中途出岔子的风险全压在一个时间点上。渐进式还有个好处:每迁完一个模块都能单独验收,问题当期发现当期解决,不像推倒重做那样把所有风险攒到最后一次性爆发。节奏稳的重构,才敢放心让它跑在业务上。
重构别砸了自己的收录
老站最值钱的资产是搜索引擎里的收录和排名。重构时三条红线要守住:老页面的网址尽量保持不变,必须变的要做跳转映射;页面标题和内容结构别大动;上线后每周盯一次收录量,掉得厉害立刻回查。网页前端开发的重构,丢收录等于丢客户来源,这条教训见过太多回。
两条建议:让两家以上的技术方分别给出推倒重做和渐进重构的报价对比,数字摆出来再决定;动手前把老站完整备份,包括数据库和图片目录,这一步花不了几百块,是整个项目的保险。比格网络接手老站时习惯先出一份体检报告再谈方案,很多时候结论是修修补补就够,不该花的重做钱我们不建议花。