经过多年的牛仔编码,我决定拿起一本有关如何编写高质量代码的书。我正在阅读Robert Cecil Martin撰写的Clean Code。在第3章(函数)中,有关于二进位函数的部分。这是这本书的摘录。
甚至明显的二进位函数
assertEquals(expected, actual)
也有问题。您已将实际次数放置在预期的位置几次?这两个参数没有自然顺序。预期的实际排序是需要实践学习的惯例。
作者提出了一个令人信服的观点。我从事机器学习工作,并一直遇到这种情况。例如,sklearn库(可能是该领域中最常用的python库)中的所有度量标准函数都要求您注意输入的顺序。作为一个例子sklearn.metrics.homogeneity_score需要作为输入labels_true
和labels_pred
。该函数的作用不太相关,相关的是,如果您切换输入的顺序,则不会引发任何错误。实际上,切换输入等效于使用库中的另一个函数。
然而,这本书并没有继续提到诸如assertEquals
。我想不出一种assertEquals
针对上述功能的固定解决方案。有什么好的做法可以解决此问题?