What would be a good alternative to inline Java documentation, i.e. can one have a separate docs file somehow mapped to a java source file?
I have never liked huge comment sections littered in code.
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.Sign up to join this community
I have been using Javadoc feature of package comments to avoid littering source code with verbose documentation comments:
With Javadoc 1.2, package-level doc comments are available. Each package can have its own package-level doc comment source file that The Javadoc tool will merge into the documentation that it produces. This file is named
package.html(and is same name for all packages). This file is kept in the source directory along with all the
*.javafiles. (Do not put the
packages.htmlfile in the new doc-files source directory, because those files are only copied to the destination and are not processed.)
The Javadoc tool processes
package.htmlby doing three things...
Using above feature, I had detailed verbose documentation for classes and methods in the package stored separately of code, in a dedicated html file. As for Javadoc comments in java files, I just wrote brief explanations there, adding text like
If needed, refer to package documentation for more details.
One thing I particularly liked about this was that although docs were in the separate file and in a format more convenient for large docs (html), it has been stored close enough to related source code and all the updates in it were automatically picked up during the build.
Starting from Java 1.5, you can alternatively put a
package-info.java along with the classes of the package. This file should look like this:
/** * Javadoc for your package here */ package com.yourpackage;
JLS documentation suggests that this is preferred way:
The following scheme is strongly recommended for file-system-based implementations: The sole annotated package declaration, if it exists, is placed in a source file called
package-info.javain the directory containing the source files for the package...
It is recommended that
package-info.java, if it is present, take the place of
package.htmlfor javadoc and other similar documentation generation systems. If this file is present, the documentation generation tool should look for the package documentation comment immediately preceding the (possibly annotated) package declaration in package-info.java. In this way,
package-info.javabecomes the sole repository for package-level annotations and documentation. If, in future, it becomes desirable to add any other package-level information, this file should prove a convenient home for this information.