首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何理解、记录和验证遗留代码

如何理解、记录和验证遗留代码
EN

Software Engineering用户
提问于 2017-08-28 13:22:57
回答 1查看 2.3K关注 0票数 3

我的任务是研究一段Python代码,它运行在一个调度器上,根据某些事件的对应来安排代码的发布。代码导入了一些模块,它基本上是作为某个类的方法的扩展编写的,定义在orchestrator模块中(扩展是正确的术语,还是继承?不幸的是,我还没有学习OOP)。我被要求:

  • 了解代码的内部工作原理
  • 了解它使用哪些web服务,访问哪些数据库,等等。
  • 为代码编写单元测试
  • 剖析代码

代码没有文档,而最初的开发人员几乎没有时间和我讨论这个问题。幸运的是,orchestrator开发人员可以帮助我更多,所以一切都没有丢失。从很高的层次上,我知道代码应该做什么(获取一个巨大的对象,包含时间序列数据和大量元数据,通过REST调用获得更多的数据,进行一些计算并返回更新的巨型对象),但是我肯定不知道细节(我不知道代码的一行是做什么的)。我不是专业程序员。我应该遵循什么方法?我在想:

  1. 使用工具构建代码的调用树(该函数调用哪个其他函数),并了解代码的逻辑流。
  2. 开始为代码中的每个函数编写单元代码(基本上,我将搜索def:func()语句,并为每个函数编写一个或多个测试)
  3. 使用分析器查看代码的不同部分花费了多少时间。

说得通吗?我错过了什么重要的东西吗?

代码实际上被用作服务(意味着一些工程师运行代码并获取一些数据,她/他将使用这些数据向内部客户提供服务)。代码将被迁移到不同的平台(另一个编排器),并成为一个产品(即,它将直接由内部客户使用)。我的雇主希望我提供上面要点中的输出,以便记录代码正在做什么以及如何实现。这样就方便了参与迁移的开发人员的工作:如果他们只是给出代码&它的依赖性就像现在一样,没有一行文档(甚至没有注释!)如果没有对代码的结构有任何提示,他们可能不会玩得很开心。

EN

回答 1

Software Engineering用户

发布于 2017-08-28 17:02:35

Hand on approach:

一个部分是使结果与处理>完成有关的可验证。

奇怪的结果可以通过密集的日志记录(可能到数据库)并给出一些标记(时间戳,自动增量键)来分析。

类似的报告,例如Excel工作表或PDF,应该收到表单序列号。

多个条件,甚至可能是嵌套的,应该以一种更声明的方式进行转换:一个由一些变量组成的状态,产生一些特定的处理程序。这样,状态就会记录在一个地方,处理程序就会立即清除。

结构:

声纳-棉线/发现虫。依赖性分析:没有周期,没有乒乓(java 9模块最好作为重构目标)。对于代码重复(类似的代码块),请确保同时进行重构。避免许多小的代码改进(无休止的“重构”)。

使事物可量化:源数,行数;重构状态,英里石头。随着重构的进行,保持统计数据和图表。重构可能被低估了,而且相当模糊。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/356390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档