我听说以下功能会降低可调试性(因为它们是匿名的,调试器无法很好地跟踪它)
- 匿名类
- 内部类
- 闭包块/Lambda 函数
这是真的?
关于您提到的特定功能,已经有一些很好的答案。
一般来说,我想说一些 FP 功能以及以更多 FP 风格进行编程的方面至少与调试体验“交互”。例如,使用高阶函数,可以以无点风格进行编程。当您这样做时,会留下更少的标识符,这意味着例如可以在调试器的“本地”窗口中轻松检查的内容更少。封闭物通常是不透明的,直到你走进它们的身体。
FP 还使用大量控制反转结构(惰性求值只是其中之一,“map”或“iter”而不是“foreach”是另一个),这会改变控制流并可能影响“单步执行”的方式作品。
随着 FP 变得越来越普遍,我预计调试工具将会不断改进。我不清楚某些 FP 是否“本质上”更难调试,但即使这是真的,也不要忘记,关于 FP 的太多信息使得您的代码一开始就不太可能需要调试。 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)