Συμβάσεις ονοματοθεσίας και οδηγίες για την πλατφόρμα Eclipse:
org.eclipse.ant[.*] - Υποστήριξη AntΤα παρακάτω τμήματα ονομάτων πακέτων δεσμεύονται:
org.eclipse.compare[.*] - Υποστήριξη σύγκρισης
org.eclipse.core[.*] - Πυρήνας πλατφόρμας
org.eclipse.debug[.*] - Εντοπισμός και διόρθωση σφαλμάτων
org.eclipse.help[.*] - Υποστήριξη βοήθειας
org.eclipse.jdi[.*] - Υλοποίηση του Eclipse για τη "Διεπαφή εντοπισμού και διόρθωσης σφαλμάτων Java" (JDI)
org.eclipse.jdt[.*] - Εργαλεία ανάπτυξης Java
org.eclipse.jface[.*] - JFace
org.eclipse.ltk[.*] - Υποδομή γενικών, γλωσσικών εργαλείων
org.eclipse.osgi[.*] - ΑΡΙ του Eclipse για την αλληλεπίδραση με το OSGi
org.eclipse.pde[.*] - Περιβάλλον ανάπτυξης πρόσθετων λειτουργιών
org.eclipse.search[.*] - Υποστήριξη αναζήτησης
org.eclipse.swt[.*] - Standard Widget Toolkit
org.eclipse.team[.*] - Υποστήριξη συνεργασίας και διαχείριση εκδοχής και ρυθμίσεων
org.eclipse.text[.*] - Πλαίσιο λειτουργίας επεξεργασίας κειμένου
org.eclipse.tomcat[.*] - Υποστήριξη Apache tomcat
org.eclipse.ui[.*] - Πάγκος εργασίας
org.eclipse.update[.*] - Ενημέρωση/εγκατάσταση
org.eclipse.webdav[.*] - Υποστήριξη WebDAV
internal - δηλώνει ένα εσωτερικό πακέτο υλοποίησης το οποίο δεν περιέχει APIΑυτά τα ονόματα χρησιμοποιούνται ως προσδιοριστικά και πρέπει να εμφανίζονται μόνο μετά το κύριο όνομα πακέτου. Για παράδειγμα, η
tests - δηλώνει ένα πακέτο που δεν είναι API το οποίο περιέχει μόνο σουίτες δοκιμών
examples - δηλώνει ένα πακέτο που δεν είναι API το οποίο περιέχει μόνο παραδείγματα
org.eclipse.core.internal.resources - Σωστή χρήση
org.eclipse.internal.core.resources - Λανθασμένη χρήση. Το internal προηγείται του κυρίου ονόματος πακέτου.
org.eclipse.core.resources.internal - Λανθασμένη χρήση. Το internal δεν ακολουθεί αμέσως μετά το κύριο όνομα πακέτου.
Ας κάνουμε μια παρένθεση για να εξηγήσουμε τον τρόπο με τον οποίο είναι δομημένη η πλατφόρμα Eclipse: Η πλατφόρμα Eclipse χωρίζεται στον Πυρήνα και το Περιβάλλον χρήστη. Οτιδήποτε ταξινομείται ως πυρήνας είναι ανεξάρτητο του συστήματος παραθύρων και οι εφαρμογές και οι πρόσθετες λειτουργίες, οι οποίες εξαρτώνται από τον πυρήνα αλλά όχι από το περιβάλλον χρήστη, μπορούν να εκτελεστούν χωρίς γραφικό περιβάλλον. Η διάκριση μεταξύ πυρήνα και περιβάλλοντος χρήστη δεν συνάδει με τη διάκριση μεταξύ API και μη API, καθώς και ο πυρήνας και το περιβάλλον χρήστη περιέχουν API. Το τμήμα περιβάλλοντος χρήστη της πλατφόρμας Eclipse είναι γνωστό ως ο πάγκος εργασίας. Ο πάγκος εργασίας αποτελεί ένα πλαίσιο περιβάλλοντος χρήστη υψηλού επιπέδου για τη δόμηση προϊόντων με σύνθετα περιβάλλοντα χρήστη τα οποία δομούνται από πρόσθετα στοιχεία. Ο πάγκος εργασίας δομείται επάνω από το JFace, το SWT και τον πυρήνα της πλατφόρμας. Το SWT (Standard Widget Toolkit) αποτελεί ένα μέσο χαμηλού επιπέδου και ανεξάρτητο πλατφόρμας και λειτουργικού συστήματος για τη "συνομιλία" με το ενσωματωμένο σύστημα παραθύρων. Το JFace αποτελεί ένα πλαίσιο περιβάλλοντος χρήστη μεσαίου επιπέδου, το οποίο είναι χρήσιμο για τη δόμηση σύνθετων κομματιών του περιβάλλοντος χρήστη όπως οι λειτουργίες προβολής ιδιοτήτων. Τα SWT και JFace αποτελούν περιβάλλοντα χρήστη εξ ορισμού. Τα εργαλεία Java αποτελούν ένα Java IDE το οποίο είναι δομημένο επάνω από τον πάγκο εργασίας. Τέλος της παρένθεσης.
Πακέτα API Τα πακέτα API είναι αυτά τα οποία περιέχουν κλάσεις και διεπαφές που πρέπει να καταστούν διαθέσιμα στα ISV. Τα ονόματα των πακέτων API πρέπει να γίνονται κατανοητά από το ISV. Ο αριθμός των διαφόρων πακέτων, τα οποία το ISV χρειάζεται να θυμάται, θα πρέπει να είναι μικρού μήκους, αφού η αφθονία των πακέτων API μπορεί να δυσκολέψει τα ISV να γνωρίζουν ποια πακέτα χρειάζεται να εισάγουν. Εντός ενός πακέτου API, όλες οι δημόσιες κλάσεις και διεπαφές θεωρούνται API. Τα ονόματα των πακέτων API δεν θα πρέπει να περιλαμβάνουν τις λέξεις internal, tests ή examples για την αποφυγή σύγχυσης με το σχήμα για την ονοματοθεσία των πακέτων που δεν είναι API.
Εσωτερικά πακέτα υλοποίησης Όλα τα πακέτα τα οποία αποτελούν μέρος της υλοποίησης της πλατφόρμας αλλά δεν περιέχουν API, το οποίο θα έπρεπε να εκτεθεί στα ISV, θεωρούνται εσωτερικά πακέτα υλοποίησης. Όλα τα πακέτα υλοποίησης θα πρέπει να επισημανθούν ως internal, με το προσδιοριστικό να εμφανίζεται αμέσως μετά το κύριο όνομα πακέτου. Τα ISV θα ενημερωθούν ότι όλα τα πακέτα με την επισήμανση internal υπερβαίνουν τα όρια. (Μια απλή αναζήτηση κειμένου για το ".internal." εντοπίζει ύποπτες παραπομπές στα αρχεία πρωτογενούς κώδικα. Παρομοίως, το "/internal/" είναι ύποπτο στα αρχεία .class).
Πακέτα σουίτας δοκιμών Όλα τα πακέτα τα οποία περιέχουν σουίτες δοκιμών θα πρέπει να επισημανθούν ως tests, με το προσδιοριστικό να εμφανίζεται αμέσως μετά από το κύριο όνομα πακέτου. Οι πλήρως αυτοματοποιημένες δοκιμές αποτελούν το πρότυπο, έτσι, για παράδειγμα, το org.eclipse.core.tests.resources θα περιείχε αυτοματοποιημένες δοκιμές για το API στο org.eclipse.core.resources. Οι διαδραστικές δοκιμές (δηλαδή αυτές οι οποίες απαιτούν μια λειτουργία δοκιμών στην πράξη) θα πρέπει να επισημανθούν με το interactive ως το τελευταίο τμήμα του ονόματος πακέτου, έτσι, για παράδειγμα, το org.eclipse.core.tests.resources.interactive θα περιείχε τις αντίστοιχες διαδραστικές δοκιμές.
Παραδείγματα πακέτων Όλα τα πακέτα, τα οποία περιέχουν παραδείγματα που αποστέλλονται στα ISV, θα πρέπει να επισημανθούν ως examples, με το προσδιοριστικό να εμφανίζεται αμέσως μετά από το κύριο όνομα πακέτου. Για παράδειγμα, το org.eclipse.swt.examples θα περιείχε παραδείγματα του τρόπου χρήσης του SWT API.
Επιπρόσθετοι κανόνες:
Οι Οδηγίες ονοματοθεσίας της Sun δηλώνουν ότι
Τα ονόματα κλάσεων θα πρέπει να είναι ουσιαστικά, με ανάμεικτους πεζούς και κεφαλαίους χαρακτήρες και με το πρώτο γράμμα της κάθε εσωτερικής λέξης με κεφαλαίο χαρακτήρα. Προσπαθήστε να διατηρήσετε τα ονόματα κλάσεών σας απλά και περιγραφικά. Χρησιμοποιήστε ολόκληρες λέξεις- αποφύγετε τα αρκτικόλεξα και τις συντομογραφίες (εκτός εάν η συντομογραφία χρησιμοποιείται περισσότερο ευρέως από την ανεπτυγμένη μορφή, όπως το URL ή το HTML).
Παραδείγματα:
class Raster;
class ImageSprite;
Τα ονόματα διεπαφών θα πρέπει να είναι με κεφαλαίους χαρακτήρες όπως τα ονόματα κλάσεων.
Για τα ονόματα των διεπαφών ακολουθούμε το "I" ως τη σύμβαση των διεπαφών: όλα τα ονόματα διεπαφών χρησιμοποιούν το πρόθημα "I". Για παράδειγμα, το "IWorkspace" ή το "IIndex". Αυτή η σύμβαση συμβάλει στην αναγνωσιμότητα του κώδικα κάνοντας τα ονόματα διεπαφών περισσότερο άμεσα αναγνωρίσιμα. (Οι διεπαφές της Microsoft COM συμμερίζονται αυτή τη σύμβαση).
Επιπρόσθετοι κανόνες:
Οι Οδηγίες ονοματοθεσίας της Sun δηλώνουν ότι
Οι μέθοδοι θα πρέπει να αποτελούν ρήματα, με ανάμεικτους πεζούς και κεφαλαίους χαρακτήρες με το πρώτο γράμμα με πεζό χαρακτήρα και με το πρώτο γράμμα κάθε εσωτερικής λέξης με κεφαλαίο χαρακτήρα.Επιπρόσθετοι κανόνες:
Παραδείγματα:
run();
runFast();
getBackground();
Οι Οδηγίες ονοματοθεσίας της Sun δηλώνουν ότι
Εκτός των μεταβλητών, όλες οι χρήσεις, οι κλάσεις και οι σταθερές κλάσεων γράφονται με ανάμεικτους πεζούς και κεφαλαίους χαρακτήρες με το πρώτο γράμμα με πεζό χαρακτήρα. Οι εσωτερικές λέξεις ξεκινάνε με κεφαλαίο γράμμα. Τα ονόματα μεταβλητών δεν θα πρέπει να ξεκινάνε με το χαρακτήρα υπογραμμής _ ή του συμβόλου του δολαρίου $ , ακόμα και εάν επιτρέπονται και οι δύο.
Τα ονόματα μεταβλητών θα πρέπει να είναι μικρού μήκους και κατανοητά. Η επιλογή του ονόματος μεταβλητής θα πρέπει να είναι με βάση το μνημονικό - δηλαδή, να είναι σχεδιασμένο έτσι ώστε να δηλώνει σε ένα τυχαίο παρατηρητή την πρόθεση της χρήσης του. Τα ονόματα χαρακτήρων ενός χαρακτήρα θα πρέπει να αποφεύγονται εκτός εάν πρόκειται για προσωρινές "προς απόρριψη" μεταβλητές. Τα κοινά ονόματα για προσωρινές μεταβλητές περιλαμβάνουν το i, το j, το k, το m και το n για ακεραίους και το c, το d και το e για χαρακτήρες.
Παραδείγματα:
int i;
char c;
float myWidth;
(Σημείωση: δεν ακολουθούμε πλέον τη σύμβαση κατά την οποία για τα μη σταθερά ονόματα πεδίων χρησιμοποιείται το πρόθημα "f", όπως στο "fWidget".)
Οι Οδηγίες ονοματοθεσίας της Sun δηλώνουν ότι
Τα ονόματα σταθερών δηλωμένων κλάσεων μεταβλητών και σταθερών ANSI θα πρέπει να είναι όλα με κεφαλαίους χαρακτήρες με τις λέξεις να χωρίζονται με υπογραμμές ("_").
Παραδείγματα:
static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;
Όλες οι πρόσθετες λειτουργίες, συμπεριλαμβανομένων αυτών που αποτελούν μέρος της πλατφόρμας Eclipse, όπως οι πρόσθετες λειτουργίες πόρων και πάγκου εργασίας, πρέπει να έχουν μοναδικές ταυτότητες που ακολουθούν το ίδιο μοτίβο ονοματοθεσίας όπως τα πακέτα Java. Για παράδειγμα, οι πρόσθετες λειτουργίες του πάγκου εργασίας ονομάζονται org.eclipse.ui[.*].
Γίνεται ιεραρχική διαχείριση του χώρου ονομάτων της πρόσθετης λειτουργίας, οπότε μη δημιουργήσετε πρόσθετες λειτουργίες χωρίς την προηγούμενη έγκριση από τον κάτοχο του περικλειόμενου χώρου ονομάτων.
Τα σημεία επέκτασης τα οποία αναμένουν πολλαπλές επεκτάσεις θα πρέπει να διαθέτουν ονόματα στον πληθυντικό αριθμό. Για παράδειγμα, "builders" αντί για "builder".