(我使用“工作流程”一词 - 不是指异步工作流程的意义 - 而是在“git工作流程”的意义上,即您如何将其作为开发的一部分使用)
玩了一段时间的F#后,我开始开发我的第一个F#应用程序。我来自c#/vb。在观看各种演示/讲座之后 - 不管是对还是错 - 我开始使用fsi作为主要开发“引擎”,并在该领域内开展工作。如果我遇到需要调试的问题,我倾向于将有问题的函数拆分成较小的部分,并检查这些部分是否正常工作以尝试调试问题。
然而,为了使fsi中的代码量可管理,一旦我对所做的内容满意,我就将其移动到一个.fs文件中,并且使用#load将.fs文件加载回fsi。随着应用程序变得越来越大,这可能开始感觉有些笨重,因为当我需要重构时,我不得不重新引入fs文件中的内容并更改运行的内容,以便再次使代码正常工作,然后将代码推回到.fs文件中。此外,这种风格并不是真正的测试优先方法,因此我没有获得建立测试集的好处。(我还可能错过设置断点/步进代码的能力,这在某些情况下例如递归,可以比分解函数部分更快地诊断错误-虽然也许这在VS11中是可用的,但我没有正确设置)...所以我认为我可能没有最优化地做事情,或者没有以正确的方式考虑事情。
我想知道其他人如何开发应用程序。您主要使用fsi还是从tdd开始?应该将tdd方法作为主要的开发工具,FSI仅在实现更复杂的算法,数据探索等方面使用吗?
我看过了这个问题,显然它有助于指向各种F#的tdd框架,但我仍然很想了解经验丰富的F#开发人员的工作流程。
非常感谢。
玩了一段时间的F#后,我开始开发我的第一个F#应用程序。我来自c#/vb。在观看各种演示/讲座之后 - 不管是对还是错 - 我开始使用fsi作为主要开发“引擎”,并在该领域内开展工作。如果我遇到需要调试的问题,我倾向于将有问题的函数拆分成较小的部分,并检查这些部分是否正常工作以尝试调试问题。
然而,为了使fsi中的代码量可管理,一旦我对所做的内容满意,我就将其移动到一个.fs文件中,并且使用#load将.fs文件加载回fsi。随着应用程序变得越来越大,这可能开始感觉有些笨重,因为当我需要重构时,我不得不重新引入fs文件中的内容并更改运行的内容,以便再次使代码正常工作,然后将代码推回到.fs文件中。此外,这种风格并不是真正的测试优先方法,因此我没有获得建立测试集的好处。(我还可能错过设置断点/步进代码的能力,这在某些情况下例如递归,可以比分解函数部分更快地诊断错误-虽然也许这在VS11中是可用的,但我没有正确设置)...所以我认为我可能没有最优化地做事情,或者没有以正确的方式考虑事情。
我想知道其他人如何开发应用程序。您主要使用fsi还是从tdd开始?应该将tdd方法作为主要的开发工具,FSI仅在实现更复杂的算法,数据探索等方面使用吗?
我看过了这个问题,显然它有助于指向各种F#的tdd框架,但我仍然很想了解经验丰富的F#开发人员的工作流程。
非常感谢。
S