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.