Eclipse platform
Elnevezési megállapodások

Utolsó felülvizsgálat: 2002. június 4. -- Eclipse projektverzió: R2.0

Az Eclipse platform elnevezési megállapodásai és irányelvei:

Java csomagok

Az Eclipse platform a Java-csomagok gyűjteményét tartalmazza. A csomag névterének kezelése a Sun csomagelnevezési irányelveinek megfelelően történik; a részcsomagok nem hozhatók létre a csomag részfa tulajdonosának előzetes beleegyezése nélkül. Az Eclipse platform csomagok mind az org.eclipse részcsomagjai. Az első org.eclipse utáni névösszetevőt csomagnévnek hívják. Az org.eclipse következő fő csomagjai kerültek összerendelésre az Eclipse 2.0 kiadásában:
org.eclipse.ant[.*] - Ant támogatás
org.eclipse.compare[.*] - Compare támogatás
org.eclipse.core[.*] - Platform törzs
org.eclipse.debug[.*] - Hibakeresés
org.eclipse.help[.*] - Súgó támogatás
org.eclipse.jdi[.*] - A Java Debug Interface (JDI) Eclipse implementációja
org.eclipse.jdt[.*] - Java fejlesztőeszközök
org.eclipse.jface[.*] - JFace
org.eclipse.pde[.*] - Bedolgozó-fejlesztő környezet
org.eclipse.search[.*] - Keresési támogatás
org.eclipse.swt[.*] - Standard Widget Toolkit
org.eclipse.team[.*] - Munkacsoport-támogatás, valamint verzió- és konfigurációkezelés
org.eclipse.tomcat[.*] - Apache Tomcat támogatás
org.eclipse.ui[.*] - Munkaterület
org.eclipse.update[.*] - Frissítés/telepítés
org.eclipse.webdav[.*] - WebDAV támogatás
A következő csomagnév-szegmensek fenntartottak:
internal - egy API-t nem tartalmazó belső implementációs csomagot jelöl
tests - egy API-t nem tartalmazó csomagot jelöl, amely csak tesztkészleteket tartalmaz
examples - egy API-t nem tartalmazó csomagot jelöl, amely csak példákat tartalmaz
Ezek a nevek minősítőként használatosak, és csak a fő csomagnevet követően kell megjelenniük. Például:
org.eclipse.core.internal.resources - Helyes használati mód.
org.eclipse.internal.core.resources - Helytelen. Az internal szekvencia megelőzi a fő csomagnevet.
org.eclipse.core.resources.internal - Helytelen. Az internal nem azonnal követi a fő csomagnevet.
Kiegészítő információként tekintsük át az Eclipse platform szerkezetét: a platform két részre osztható, a törzsre és a felhasználói felületre. Minden, ami törzsként van besorolva, független az ablakrendszertől; a törzstől, nem pedig a felhasználói felülettől függő alkalmazások és bedolgozók megjelenítés nélkül futhatnak. A törzs és a felhasználói felület megkülönböztetése nem igazodik az API - nem API különbségtételhez; mind a törzs, mind a felhasználói felület tartalmaz alkalmazás programozási felületet. Az Eclipse platform felhasználói felületét munkaterületnek hívják. A munkatarület egy magas szintű felhasználói felület keretrendszer, csatlakoztatható komponensekből összeállított kifinomult felhasználói felületekkel rendelkező termékek készítésére. A munkaterület a JFace, az SWT és a platformtörzs fölé épül. Az SWT (Standard Widget Toolkit) egy alacsony szintű, operációsrendszer-független eszköz a kommunikációhoz a natív ablakkezelő rendszerrel. A JFace egy középszintű felhasználói felület keretrendszer, amely összetett UI-darabok -- például tulajdonság-megjelenítők -- készítésénél hasznos. Az SWT és a JFace definíció szerint felhasználói felület. A Java tooling egy integrált Java fejlesztőeszköz, amely a munkaterület fölé épül. Kiegészítő információk vége.

API csomagok  API csomagok azok, amelyek az ISV-k számára elérhetővé teendő osztályokat és felületeket tartalmazzák. Az API csomagok nevének érthetőnek kell lennie az ISV-k számára. Kis számú olyan csomagnak kell lennie, amelyre az ISV-knek muszáj emlékezniük, mert ha ezek túlságosan bő választékban állnak rendelkezésre, akkor az ISV-k számára nehezen megjegyezhető, melyeket kell importálniuk. Egy API-csomagban minden nyilvános osztály és felület API-nak számít. Az API-csomagok nevének tartalmaznia kell az internal, a tests vagy az examples elemeket, hogy ne legyen összekeverhető a nem API csomagok elnevezési sémájával.

