是否有Javadoc的一些好的现代替代品?[关闭]


80

让我们面对现实:您无需成为设计师即可看到默认的Javadoc看上去很丑陋

网络上有一些资源提供了重新样式化的Javadoc。但是默认行为代表了产品,并且应该看起来相当合理。

另一个问题是,与其他类似资源相比,Javadoc的可用性不是最新的。

大型项目很难使用Firefox的快速搜索进行导航。

实际问题:
是否有任何独立(桌面)应用程序能够以比浏览器更有用的方式浏览现有Javadoc?
我正在考虑诸如Mono文档浏览器之类的东西。

理论上的问题:
是否有人知道,如果有计划以某种标准化的方式发展Javadoc?
编辑: 有关此主题的Sun Wiki的有用链接


4
如果javadoc能够生成有效的HTML 4.01或XHTML页面,我将感到高兴。
akarnokd

2
您有什么便利性问题?
basszero

15
为什么有人会反对呢?我认为这是一个合理的问题:+1
Daniel Sloof 09年

2
(X)HTML不应是Javadoc的唯一方法。浏览器是用于访问(本地)知识库的非常有限的工具。
ivan_ivanovich_ivanoff 2009年

14
我个人喜欢Javadoc。明确,简洁,明确。另一方面,MSDN网站...
samoz

Answers:


42

我创建了一个Markdown(java)Doclet,它将以Markdown格式的文本获取源注释,并创建相同的HTML Javadocs。

新的doclet还会对文本进行一些样式调整,但是在此阶段不会更改生成的HTML。

这样可以解决HTML-in-java-commenting问题,这可能是当前Javadoc最大的可用性问题。


21

我不认为Javadoc的概念已经过时。据我所知,这些概念是几年前植根于名为doxygen的产品中的,该产品仍可用于其他语言(即在Objective-C中被大量使用)。甚至有它的前身-看看Donald Knuth用来创建TeX(精简编程)的编程环境。

但是,只有一个程序代码和文档来源是一个有趣的想法。

除此之外,还可以使用JavaDoc工具支持的插件系统根据您的特殊需要定制文档的表示形式。您可能会提供一个插件(与我们一样),可以直接发布到可通过Web直接访问的数据库中。使用协作,任何人都可以在文档中提供其他评论或澄清,以使它们回到原始来源。


1
请查看ScalaDoc2 scala-lang.org/api/current,然后再说一遍Javadoc尚未过时。:-)尽管我承认或多或少都具有相同的基本概念,但这只是一种更好的实现方式。一个新的javadoc工具实现可能会做同样的事情。
汉斯·彼得·斯托尔2013年

13

Javadoc是我见过的最好的源代码自动文档生成系统。很大一部分是因为它是如此简单-如果我愿意的话,即使使用5岁的手机,我也可以浏览javadocs!尽管我同意可以进行一些改头换面,尤其是JDK很难浏览,但我不敢完全重新发明轮子,因为我们目前拥有的是一个RESTful,易于使用的解决方案,可以正常工作几乎在任何地方。


1
好了,因为页内链接(例如http://download.oracle.com/javase/6/docs/api/java/lang/String.html#String(byte[]))使用了括号,方括号和其他不允许的字符,所以它们是无效的。这导致它们在某些浏览器中损坏。
乔伊(Joey)2010年

1
顺便说一句,对此评论的更新,我实际上确实认为如今的scaladoc2(请参阅scala-lang.org/api/current/index.html)实际上比javadoc更好,尽管主要是因为它从javadocs借来了很好的内容,然后添加了还有一些其他漂亮的东西。
Esko

2
另一个更新是,javadoc系统在JDK7中进行了全面的改进,如今看起来相当漂亮,以供参考,请查阅官方API javadoc
Esko

是的,但是太丑了!
Ziggy 2014年

@Ziggy然后制作您自己的CSS或使用上述API生成一个完全独特的文档页面?:P
Esko 2014年

11

最近,我收到一封邮件,其中指出Sun正在致力于现代化Javadoc HTML输出。从邮件中说:

我们提议对JDK7的javadoc / doclet进行改进。项目Wiki页面位于 http://wikis.sun.com/display/Javadoc/Home。作为建议的改进的一部分,将修改javadoc输出的UI。新的设计屏幕截图将上传到项目Wiki。javadoc输出标记将被修改为与HTML和WCAG 2.0兼容的有效标记。

因此,即使有些晚,也肯定仍在进行中。但是,在我看来,Javadoc的最大缺点之一是它与HTML的紧密结合。许多类都有包含纯文本HTML的Javadoc,也依赖于输出为HTML。不幸的是,但是我认为这不会随时改变。尽管如此,这意味着开发人员可以自由地在HTML中包含他们想要的任何内容,这些内容可能是无效的,格式不正确的等等。因此,改编javadoc工具的输出只是其中一部分,而另一部分则不会。 t并且不能改变,因此仍然存在。

至于浏览文档,我也觉得HTML文档有点笨拙。我通常在Eclipse中使用Javadoc视图。它也有缺点(速度慢,您无法真正搜索),但对于大多数情况而言,它都是Good Enough™。


好消息 !!!谢谢 !!!我现在将编辑问题以提供此有用的链接。
ivan_ivanovich_ivanoff 2009年

@ivan_ivanovich_ivanoff,也许您也可以向Sun团队表达您的疑虑。听起来如果他们能让您开心,它将使我们所有人受益。
托尔比约恩Ravn的安徒生

5

我个人仍然觉得Javadoc非常有用。特别是因为它是标准化的。我不知道可以找到更容易浏览的任何主要文档样式(这可能很主观,但是例如,我个人觉得使用MSDN太可怕了)。

对于搜索:使用Javadoc搜索框架,使使用各种Javadoc更加容易。可作为Firefox的用户脚本Google Chrome扩展程序使用


1
在我看来,Javadoc搜索框架仅在左侧框架中搜索程序包和类名,这很有用,但没有全文搜索那么有用。
格伦·劳伦斯

4

为了回答您的实际问题,我用谷歌搜索并询问了朋友,并提出了这些问题。Forrestdoc,doclet和doxygen。

第二个问题,我想说的是,它不是很“ Web-oh-twoeye”,但至少保证可以在脱机环境中工作,并且它很小,可以与您的API一起提供。我不喜欢使用框架,但是对于javadoc来说效果很好。我尚未看到任何更改它的计划。Eclipse在读取,解释和生成Javadoc方面提供了一些支持。


3

您可能想以一种不太进取和霸道的方式来表述。大多数人都不在乎技术资源是什么样子,而“ Web 2.0还不够!” 听起来像胡言乱语。

您究竟会认为“更多可用”是什么?就个人而言,我绝对希望使用全文搜索和更好用的浏览器,而AJAX可能会为您提供帮助。

好吧,关于JavaDoc的好处是,它与过时的相反-它可以任意扩展。您为什么不继续编写可生成所需API doc的doclet

到目前为止,为什么没有其他人这样做(显然是这种情况),这是任何人的猜测-也许没有人会像您一样强烈地感受到它。


1
1)事实上,人们对可用性的印象取决于良好的设计。2)AJAX-对于本地file://资源?3)我敢肯定,C / C ++生态系统中没有人会像我一样强烈地对一致性命名感到满意,但这不会使一致性命名的需求无效。
ivan_ivanovich_ivanoff 2009年

