我的任务是研究一段Python代码,它运行在一个调度器上,根据某些事件的对应来安排代码的发布。代码导入了一些模块,它基本上是作为某个类的方法的扩展编写的,定义在orchestrator模块中(扩展是正确的术语,还是继承?不幸的是,我还没有学习OOP)。我被要求:
代码没有文档,而最初的开发人员几乎没有时间和我讨论这个问题。幸运的是,orchestrator开发人员可以帮助我更多,所以一切都没有丢失。从很高的层次上,我知道代码应该做什么(获取一个巨大的对象,包含时间序列数据和大量元数据,通过REST调用获得更多的数据,进行一些计算并返回更新的巨型对象),但是我肯定不知道细节(我不知道代码的一行是做什么的)。我不是专业程序员。我应该遵循什么方法?我在想:
def:
和func()
语句,并为每个函数编写一个或多个测试)说得通吗?我错过了什么重要的东西吗?
代码实际上被用作服务(意味着一些工程师运行代码并获取一些数据,她/他将使用这些数据向内部客户提供服务)。代码将被迁移到不同的平台(另一个编排器),并成为一个产品(即,它将直接由内部客户使用)。我的雇主希望我提供上面要点中的输出,以便记录代码正在做什么以及如何实现。这样就方便了参与迁移的开发人员的工作:如果他们只是给出代码&它的依赖性就像现在一样,没有一行文档(甚至没有注释!)如果没有对代码的结构有任何提示,他们可能不会玩得很开心。
发布于 2017-08-28 17:02:35
一个部分是使结果与处理>完成有关的可验证。
奇怪的结果可以通过密集的日志记录(可能到数据库)并给出一些标记(时间戳,自动增量键)来分析。
类似的报告,例如Excel工作表或PDF,应该收到表单序列号。
多个条件,甚至可能是嵌套的,应该以一种更声明的方式进行转换:一个由一些变量组成的状态,产生一些特定的处理程序。这样,状态就会记录在一个地方,处理程序就会立即清除。
声纳-棉线/发现虫。依赖性分析:没有周期,没有乒乓(java 9模块最好作为重构目标)。对于代码重复(类似的代码块),请确保同时进行重构。避免许多小的代码改进(无休止的“重构”)。
使事物可量化:源数,行数;重构状态,英里石头。随着重构的进行,保持统计数据和图表。重构可能被低估了,而且相当模糊。
https://softwareengineering.stackexchange.com/questions/356390
复制相似问题