7

我发现自己经常开发新的 Julia 模块,同时在工作中使用这些模块。所以我将有一个 IPython (Jupyter) 笔记本,其中包括:

using DataFrames
using MyModule

然后我会做类似的事情:

x = myfunction(7, 3)

但我必须修改那个函数,不幸的是,到那时我不能简单地做

using MyModule

再次。我不太确定为什么;我认为调用using只是声明可用模块以使全局范围知道它们,然后当实际需要名称时,运行时在当前加载的模块中搜索定义(以 开头Main)。

那么不应该using MyModule简单地刷新已声明模块中项目的定义吗?为什么我必须完全停止并重新启动内核才能使用我更新的功能?(是因为名称只绑定到使用function关键字声明的函数一次吗?)

我看过Julia Workflow TipsTmp,但我没有发现整个tst.jl系统非常简单或优雅......至少对于笔记本来说。

有什么建议么?

4

1 回答 1

2

我认为这句话中有很多道理都归功于一位 Juno 开发人员: Jupyter notebook 用于处理数据。Juno IDE 用于处理代码。

Jupyter 非常适合在笔记本样式中使用模块,您获得的输出是可重现的。Juno 和 REPL 的开销更少,让您可以继续启动新会话(更快的测试,并修复您注意到的问题),打开多个选项卡以跟踪复杂模块周围的代码,并且可以使用调试器(在 v0.5 中)。它们针对不同的使用阶段解决不同的开发问题。我认为,如果您在错误的工作中使用了错误的工具,那么您就是在逆潮流而动。

于 2016-08-10T05:33:11.807 回答