【发布时间】:2014-03-15 12:10:35
【问题描述】:
我一直想知道如何正确使用 REPL 来编写可重用代码,而不是一次性试验。对于 REPL 开发风格的各种优势有很多强烈的意见,我想在实践中检查一下,但我不明白预期的工作流程是什么。
假设我在 REPL 中打开现有模块(+样本/测试数据),并以交互方式创建新功能/修复错误。取得了巨大的成功——它现在按预期使 foobar 实现了 frobnicates!但现在呢?我应该如何将更改和添加恢复到我的模块和版本控制中?
将所有 REPL 状态转储到文件仅适用于初始创建,不适用于修改或添加现有代码(因此,几乎所有开发) - 它需要保留模块、cmets 等之间的拆分等内容。从 REPL 历史复制粘贴到每个文件中的相关位置似乎是一项繁琐的工作,而且很容易出错。如何确保修改后的函数具有我在 REPL 中的确切最终版本,并且我没有忘记一些?
为此推荐的最佳做法是什么?
恕我直言,这个问题与语言无关,但如果不是,让我们假设 Haskell 或 Python,因为 Lisp 是它自己的世界,我对它还不够熟悉。
【问题讨论】:
-
我一直在问自己这个确切的问题 - 它似乎确实是基于语言的,因为一些 REPL 胜过其他人。 REPL-Driven Development