您的位置:首页 > 其它

DTE 和 DCE

2008-10-24 08:28 169 查看
11.5 第十一章小结

这一章的主题主要是函数编程的重构,我们已经看到了很多的示例和概念。我们首先讨论了在数学意义上的重构,可以看到,在数学意义上,可以很容易推导出"代码",因此,可以看到一个特定的改变在何时改正。由于其根源在数学中,函数式编程通常有相同的属性。

我们首先探讨如何能够使用函数类型,以减少代码重复,这是重构的简单情况。然后,我们看到,函数式编程如何容易地跟踪在代码中的相关性,因此,我们可以看到特定的重构是否是正确的。

下一步,我们重点关注使用 xUnit.net, 进行函数式编程的单元测试。学会如何组合单元测试,使用 F# Interactive 进行交互式测试,因此,如果你担心前面章节中交互式测试,你现在知道,交互式测试只是较大的测试中的一个部分。此外,我们还演示了不变性如何简化了测试代码,因为,我们只需要测试,一个函数是否给出预期的结果,而不需要担心其副作用。

接着,我们关注了延迟性(laziness)。我们已经看到,延迟性可以用于缓存计算的结果,以便当我们再次访问这个值时,代码会更有效地运行。只要我们只使用不可变的数据结构,这种修改不会改变程序的结果,所以,我们可以把它看作是另一种形式的有用的重构。我们还学习了延迟性可以用于表达有趣的函数概念,比如,无穷的数据类型。事实上,这只是下一章的预告,我们将讨论 C# 的迭代和 F# 序列表达式,这两个使我们能够以更自然的方式来表达序列值。这是一个更大概念的一个示例,所以,我们还将介绍如何改变或扩展通常的代码含义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: