【发布时间】:2008-09-30 07:59:27
【问题描述】:
是否有人在大型 Java 项目中使用过noweb literate 编程工具,其中必须在不同的子目录中生成多个源代码文件?你是如何用 noweb 管理这个的?是否有任何资源和/或最佳实践?
【问题讨论】:
标签: java literate-programming noweb
是否有人在大型 Java 项目中使用过noweb literate 编程工具,其中必须在不同的子目录中生成多个源代码文件?你是如何用 noweb 管理这个的?是否有任何资源和/或最佳实践?
【问题讨论】:
标签: java literate-programming noweb
Noweb 将转储相对于当前工作目录或您指定的绝对路径的文件。只是不要在文件名的末尾使用 * (以避免插入 # 预处理器指令)。我建议使用 %def 和 @ 来显示您定义和使用名称的位置。
<</path/to/file.java>>=
reallyImportantVariable += 1;
@ %def reallyImportantVariable
noweb 让您重新排序和(真正的胜利)重用 sn-ps 代码,我认为 javac 无法理解。
我同意,由于大多数人都希望您使用 javadoc,因此您可能正在逆流而上使用 noweb。
【讨论】:
如果生成的中间代码可以指向原始源文件以允许调试和分析编译器错误,则文学编程会发挥最佳作用。这通常意味着 Java 不支持的预处理器支持。
另外,对于 Java 来说,文学编程确实不是必需的,因为最初需要严格的顺序 - 这促使 Knuth 编写了一个工具以将 sn-ps 以适当的顺序放在一起 - 不存在。文学编程的最后一个好处,即能够编写关于代码的散文,也可以作为 Javadoc 获得,它允许您将所有内容都作为 cmets 放入。
对我来说,为 Java 进行文字编程没有任何好处,只有麻烦(想象一下获得 IDE 支持)。
您考虑的任何特殊原因?
【讨论】: