在大型Java项目上使用noweb

时间:2008-09-30 07:59:27

标签: java literate-programming noweb

是否有人在大型Java项目中使用noweb文字编程工具,其中必须在不同的子目录中生成多个源代码文件?你是怎么用noweb来管理的?那里有资源和/或最佳实践吗?

2 个答案:

答案 0 :(得分:5)

Noweb将转储相对于当前工作目录的文件,或者指定的绝对路径。只是不要在文件名末尾使用*(以避免插入#preprocessor指令)。我建议使用%def with @来显示你定义和使用名称的位置。

<</path/to/file.java>>=
  reallyImportantVariable += 1;
@ %def reallyImportantVariable

noweb让你重新排序和(真正的胜利)重用代码片段,我不认为javac会理解。

我同意,因为大多数人都希望你使用javadoc,所以你可能正在游戏中使用noweb。

答案 1 :(得分:3)

如果生成的中间代码可以指向原始源文件以允许调试和分析编译器错误,那么

Literate Programming会发挥最佳作用。这通常意味着预处理器支持,Java不支持。

另外,Literate Programming对于Java来说实际上并不是必需的,因为最初需要一个严格的顺序 - 这是促使Knuth编写一个工具以适当的顺序将片段组合在一起 - 不存在。文学编程的最终好处,即能够撰写有关代码的散文,也可以作为Javadoc使用,它允许您将所有内容作为注释。

对我来说,Java的文字编程没有任何好处,只有麻烦(想象得到IDE的支持)。

您正在考虑它的任何特殊原因?