你编程的时候使用不变量吗?

时间:2009-11-07 09:06:24

标签: invariants

我正在修读一个强调使用不变量的中级编程课程。我之前从未使用它们,它们似乎占用了更多的时间来创造。软件工程行业是否强调使用不变量?

3 个答案:

答案 0 :(得分:12)

取决于你问的是谁 - 我使用不变量只是因为它让生活更轻松。学习不变量就像学习盲目学习一样。每次使用不变量时,您都会了解有关代码的更多信息。如果你在循环中插入不变量作为注释,它会帮助读者很多。我会说使用不变量使得源代码的创建和维护更便宜,并且使您能够创建更复杂的算法,这些算法仍然可以维护。

与OOP相比,我从未经历过任何人通过使用不变量来浪费时间。

答案 1 :(得分:8)

我不太考虑不变量 - 不像前/后条件那么多。老实说,我应该更多地考虑不变量。

要考虑的一件事是不可变性 - 如果你正在使用OO语言,但在可能的地方使类型不可变,你不需要担心不变量:如果状态是有效的,那么它将是保持有效。

听起来你的课程可能过分强调不变量......但它确实取决于你正在做什么。在某些情况下,它们比其他情况更合适。也许你的讲师只是他们的忠实粉丝,在他们真正有用的领域有很多经验。

答案 2 :(得分:3)

一旦你了解了不变量及其含义,就会改变你对代码的理解方式。我的意思是,我很少写明确的不变量。但是我经常在脑海里想到我正在编写的代码中的不变量。这导致您编写更简单的代码。在大多数情况下,您最终得到的代码非常简单,您无需撰写有关不变量的明确注释。然而,不了解不变量的人编写的代码要复杂得多:)