ScrumJet on GitHub的实现(在撰写本文时)在任务,类别和板的存储模块之间共享基本相同的功能。这是通过移动相同的代码来实现的,该代码大量使用?MODULE
宏到scrumjet_datastore.hrl
。 scrumjet_task.erl
,scrumjet_category.erl
和scrumjet_board.erl
中的每一个都包含scrumjet_datastore.hrl
,并且没有在本地定义的功能。
当没有任何错误时,这非常有效。但是,如果我需要调试,那么调试器会调出空模块而不是定义函数的头文件。
有谁知道如何使Erlang调试器适用于包含的功能?
答案 0 :(得分:0)
在Erlang中使用includes来共享函数的实现通常不是一个好主意。它有一些用途,但应该在常规应用程序代码中避免使用。
正如我在2009年所提到的,我遵循了Zed和Adam Lindberg的建议,并使用了带参数化方法的数据存储模块。