2
1)那么您究竟会认为“好的设计”是什么?我认为,常规的JavaDoc是经过精心设计的。2)我想这不是真正的AJAX,但是实际上应该可以实现类似的功能。3)仍然,对于大多数人来说,当前的JavaDoc看起来已经足够好了,到目前为止,没有人愿意再编写一个更好的JavaDoc了-这并不是那么困难。
Michael Borgwardt,2009年

1
1)标准部分:结构化的数据,而不是HTML。实现部分:一个用Java编写的桌面应用程序;)3)我认为可以找到许多志愿者来改进Javadoc,但是要使其变得严肃起来就需要JSR。实现此主题不现实。
ivan_ivanovich_ivanoff 2009年

@ivan_ivanovich_ivanoff:您认为需要哪些结构化数据?为什么不编写产生这种格式的javadoc-doclet?而且我绝对反对桌面应用程序的想法,因为它将您锁定在特定的应用程序上,以查看文档。
Mnementh,2009年

2

有一个DocBook doclet。DocBook是一种比(X)HTML更丰富的文档类型,并且更适合描述技术内容。从DocBook源代码中,您可以生成各种不同的输出格式。


2

我个人想要一个比HTML(因此标签笨拙)的JavaDoc更易读的“注释文档”标准。

例如,此处使用的MarkDown将是出色的,易于阅读的源代码,并且在源代码外部格式良好。

借助当前的JavaDoc,我想很多人都会使用JavaDoc注释,但是实际上并没有尽他们所能记录文档。我敢肯定,每个人都已经浏览了API的在线JavaDoc,该文档没有文档记录或几乎没有文档记录,因此使用起来比应有的难度更大。

代码重新格式化程序(例如,在Eclipse中,或者可能在源提交时)并不能完全解决问题,这些代码重新格式化程序会完全破坏您可能已将JavaDoc注释(例如,项列表)中的所有可读结构分解为一个大文本块,除非您确实希望在其中使用两个回车符)。


2

有谁知道,如果有计划以某种标准化的方式发展Javadoc?

相应的JSR(JSR 260),它指定了Javadoc的增强功能,目前已从JDK 7中剔除。计划的概述(来自此站点):

升级Javadoc以提供更丰富的标签集,以允许Javadoc文档的结构化表示。该JSR涵盖:方法和字段的分类,类和包的语义索引,静态方法,工厂方法,不赞成使用的方法与普通方法的区别,属性访问者的区别,将信息组合和拆分为视图,嵌入示例和常见用例,和更多。

JDK 7的总体前景十分严峻


1

JavaDoc本身非常灵活,因为您可以用自定义doclet替换标准doclet,以提供满足项目特定需求的内容。

在我一直从事的项目上,我们为产品和完全集成了JavaDoc的产品创建了一个基于HTML / XML的文档系统(使用JS上的客户端XSLT 2.0)。为此,使用了一个自定义doclet来生成XML格式的JavaDoc数据,它使用了tagoup来确保代码注释中的HTML标记格式正确。

这样,我们就可以使用单页应用程序(类似于桌面工具)来提供交互式用户体验,而所有这些都是从浏览器内部进行的,而无需任何服务器端代码/基础结构。查看器包括标准功能,例如搜索,树形导航等。

这是指向大量文档中的示例入口点的链接: JavaDoc viewer示例

这也是一张图片: 在此处输入图片说明


0

一个智能的可搜索javadoc查看器:

很多次,我都面临着浏览JavaDoc的问题。我在寻找类似于Adnroid doc搜索选项的内容。最后我得到了类似的东西。如果您使用firefox,解决方案就在这里。

  1. 安装插件GreaseMonkey,这是我们看到的一种自定义网页。(我们需要自定义任何Java文档页面,因此我们可以搜索类名) https://addons.mozilla.org/zh-CN/firefox/addon/greasemonkey/

  2. 为了使油膏猴子正常工作,我们需要一些用户脚本进行自定义。这可以由滑脂自动下载。从JavaDoc搜索框架JavaDoc增量搜索安装用户脚本。

这对我来说很棒。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.