Γράψατε το καλύτερο πρόγραμμα Java, με καλά δομημένες κλάσεις και με τον βέλτιστο τρόπο. Μπράβο σας... Να θυμόσασταν όμως και τι κάνει το κάθε τι, αφού παραλείψατε να βάλετε σχόλια.
Για αυτό, ξεκινήστε να βάζετε σχόλια. Όχι όμως οποιαδήποτε σχόλια, αλλά σχόλια που θα σας επιτρέψουν να εξάγετε και html σελίδες, όπως το ωραιότατο JavaAPI.
Θα χρειαστείτε το εργαλείο javadoc, το οποίο έρχεται μαζί με το Java2 SDK.
Στα συμβατά με javadoc σχόλια μπορεί να εμφανίζονται οποιεσδήποτε
νόμιμες HTML ετικέτες, όπως για παράδειγμα οι <p>,
<b>...</b> κλπ.
Επιπλέον, με το
<code>mplah</code>
το κείμενο mplah εμφανίζεται σαν monospaced κείμενο.
Τέλος, χρησιμοποιώντας το
<blockquote><pre>new Something</prec></blockquote>
δημιουργεί έντονο, monospaced κείμενο.
Γράψτε σελίδες HTML για να παρέχετε κάποια σύνοψη πακέτων και εφαρμογών. Όμως προσοχή, μόνον το κείμενο μεταξύ των tags <body> και </body> λαμβάνεται υπόψην.
Για την τεκμηρίωση βιβλιοθηκών/εφαρμογών το αρχείο είναι καλύτερο να ονομάζεται overview.html και να βρίσκεται πριν από οτιδήποτε άλλο στον κατάλογο. Πρέπει να περιέχει περιγραφή της βιβλιοθήκης ή της εφαρμογής και πως χρησιμοποιείται.
Για τεκμηρίωση πακέτων, χρησιμοποιούνται αρχεία με όνομα package.html και πρέπει να
βρίσκονται στον ίδιο κατάλογο με τον πηγαίο κώδικα του πακέτου. ΠΡΟΣΟΧΗ:
μια και το javadoc
χρησιμοποιεί την πρώτη πρόταση για να δημιουργήσει μια σύνοψη, μην
χρησιμοποιείτε άλλα tags στην πρώτη πρόταση.
Στο package.html
μπορούν να υπάρχουν και javadoc tags όπως @since που
υποδηλώνει πότε δημιουργήθηκε το πακέτο και @deprecated
που σημαίνει ότι το πακέτο αυτό σύντομα θα αφαιρεθεί και θα
αντικατασταθεί από κάποιο άλλο, καθώς και ένα σύνδεσμο προς το πακέτο
που αντικαθιστά την λειτουργικότητά του.
Το javadoc αναγνωρίζει μόνον σχόλια της μορφής:
/** mplah mplah mplah */
Το παρακάτω είναι απόλυτα νόμιμο:
/** This is a method */
public static void method() { }
Ενώ τα:
/* This is something */
public static void method() {
...
}
και
public static void method2() {
/** comment */
}
δεν αναγνωρίζονται από το javadoc και άρα δεν εμφανίζονται στην παραγόμενη τεκμηρίωση.
Τα σχόλια πρέπει να μπαίνουν μετά από τις δηλώσεις για πακέτο (package ...) και τα imports. Η πιο συνηθισμένη
πρακτική είναι να είναι ακριβώς πριν την δήλωση της κλάσης.
* This is a class that does something useful.
*
* @author You (you@yourplace.you)
* @version 1.0
* @see java.util.Random#nextDouble()
*/
| Ετικέτα | Περιγραφή |
| @author | Ο συγγραφέας της κλάσης. |
| @version | Έκδοση της κλάσης. |
| @since | Περιγράφει πότε εμφανίστηκε
αυτή η κλάση. Μπορεί να είναι ημερομηνία ή έκδοση. |
| @link | Παρέχει έναν σύνδεσμο προς κάποιο URL, κάποια κλάση ή σε κάποια μέθοδο. |
| @see | Το ίδιο με παραπάνω, αλλά βάζει τους συνδέσμους κάτω από τν τίτλο "See Also". |
Τα σχόλια πριν από μία μέθοδο πληροφορούν για την λειτουργία της μεθόδου, τα ορίσματα που παίρνει, τι επιστρέφει (αν επιστρέφει), καθώς και άλλες χρήσιμες πληροφορίες (όπως exceptions που μπορεί να προκαλέσει κλπ.).
| Ετικέτα | Περιγραφή |
@param
|
Περιγράφει κάποια από τις παραμέτρους τις μεθόδου και τις νόμιμες τιμές της. Αυτή η ετικέτα ακολουθείται από το όνομα της παραμέτρου, όπως εμφανίζεται στην δήλωση της μεθόδου, και την περιγραφή της. |
@return
|
Περιγράφει την τιμή που επιστρέφεται. Καλύτερα είναι να περιγράφονται και τα όρια των τιμών και το πότε επιστρέφεται κάθε τιμή. |
@throws, @exception
|
Περιγράφει
ποια exception μπορεί να προκαλέσει η μέθοδος και για ποιον λόγο. Η
ετικέτα ακολουθείται από τον τύπο της exception και την περιγραφή για
τον λόγο που μπορεί να προκύψει. |
@link
|
Παρέχει έναν σύνδεσμο προς κάποιο URL, κάποια κλάση ή σε κάποια μέθοδο. |
@see
|
Το ίδιο με παραπάνω, αλλά βάζει τους συνδέσμους κάτω από τν τίτλο "See Also". |
@since
|
Περιγράφει πότε εμφανίστηκε αυτή η μέθοδος. Μπορεί να είναι ημερομηνία ή έκδοση. |
Εάν χρειάζονται σύνδεσμοι προς εικόνες, e-mail διευθύνσεις ή οποιοδήποτε άλλο τύπο αρχείου, αυτό γίνεται εύκολα χρησιμοποιώντας τις κλασσικές ετικέτες HTML.
Απλώς, δημιουργήστε τον υποκατάλογο doc-files σε κάθε πακέτο που
έχει κλάσεις ή μεθόδους σε κάποια αρχεία, και τοποθετήστε τα αρχεία σε
αυτόν τον κατάλογο.
Παράδειγμα:
/**
* An example
* <P>
* <a href="doc-files/code_example.java">This is the code example</a>
* <img src="doc-files/image.gif">This is just a simple image</a>
* @author <a href="mailto:me@myHouse.myCountry">Your name</a>
*/