关于服务
翻译我将实时网站从不再有人支持的手写引擎迁移。情况通常是一样的:代码多年前为一个狭窄的任务拼凑而成,编写它的人早已离开,每一个小改动都需要几天的猜测,而数据库中保存着多年的真实内容,无法简单地重新输入。我的工作是将这些内容和行为迁移到一个维护的平台上——一个有文档、定期更新,并且世界上有不止一个专家能够阅读的地方。
这从阅读开始,而不是写作。我会仔细查看旧代码和表结构,并整理出一个清单:哪些页面、表单、用户角色和后台作业是真正使用的,哪些表是活的,哪些表已经死了五年。在移动任何记录之前,这个清单会与您达成一致。根据记忆进行的重写总是会丢失一半的小细节——一个每月使用一次的过滤器,一个在注册时发送的信件,一个会计依赖的可打印表单——因此清单是第一步,并成为我们双方检查结果的依据。之后,数据会逐表传输,记录数量进行核对,关系得到验证,地址和重定向被重建,以便搜索流量和旧链接继续有效,模板和表单被迁移,过时的库被替换为受支持的库,设置从代码中提取到配置中。
当数字匹配且内容经过抽样检查时,我才算迁移完成——而不是在新网站在浏览器中打开的那一刻,因为空白页面也能美观地打开。旧版本和数据库的副本在保修期结束之前保持不变,因此总有可以比较的东西和可以退回的地方。您的员工会收到书面说明和现场演示,迁移本身分阶段进行,因此当前网站从第一天到最后一天都能为访客提供服务。
工作内容包括:
— 阅读旧代码和数据库结构,并书面列出真正使用的内容和死掉的内容;
— 数据传输,逐表核对记录数量和记录之间的关系;
— 重建地址和重定向,以确保索引页面和外部链接不被破坏;
— 迁移模板和表单,包括验证和它们触发的信件;
— 用受支持的等效库替换过时的库;
— 将设置与代码分离,以避免环境意外差异;
— 为您的员工提供简单易懂的说明和培训,而不是开发者的行话;
— 一个分阶段的迁移计划,确保网站在整个过程中持续运行。
这从阅读开始,而不是写作。我会仔细查看旧代码和表结构,并整理出一个清单:哪些页面、表单、用户角色和后台作业是真正使用的,哪些表是活的,哪些表已经死了五年。在移动任何记录之前,这个清单会与您达成一致。根据记忆进行的重写总是会丢失一半的小细节——一个每月使用一次的过滤器,一个在注册时发送的信件,一个会计依赖的可打印表单——因此清单是第一步,并成为我们双方检查结果的依据。之后,数据会逐表传输,记录数量进行核对,关系得到验证,地址和重定向被重建,以便搜索流量和旧链接继续有效,模板和表单被迁移,过时的库被替换为受支持的库,设置从代码中提取到配置中。
当数字匹配且内容经过抽样检查时,我才算迁移完成——而不是在新网站在浏览器中打开的那一刻,因为空白页面也能美观地打开。旧版本和数据库的副本在保修期结束之前保持不变,因此总有可以比较的东西和可以退回的地方。您的员工会收到书面说明和现场演示,迁移本身分阶段进行,因此当前网站从第一天到最后一天都能为访客提供服务。
工作内容包括:
— 阅读旧代码和数据库结构,并书面列出真正使用的内容和死掉的内容;
— 数据传输,逐表核对记录数量和记录之间的关系;
— 重建地址和重定向,以确保索引页面和外部链接不被破坏;
— 迁移模板和表单,包括验证和它们触发的信件;
— 用受支持的等效库替换过时的库;
— 将设置与代码分离,以避免环境意外差异;
— 为您的员工提供简单易懂的说明和培训,而不是开发者的行话;
— 一个分阶段的迁移计划,确保网站在整个过程中持续运行。