Projektek és csomagok¶
Projektek¶
Valamilyen szempontból elkülöníthető kódot és adatokat nagyobb csoportba, projektekbe lehet szervezni. Nyílt, szabadabb felépítésű, a projekt jellegzetességeit követi. Dinamikus felépítésű. Kötelező elemei:
manifest fájl: a projekt környezetének leírására és a betöltési paraméterek megadására
speciális projekt osztály: a főbb műveletek és információk leírására
Manifest¶
Szabványos Json fájl, a főkönyvtárban kell elhelyezni «manifest.meta.json» néven.
Kötelező, általános tartalom:
«type»: a manifest által leírt típus: projekt, erőforrás, csomag (project, resource, package).
«name»: a projekt vagy csomag neve.
«id»: egyedi azonosító
«version»: a csomag vagy projekt verziószáma.
«requires»: a szükséges csomagok vagy szimbólumok listája (függőség).
«imports»: a betöltendő fájlok vagy alkönyvtárak listája.
Csomag opciók:
«generator»: a csomagot létrehozó neve.
«provides»: a csomag neve vagy szimbólumok listája.
Opcionális tartalom:
«resources»: globális erőforrás definíciók.
«options»: egyedi adatok
Project osztály¶
Speciális osztály, egy projekt egy példányt tartalmazhat. Elemei:
előre definiált projekt típusokat származtathat, például az ModemaProject csomagból
specifikus erőforrásokat tárolhat: szerzők, licenc, projekt műveletek és célok
mint egy klasszikus osztály tartalmazhat változókat és metódusokat
különböző «célokat» tartalmazhat, amik erőforrás is metódus párosok.
A projekt betöltésekor először a manifest fájl alapján betöltődnek a szükséges elemek, létrejön egy a projekt nevét tartalmazó publikus raktár és környezet kontextus. A futtatókörnyezet eltárolja a példányosított osztállyt és opcionálisan meghívja az onLoad() metódust, amennyiben létezik. Ha adatlekérés céljából jön létre egy példány a projekt osztályból, a konstruktor végrehajtódik, de az onLoad() nem. Emiatt megfelelően kell elosztani az inicializációs hívásokat. Bezáráskor az onClose() és a destruktor kerül végrehajtásra.
Az eltérő projekt típusok miatt opcionális az onSave(), végrehajtása környezetfüggő, bezáráskor nem kerül meghívásra (ellentétben az onClose() metódussal).
Erőforrások¶
A projekt osztály önmaga is egy csoportosítás, az ebben elhelyezett erőforrásoknak ezzel korlátozott lesz a hatóköre. Amennyiben szükséges, a manifest fájl is tartalmazhat bejegyzést osztott erőforrások megadásához.
Projekt célok¶
Speciális erőforrások és metódusok segítségével projekt célok definiálhatók, fájlok vagy adatbázis elemek létrehozásához.
általános cél (
#TargetResource
): meglévő adatokat dolgozza fel, rendszerint nem függő kimenetet hoz létre.dinamikus cél (
#DynamicTargetResource
): általában raktárból dolgozik, frissít vagy új adatot hoz létre.tisztítás (
#CleanTargetResource
): átmeneti adatokat töröl vagy alaphelyzetbe hoz.tesztelés (
#TestTargetResource
): adatok vagy programkódok helyességét ellenőrzi.dokumentáció készítés (
#DocResource
): különböző adatokból vagy programkódokból automatikus dokumentációt hoz létre.egyedi típus szintén használható.
Interaktív parancssorból, parancsszkriptből vagy weboldalon lekérdezhetők és végrehajthatók. Használatuk vizualizációhoz és dokumentációhoz is nagyon előnyös.
Csomagok¶
A projektek létrehozhatnak egy vagy több csomagot, amik osztott adatoknak vagy osztott könyvtárnak felelnek meg. Felépítése a projektekhez hasonló, de tartalmaznak speciális elemeket. Közvetlenül betölthetők raktárakba, «használatra készek». Inkább statikus megközelítésűek, verzionálhatóak. Lényegében rendszerfüggő pillanatképekhez hasonlíthatóak.
Könyvtárfa¶
Az ajánlott könyvtár nevek a következők:
Code/: a projekt osztály bővítése, kiegészítő kódok.
Documentation/: csomag dokumentáció.
Dynamic/: dinamikus tartalom, a csomagkészítő írhat bele.
Library/: megosztott tartalom csomag készítéshez
Tests/: a csomag tesztek és eredmények.