软件设计原则与技巧深度解析
1. 断言使用建议
在编写代码时,对于断言的使用有一些重要的原则。不要捕获 AssertionError 异常,要确保断言失败时程序终止。同时,在断言语句中包含描述性错误信息,并记录错误,以便后续调试和修正问题。
例如,原代码中可能存在捕获 AssertionError 且断言语句为函数调用的情况,这存在诸多问题。函数调用可能有副作用,且不一定可重复,在调试时也难以查看导致错误的结果。
更好的做法是:
result = condition.holds()
assert result > 0, "Error with {0}".format(result)
2. 关注点分离原则
关注点分离是一个在多个层面应用的设计原则,不仅适用于底层代码设计,在更高的抽象层面也很重要。不同的职责应分配到应用程序的不同组件、层或模块中,程序的每个部分只负责一部分功能,对其他部分一无所知。
该原则的目标是通过最小化涟漪效应来提高软件的可维护性。涟漪效应指软件中一个变化从起始点的传播,可能导致一系列异常和故障。
此概念与契约式设计(DbC)原则相关,每个关注点可通过契约来强制执行。当契约被违反并引发异常时,我们能知道程序的哪部分出现故障以及哪些职责未履行。不过,关注点分离原则的应用范围更广,不仅适用于函数、方法或类之间的契约,还适用于 Python 模块、包和其他软件组件。
超级会员免费看
订阅专栏 解锁全文
970

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



