欢迎光临威尼斯人平台-威尼斯人手机app下载-威尼斯人网上娱乐! | | 收藏本站| 在线留言| 关于鑫福| 联系我们
全国统一服务热线
15888999888
315权威认证 | 三大媒体鼎力推荐 | 上门指导协助办厂
当前位置:官网首页 > 新闻动态 > 公司动态 > 为什么程序员应该避免间接代码?

为什么程序员应该避免间接代码?

文章出处: 人气:发表时间:2019-08-29 15:06

原标题:为什么程序员应该避免间接代码?

本文讨论被间接代码毁掉的可阅读性。

作者 | Matthew Rocklin

译者 | 弯月,责编 | 郭芮

我常常看到有些代码的作者为了抽象,而把细节放入某个外部函数中。请看下面的例子。

加入间接代码之前:

# main.py

ifx.startswith( "foo"):

do_something_with(x)

加入间接代码之后:

# main.py

ifis_foolike(x):

do_something_with(x)

# utils.py

defis_foolike(x):

returnx.startswith( "foo")

这种做法的理由可能包括:

学校老师就是这么教我们的——找到一些功能,抽象出去,然后继续。

避免间接的情况

展开全文

然而,这种添加间接代码的行为也需要付出代价。当其他人阅读这段代码时,他们需要在多个文件定义的多个函数之间跳转。这种非线性的阅读过程更加耗费阅读者的精力。

在写代码的过程中,加入这种间接代码并没有任何问题,写代码的人的脑海中建立了一个抽象模型,因此将这种抽象写入代码是有意义的,感觉很好。但是,当其他人需要快速检查和理解一段代码时,就会遇到大麻烦。这发生在两种重要的情况下:

1、在代码审查期间。当其他人需要在代码合并到主项目之前,检查代码是否合理。这些审查人员需要花费的时间大约是写代码的时间的十分之一。

2、将来的调试。如果代码中存在任何问题,那么将来完全陌生的开发人员将不得不查看这段代码,并搞清楚代码的内容。他们必须在几分钟内理解这段代码,并确定相关的内容。他们没有时间理解代码背后完整的思维过程,而间接的代码会大大减慢理解的过程。

与原来的开发过程相比,现代社区代码中的审查和调试往往是瓶颈。因此,我经常鼓励开发人员避免抽象,并将函数定义写在代码内部。

我们仍然应该使用函数

需要明确的是,我们有很多理由将复杂的逻辑分成多个函数,特别是面对重复代码的时候,或者某些重要的政策可能会在将来发生变化时。因此,我们需要找到一个平衡点。

我希望在大多数情况下,写代码的人能够意识到除了原作者之外,每个阅读代码的人都会感受到间接代码带来的附加成本。

原文:http://matthewrocklin.com/blog/work/2019/06/23/avoid-indirection

作者:Matthew Rocklin,维护与协调Python数字计算生态系统中的多个库,特别是有关高效和可扩展的计算。

访问量:
此文关键词:代码,间接,抽象,py,函数,需要,开发人员,多个