1. Bevezető
Tizensok éve foglalkozom informatikával, ebben van némi rendszergazdaság és főképp kisebb-nagyobb számítógépek programozása. A Java technológiákkal 10 éve foglalkozom, az utóbbi 6 évben csak és kizárólag Java munkák kerültek ki a kezeim közül. Hét évig oktattam C/C++ és Java nyelvet Pécsett főállásban, s mellékállásban Java programokat írtam, mint egyéni vállalkozó. 2007 közepén munkahelyet és főállást váltottam, Budapestre költöztem a családdal, s jelenleg a Kopint-Datorg Infokommunikációs ZRt alkalmaz, mint senior Java fejlesztő.
Nézzük a Java Forum 2.0 portál rendszert, amely a http://www.javaforum.hu portál mellékterméke. A javaforum.hu – mint közösségi oldal – 2006. májusában indult, akkor még LifeRay portál motorral. Időközben elkezdtem dolgozni alvállalkozóként egy OWR (Online Webépítő Rendszer) nevű szoftveren, amely egy Java alapú portál-építő rendszer – egy pécsi cég terméke. Pár hónap múlva az OWR olyan stádiumba jutott, hogy át tudtam rá tenni a javaforum.hu teljes tartalmát. Az OWR portál motor tette a dolgát, az oldal jól gyarapodott, de az OWR más filozófiával készült, mint szerettem volna, s a forrása is zárt volt. 2007 nyarán Budapestre költöztem, az OWR-el megkezdett munkát nem folytattam, helyette elkezdtem tervezni és megírni egy JSR-168 kompatibilis portál motort, amelynek a Java Forum 2.0 nevet adtam. Ez a portál motor 2008. január elsején vette át az OWR helyét, azóta a saját nyílt forrású portál motor hajtja a http://www.javaforum.hu oldalt.
Mindig is a nyílt forrás híve voltam, mivel sok nyílt forrású programot használok magam is, ezért adok a közösségnek egy olyan portált, amit jónak tartok és amire lehet később építeni. A Java most kezd a szerver oldalon is terjedni, mint web technológia, lassan szorítva ki a PHP alapú rendszereket. Ezért gondoltam arra, hogy egy kompakt portál rendszert hozok létre, amely egy darab EAR-ból áll, amelyet egyszerűen telepíteni kell egy alkalmazás szerverbe és pár kattintás után teszi a dolgát. De eddig még sok munka van, amelyet egyedül nehezen tudok emberi időben elvégezni.
A portál körül van egy csomó kisebb-nagyobb feladat, amelyet meg kell oldani. Nem a tipikus "rabszolga" munka (bár akad olyan is), hanem olyan, amin gondolkodni kell, a kódot jól megírni, tesztelni, majd feltenni az SVN repóba, ahonnan mások is megkapják, és meg tudják nézni. A fejlesztés alapvetően "issue" koordinált módon halad, minden munkához tartozik egy JIRA feladat, amelyhez tartozik egy azonos nevű branch a verziókezelő rendszerben. Ha Te vagy az issue gazdája, akkor letöltöd onnan a forrást, abban dolgozol, a saját gépeden kipróbálod a fejlesztés eredményét, majd ha úgy érzed, hogy megfelelő a megoldás, akkor "commit", mások is megnézik a tesztrendszeren (http://test.javaforum.hu, ha nekik is tetszik, akkor az új kód átkerül a trunk-be, amely a letesztelt és kiadásra kész kódot tartalmazza.
Projekt menedzsment szempontból ez a dolog úgy fog menni, hogy kapsz egy feladatot, leírással, dolgozol rajta, ha gond van, megírod, segítünk, elmondjuk miképp kellene, hogy lenne célszerű, dolgozol tovább, és ha eljutsz arra a pontra, hogy kész a feladat, akkor mindenki örül. Miért jó ez? Mert Te megtanulsz Enterprise módon programozni Java nyelvben. Benne lesz a neved egy nyílt forrású termékben, amely jó referencia lesz. Jó érzéssel tölt el, hogy tettél valamit a Java közösségért. A Java Forum 2.0 portál fejlődik és gyarapszik. S végül mi is örülünk, hogy jobb és több lesz a munkáddal a http://www.javaforum.hu portál is.
További előny, ha eljut a portál addig, hogy megfelelő jogosultság rendszer birtokában lesz, akkor lehetőséged van kihasználni a portál adta előnyöket: saját portált nyitni, és azt üzemeltetni. A feladatok nagy vonalakban:
- JSR-168 kompatibilitás elérése (portlet api fejlesztés)
- JSR-286 kompatibilitás elérése
- Portlet alkalmazás fejlesztés (naptár, képtár, stb.)
- Admin portál fejlesztés (domén, portál oldal, portlet kezelés, stb.)
- Glassfish és JBoss + PostgreSQL és MySQL mellé egyéb kombinációk
- Telepítő csomag készítése
- WebService funkciók
- Kliens oldali Java alkalmazások (Instant Messaging)
- AJAX és "felhasználói élmény" fejlesztés
- ésatöbbi...
Ezen feladatok felbonthatók apró részekre, tehát tudok olyan feladatot adni, ami pont megfelel a tudásodnak és így apró lépésekben, apró sikerélményekkel egyre nagyobb tudásod lesz...