机器学习模块化:编写可测试且易读的代码
在机器学习项目中,代码的质量至关重要。接手他人编写的复杂代码库往往会让人感到沮丧,因为阅读和理解这些难以捉摸的代码,并负责修复、更新和支持它们,是一件令人气馁的事情。本文将探讨复杂代码和复杂脚本的问题,并提供一些编写可测试且易读代码的最佳实践。
复杂代码与复杂脚本的区别
在深入探讨之前,我们需要明确“复杂”和“复杂”代码之间的区别。这两个术语在语法上可能看起来相似,但在代码中,它们有着明显的不同。
复杂代码库是对特定封装代码(如函数或方法)可以遍历的分支路径的经验评估。 for 循环、条件语句、匹配的 switch 语句以及传入参数的功能状态更改等元素都会增加代码的复杂性。由于一段封装代码可以执行许多“操作”,因此代码可能产生的结果数量非常高。复杂的代码库通常需要大量的测试,以确保它们在所有可能的条件下都能正确运行。这种复杂性也使得代码库比那些功能分支路径较少的代码库更难理解。
而复杂脚本则是指编写方式使得难以确定代码如何运行的脚本。这种“阅读和理解的难度”是一种高度主观的评估,很大程度上取决于阅读代码的人。不过,大多数有经验的开发人员对于什么是复杂脚本和非复杂脚本可以达成一个普遍的共识。
复杂脚本可能是在反复修补代码(为修复延迟的技术债务而进行代码改造)后达到这种状态的。这种代码可能是链式的,使用糟糕的命名约定,以难以阅读的方式重复使用条件逻辑,或者只是随意使用不常见的简写符号。
代码库可以是这些元素的混合:
- 复杂但不复杂:这是机器学习代码库具有挑战性但可接受的状态。
- 既不复杂也不复杂:这也是
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