Belső implementációs csomagok  Minden csomag, amely része a platformimplementációnak, de nem tartalmaz olyan az ISV-k számára megjelenítendő API-kat, belső implementációs csomagnak számít. Minden implementációs csomagot internal jelzővel kell ellátni, és a címkének közvetlenül a fő csomagnév után kell következnie. Az ISV-k számára elő van írva, hogy minden internal jelzést viselő csomag tiltott terület. (Az ".internal." karaktersorozatra lefolytatott egyszerű szöveges keresés észleli a gyanús hivatkozásokat a forrásfájlokban; ugyanígy az "/internal/" gyanús a .class fájlokban.)

Tesztkészlet csomagok  Minden tesztkészletet tartalmazó csomagot tests jelzővel kell ellátni, és a címkének közvetlenül a fő csomagnév után kell következnie. A teljesen automatikus tesztek számítanak normának; az org.eclipse.core.tests.resources például tartalmazhat automatikus teszteket az API-khoz a következő elemben: org.eclipse.core.resources. Az interaktív teszteket (amelyek a tesztelő aktív részvételét igénylik) az interactive jelzővel kell ellátni utolsó csomagnév-szegmensként; az org.eclipse.core.tests.resources.interactive például tartalmazhatja a megfelelő interaktív teszteket.

Példacsomagok  Minden, az ISV-knek szállított, példákat tartalmazó csomagot az examples jelzővel kell ellátni, és a címkének közvetlenül a fő csomagnév után kell következnie. Példa: az org.eclipse.swt.examples példákat tartalmazhat az SWT API használatával kapcsolatban.

További szabályok:

Osztályok és felületek

A Sun elnevezési szabályai kijelentik, hogy:

Az osztálynevek legyenek főnevek, írásmódjuk kis- és nagybetűs, az első betű kisbetű. Minden belső szó első betűje nagy betű. Próbáljunk egyszerű és jellemző osztályneveket használni. Használjunk teljes szavakat -- lehetőleg óvakodjunk a mozaikszavak és a rövidítések használatától, hacsak a rövidítés nem szélesebb körben használt, mint a hosszú forma (példa: URL, HTML).
 
Példák:
    class Raster;
    class ImageSprite;
 
A felületek nevében a nagybetűket az osztálynevekhez hasonlóan kell használni.

A felületek nevében követjük az "I", mint "interface" megállapodást: minden felület neve "I" előtaggal szerepel. Példa: "IWorkspace" vagy "IIndex". Ez a megállapodás elősegíti a kódok olvashatóságát azzal, hogy könnyebben felismerhetővé teszi a felületek neveit. (A Microsoft COM felületek is megfelelnek ennek a megállapodásnak.)

További szabályok:

Metódusok

A Sun elnevezési szabályai kijelentik, hogy:

A metódusok nevei legyenek igék, írásmódjuk kis- és nagybetűs, az első betű kisbetű, minden belső szó első betűje nagybetű.
 
Példák:
    run();
    runFast();
    getBackground();
További szabályok:

Változók

A Sun elnevezési szabályai kijelentik, hogy:

A változókat kivéve minden példány, osztály vagy osztályállandó neve kis-és nagybetűs, az első betű kisbetűs. A belső szavak nagybetűvel kezdődnek. A változónevek ne kezdődjenek aláhúzás _ vagy dollár $ jellel, bár mindkettő engedélyezett.
 
A változónevek legyenek rövidek, de értelmesek. A változónév-választás legyen könnyen megjegyezhető -- az alkalmi megfigyelő számára jelezze, mire szánták. Az egykarakteres változónevek használata kerülendő, kivéve, ha ideiglenes, "eldobható" változókról van szó. Az ideiglenes változók neve általában i, j, k, m, n egész számok esetén; c, d és e karakterekhez.
 
Példák:
    int i;
    char c;
    float myWidth;

(Megjegyzés: már nem követjük azt a megállapodást, hogy a nem állandó mezőnevek nevében "f" előtag szerepeljen, például: "fWidget".)

Állandók

A Sun elnevezési szabályai kijelentik, hogy:

A változókkal meghatározott osztályállandók és az ANSI állandók nevét nagy betűkkel kell írni, a szavakat aláhúzással "_" elválasztva.
 
Példák:
    static final int MIN_WIDTH = 4;
    static final int MAX_WIDTH = 999;
    static final int GET_THE_CPU = 1;

Bedolgozók és kiterjesztési pontok

Minden bedolgozónak -- beleértve azokat is, amelyek az Eclipse platform részei, például az Erőforrások vagy Munkaterület bedolgozókat -- egyedi azonosítókkal kell rendelkezniük, a Java csomagok elnevezési mintáját követve. A munkaterület bedolgozók elnevezése például: org.eclipse.ui[.*].

A bedolgozó névtér hierarchikus módon van felügyelve; ne hozzon létre bedolgozót a befoglaló névtér tulajdonosának előzetes beleegyezése nélkül.

A többszörös kiterjesztéseket váró kiterjesztési pontoknak neve legyen többesszámban. Példa: "builders", nem pedig "builder".