编写健壮 Python 代码:从最小意外法则到类型系统
在软件开发中,编写健壮、可维护的代码是每个开发者的目标。本文将深入探讨如何遵循最小意外法则,以及 Python 类型系统对代码健壮性的影响。
1. 最小意外法则
在软件开发过程中,代码的意图传达至关重要。当代码违背了最小意外法则,即代码的行为让未来的协作者感到意外时,就会引发一系列问题。
1.1 意外行为的危害
意外的代码行为会导致混淆,进而产生错误的假设,最终引发软件中的 bug,使软件变得不可靠。例如,在作者早期的职业生涯中,曾遇到一个由于内存损坏而崩溃的 bug。在调试过程中,使用调试器或添加过多的打印语句会影响代码的执行时间,导致 bug 不再出现,这就是所谓的“海森堡 bug”。经过两周的艰苦调试,最终发现一个名为 getEvent 的函数实际上在设置无效数据的事件。这个函数本身的实现是正确的,但由于没有明确表达其意图,作者至少花了三天时间才发现这个 bug。
1.2 复杂度带来的意外
代码中的意外很多时候源于复杂度,复杂度可分为必要复杂度和意外复杂度:
- 必要复杂度 :是领域内固有的复杂度。例如,深度学习模型和优化对象 - 关系映射(ORM)都具有必要复杂度,因为它们涉及到复杂的内部工作机制和大量可能的用户输入。对于必要复杂度,我们无法完全消除,但可以尝试将其控制在一定范围内,以免其扩散到整个代码库,变成意外复杂度。
- 意外复杂度 :是指代码中产生多余、浪费或令人困惑的语句的复杂度。当系统随着时间的推移而发展,开发人员
超级会员免费看
订阅专栏 解锁全文
836

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



