主页 > 快资讯 > 正文

拯救你的旧代码库,不得不看的 11 条军规(2)

2017-07-10 09:25来源:how123编辑:顾小北

扫一扫

分享文章到微信

扫一扫

关注99科技网微信公众号

  自动化你的所有测试,如果你已经有 CI 的经验则尽快使用它,并确保您的测试运行足够快,以便在每次提交后运行全套测试。

  Instrumentation 和日志

  如果旧平台仍然可以增加 Instrumentation,在一个全新的数据库表中执行此操作,为你可以考虑的每个事件添加一个简单的计数器,并添加一个单个函数来实现此功能,以根据事件的名称来增加这些计数器。

  这样,你可以使用一些额外的代码行实现带有时间戳的事件日志,你将了解到有多少事件导致另一种事件。

  举例来说,用户打开应用程序,用户关闭应用程序。如果两个事件导致一些后端请求,那么这两个计数器应该在长期上保持不变,差异是当前打开的应用程序的数量。

  如果你看到更多的应用程序打开,而不是应用程序关闭,你知道必须有另一种应用程序结束的方式(例如崩溃)。

  这个简单的技巧可以将每个后端应用程序变成一个类似的簿记(bookkeeping)系统,就像一个真正的簿记系统那样,所有的数字必须匹配,确保它们在所有用到的地方没有问题。

  随着时间的推移,这个系统的健康监控变得非常宝贵,并且将成为源代码控制系统变更日志的一个很好的伴侣,你可以在其中确定每个错误引入的时间点,以及对各种情况产生影响的计数。

  我通常保留这些计数器的分辨率为 5 分钟(因此每小时记录 12次),但如果你的系统有更少或更多事件,则可能需要修改这个时间间隔。所有计数器使用同一个数据库表,因此每个计数器只是该表中的一列。

  每次只修改一个点

  在添加新功能或修复错误的同时,不要陷入同时改进代码以及修改代码运行平台的陷阱。这会导致很多头大的问题。

  平台迁移

  如果你决定将应用程序迁移到另一个平台,那么请先执行此操作,但要保持一切功能完全一样。你可以添加更多的文档或测试,但不能超过这一点,所有业务逻辑和相互依赖关系应该保持原样。

  架构变化

  接下来要解决的是改变应用程序的架构(如果需要)。这个时候,你可以随意更改代码的较高级别结构,通常通过减少模块之间的水平链接数量,从而减少与最终用户进行任何交互时代码活动的范围。

  如果旧代码本质上是一体的,现在将是一个很好的时机使其更加模块化,将大型功能分解成较小的功能,但是保留变量和数据结构的名称。

  架构修改并不总是可行,如果特别不幸运,那么可能需要非常深入理解代码才能进行任何架构更改。

  如果你同时进行高级别更改和低级别更改,至少需要将其限制在一个文件,或最坏情况下限制在一个子系统,以便尽可能限制更改的范围。否则你可能很难调试刚才所做的更改。

  低级重构

  到目前为止,你应该对每个模块的功能有很好的了解,并为实际工作做好准备:重构代码以提高可维护性,并使代码具备扩展新功能的能力。

  这很可能是项目中耗时最多的一部分,文档需要随之进行,在完整编写文档介绍并彻底了解一个模块之前,不要随意更改模块。

     投稿邮箱:jiujiukejiwang@163.com   详情访问99科技网:http://www.fun99.cn

相关推荐
灵光闪应用升级 不会代码也能用AI生成小游戏 灵光闪应用升级 不会代码也能用AI生成小游戏

12月4日消息,今日,通用AI助手灵光宣布重要升级,上线闪游戏功能。区别于传

快资讯2025-12-04

AI变现新路径?ChatGPT代码曝光广告计划,CEO曾称 AI变现新路径?ChatGPT代码曝光广告计划,CEO曾称

【TechWeb】人工智能领域的“纯净”时代或将被打破。近日,开发者Tibor Blaho在社

快资讯2025-12-02

微软Win10/Win11被披露安全漏洞,可提权访问你的隐 微软Win10/Win11被披露安全漏洞,可提权访问你的隐

IT之家 11 月 22 日消息,科技媒体 techlusive 昨日(11 月 21 日)发布博文,报道称

快资讯2025-11-22

双11“精神囤货”指南:华为音乐、视频、阅读, 双11“精神囤货”指南:华为音乐、视频、阅读,

又是一年双十一,当购物车被各种生活好物填满,你是否想过,也该为自己的休

快资讯2025-11-12

Steam错误代码101不用慌!网络优化、DNS更换等多招 Steam错误代码101不用慌!网络优化、DNS更换等多招

Steam平台作为全球知名的数字游戏发行与社交平台,凭借其丰富的游戏库和便捷

快资讯2025-09-10

文件移动缓慢?揭秘五大幕后真凶,让你的电脑 文件移动缓慢?揭秘五大幕后真凶,让你的电脑

在日常电脑使用中,文件移动速度缓慢成为许多用户面临的困扰,这一问题不仅

快资讯2025-08-30

低代码物联网平台:赋能行业,加速物联网应用 低代码物联网平台:赋能行业,加速物联网应用

在数字化转型的浪潮中,低代码物联网平台正逐渐成为连接物理世界与数字世界

快资讯2025-08-25

Steam错误代码137解决方案:优化网络、清理缓存轻 Steam错误代码137解决方案:优化网络、清理缓存轻

Steam平台,作为游戏爱好者的首选之地,近期却让不少玩家遭遇了错误代码137的

快资讯2025-07-30

电脑数据备份全攻略:七大实用方法守护你的数 电脑数据备份全攻略:七大实用方法守护你的数

在数字化日益盛行的当下,电脑已成为我们工作、学习及日常生活中不可或缺的

快资讯2025-07-29

抖音个性化推荐揭秘:大数据与AI如何精准匹配你 抖音个性化推荐揭秘:大数据与AI如何精准匹配你

在数字娱乐的浪潮中,抖音以其独特的魅力吸引了无数用户,让人不禁好奇:为

快资讯2025-07-24