2011. január 29., szombat

Legjobb fejlesztő verseny - 1. helyezés, legjobb GUI

A legjobb fejlesztő versenyt az IP Systems Kft. indította a tehetséges fiatal Java fejlesztők számára, hogy összemérjék programozási tudásukat és hogy egy visszajelzést kapjanak a hazai Jávás közösség elismert személyeitől.

A verseny 2010. október 1. -én indult és 30 nap állt a rendelkezésünkre, hogy elkészítsük a specifikációban megadott feladatot. A versenyre egyébként bárki regisztrálhatott aki még nem töltötte be a 26. életévét, sőt a verseny ideje alatt is csatlakozni lehetett.

A feladat egy egyszerű üzleti probléma megoldása volt, amelyhez egy kevésbé pontosan megfogalmazott specifikáció állt rendelkezésünkre. A feladat készítői ezáltal valós életbeli körülményeket teremtettek a versenyzők számára, ugyanis legtöbbször a megrendelő sem tudja pontosan megfogalmazni amire igazán szüksége van. Ezt pedig csak egy módon lehet feloldani, a folyamatos kommunikációval. 

A verseny szabályai alapján az ügyféllel (zsűri) való kommunikációra, e-mailen keresztül volt lehetősége a versenyzőknek. A kommunikáció is a valós életet tükrözte, mivel néha nem is a pontos választ kaptam meg a kérdéseimre vagy volt olyan is hogy bizonyos válaszok elfogadásával kicsit más irányba ment volna el a projekt.
A verseny ideje alatt végig kiemelten kezeltem a kommunikációt, így a szöveges kommunikáció mellett a vizuális kommunikációt is alkalmaztam. Itt arra gondolok, hogy még mielőtt belekezdtem volna egy funkció fejlesztésébe, elkészítettem az ehhez tartozó képernyőterveket és megmutattam az ügyfélnek. Néha pont ilyenkor derült ki, hogy nem teljesen ugyanarra gondolunk, így még a fejlesztés előtt tudtam korrigálni és sok időt is megspóroltam azzal, hogy nem egy már meglévő funkciót kellett ilyenkor módosítanom.
Fontos kiemelnem, hogy az ügyféllel való kommunikációt nemcsak a projekt elején, hanem folyamatosan a fejlesztés közben is alkalmaztam, mivel voltak olyan problémák melyek csak a kódolás alatt merültek fel. Ez igazából az ügyfélnek is jó, mivel folyamatosan tudta követni hogy éppen hol tart a projekt és így az esetleges változtatásokat is könnyebben elvégeztem.

A fejlesztés során olyan eszközöket és technológiákat használtam, melyekkel gyorsan, minőségi kódot lehet előállítani:

A technológiák kiválasztása mellet természetesen alapvető volt, a megfelelő Java SE és Java EE tudás is. A funkciók elkészítése során a Clean Coding elvek szerint kódoltam, ami önkifejező és más fejlesztők által könnyen érthető, módosítható kódot eredményezett. A kódolással párhuzamosan teszteket  is készítettem, hiszen egyedül a tesztek képesek rámutatni egy esetleges módosításból származó nemvárt működére. Az integrációs tesztek futtatásához egy Embedded JBoss-t konfiguráltam fel.  

A felhasználói felület megalkotása során alapvetően az egyszerűségre és a konzisztens megjelenítésre törekedtem. A felületek kialakításánál figyelembe vettem, hogy a felhasználókat könnyen elbizonytalaníthatja egy elsőre bonyolultnak látszó felület, így mindig az egyszerűség jegyében terveztem. Nagy hangsúlyt helyeztem az egységes szóhasználatra és a felületen megjelenő üzleti fogalmak követték a domain modelben használt kifejezéseket.
A felület elkészítése során egy ingyenesen elérhető webes sablonból indultam ki, amit felbontottam részekre és a Facelets technológia template képességére támaszkodva alkalmaztam. A felhasználói élmény fokozása érdekében a RichFaces ajaxos komponenseit is felhasználtam. Nem volt követelmény a böngészőfüggetlen kód létrehozása, azonban az elkészült projekt IE8, Firefox, Google Chrome és Opera alatt is megjelenítési problémák nélkül használható volt.
Ahogy korábban említettem a felhasználói felület elkészítése előtt mockupokat készítettem a pencil firefox-os pluginnal, melyeket validáltattam az ügyféllel, így az ügyfélnek is lehetőséget adtam arra hogy folyamatosan kövesse a projekt állapotát és szükség szerint módosíthasson az elképzelésein.


A zsűri értékelése alapján elnyertem a 2010-es év legjobb java fejlesztői díját és nekem ítélték a legjobb GUI különdíjat is.