Tapasztalatok a Java Platform Module Systemmel

Nagy rajongója vagyok a modularizálás témakörének, mint ezt több korábbi posztban is említettem (Modularizáció Servlet 3, Spring és Maven környezetben, Java Application Architecture). A Java Application Architecture könyv szerint a modularizálás első eszköze a csomagok, azonban ezek nem adnak megfelelő felügyeletet a láthatóság felett, hiszen nem lehet definiálni egy csomag láthatóságát, így azt sem lehet megmondani, hogy egy csomagban lévő osztályok, interfészek, stb. mely más csomagban található osztályok, interfészek, stb. számára legyenek láthatóak. A következő szint a JAR állományok, azonban az alapvető elvárásokat ez sem teljesítette, mint pl. az előbb említett láthatóságokkal kapcsolatos igényeket. Erre egy kezdeti megoldást a build eszköz (pl. Maven) adott, multi-module projektek használatával. Azonban itt sem lehetett definiálni, hogy egy modulon belül mi látható, és mi nem. Kizárólag modulokat lehetett definiálni, és ezek közötti függőségeket. A másik megoldás a Java részét nem képező OSGi jelentette, azonban ennek nehézkessége elég sokakat eltántorított.

A Java 9-ben jelent meg egy megoldás a fentebb vázolt problémákra, Java Platform Module System néven. Elég régóta húzódik ennek kiadása, egészen a Java 7-től kezdve ígérgették, akkor még Jigsaw néven. Figyelembe kell venni azonban azt is, hogy nem csak a lehetőségét adták meg a modularizációnak, hanem a teljes JDK-t is modularizálták. Már nem egy rt.jar állományban van a teljes osztálykönyvtár, hanem a jmods könytárban van majdnem száz jmod kiterjesztésű állomány, mely a modulokat tartalmazza.

Ebben a posztban egy példa alkalmazás implementációja közben szerzett tapasztalatokat szeretném megosztani. A projekt elérhető a GitHubon.

További posztok migrálása

Régebben jó ötletnek tűnt, hogy a nem olyan részletesen kifejtett, valamint a nem Javahoz kapcsolódó posztokat külön blogon posztolom. Azóta készült egy felmérés is, amiben a legtöbben azt válaszoltátok, hogy nem zavarna titeket a kevert tartalom. Így a könnyebb karbantarthatóság miatt a régebbi cikkeket is importáltam ide. Mivel 2014-es a legfrissebb poszt, elég elavultnak számíthatnak, de hátha még valakinek segíthet. Részletes lista a poszt végén olvasható. Kedvencem a Flightradar24 cikk, mely a repülőgépek helymeghatározásáról szól.

Ékezetes karakterek PDF állományban

Ismét egy régi tartozásomat pótolom. Aki próbált már magyar nyelvű PDF dokumentumot generálni, akár Java, akár más programozási nyelven, belefuthatott abba a problémába, hogy az ékezetes karakterek rosszul jelentek meg.

Ebben a posztban azt mutatom meg, hogyan lehet ékezetes karaktereket helyesen megjeleníteni olyan eszközökkel, mint az iText, PDFBox vagy a DocBook (Docbkx Tools használatával). De ha már itt tartunk, megnézzük, hogy mik is azok a betűtípusok, hogyan lehet osztályozni, milyen főbb betűtípusok vannak, valamint hogyan lehet ezeket használni PDF dokumentumban. Megnézzük hogyan épül fel ebből a szempontból egy PDF dokumentum, mi a kódolás, és milyen kódolást kell használni.

Miért lettem mentor egy Java fejlesztő képzésben?

Magyarországon egyre több junior programozóképzés indul. Ahogy egyre többekhez jut el, egyre több tévhit és félreértés terjed az interneten. Mivel egy ilyenben veszek részt, mint mentor, szeretném egy kicsit erről az oldalról is bemutatni. Minden reklámtól mentesen, és sokszor a technológiára koncentrálva, hiszen ez az én fő területem. 2016 végén kerestek meg a Training360-tól, hogy csatlakozzak a Yellowroadhoz, kidolgozni a Java junior képzés tematikáját, valamint mentorként részt venni a csoportok munkájában, embereket hozzásegíteni egy új karrierhez. Kis gondolkozási idő után igent mondtam. Hogy miért? És hogyan próbálok minden nap helyt állni? Erről szól ez a poszt.

Előző posztomat hasonló témában Programozó szeretnék lenni, menjek-e egyetemre? címmel írtam.

Disclaimer: 2001 óta Java fejlesztőként, architektként dolgoztam, rengeteg projektben vettem részt, programozót interjúztattam, és közben folyamatosan oktattam. Jelenleg a junior fejlesztőképzéssel foglalkozó Yellowroad egyik mentora vagyok. Az itt közölt poszt csak a saját személyes véleményemet tükrözi. Fenntartom a jogot, hogy a posztot folyamatosan bővítgessem, javítgassam.

Programozó szeretnék lenni, menjek-e egyetemre?

Ez a poszt, a címéből is következik, egy könnyedebb témával foglalkozik. Manapság különböző fórumokon jön elő a kérdés, hogy érdemes-e egyetemre mennie annak, aki programozó szeretne lenni. Most itt próbálom részletesen összefoglalni, hogy később tudjak hivatkozni rá.

Hasonló cikkeim a Miért ne fejlesszünk saját keretrendszert?, Ki is az a Java architect? vagy a Java források tanuláshoz.

Következő posztomban a manapság egyre jobban terjedő fejlesztőképzésről fogok írni.

Disclaimer: Mivel a Debreceni Egyetemen végeztem 2001-ben, főleg erről van tapasztalatom. Azóta Java fejlesztőként, architektként dolgoztam, és rengeteg embert, köztük végzős egyetemistát is interjúztattam, és rengeteget oktattam. Jelenleg a junior fejlesztőképzéssel foglalkozó Yellowroad egyik mentora vagyok. Az itt közölt poszt csak a saját személyes véleményemet tükrözi. Fenntartom a jogot, hogy a posztot folyamatosan bővítgessem, javítgassam.