Biti "na klupi" nije najsrećnija stvar koja može da se desi jednom developeru, ali ako ćemo iskreno - to nije nešto što možemo da izbegnemo u ovom našem poslu. Meni je lično baš teško padalo “dangubljenje” tako da sam prihvatio predlog Java Division Lead-a u Ingu da tokom down-time perioda uradim nešto korisno i to ne samo za sebe ili za firmu, već i za širu IT zajednicu.
Složili smo se da krenem da radim na Open Source - kodu koji je dostupan svima onima koji žele da ga koriste, besplatno i slobodno, u bilo koje svrhe, uključujući i komercijalne. Za ilustraciju, najpoznatiji primeri Open Source sistema su npr. Mozzila Firefox, Wordpress i Linux OS koje koriste i svakodnevno unapređuju milioni ljudi širom sveta (čak sam negde pronašao podatak da 85% svih softvera na svetu koristi neku open source komponentu). Činjenica je da ovaj naš posao ne bi bio moguć bez OSS projekata koje koristimo u svakodnevnom radu, pa je red bio da kao kompanija malo i vratimo zajednici.
Nakon kraćeg istraživanja, shvatili smo da želimo da napravimo IPS (Instant Payments Serbia) QR Code Generator - sigurno svi koristite mobilne bankarske aplikacije pa znate da je to ona crno bela kockica koja kad se skenira popuni celu uplatnicu umesto nas i omogućava nam da plaćanje završimo u dva klika. Ključna informacija ovde jeste da za Javu nije postojala dostupna biblioteka za generisanje QR kodova za Srbiju i upravo sam tu pronašao svoju motivaciju da počnem da radim na jednoj bibliotekici koja će moći da se koristi za aplikacije za plaćanje u Srbiji.
Kao primer sam koristio jedan sličan projekat koji je takođe rađen za plaćanja u našoj zemlji ali u Java Script-u, dok je "naša" backend verzija namenjena Kotlin, Java i ostalim developerima iz Java ekosistema. Projekat može da služi kao biblioteka koja se uvozi kao dependency u bilo koji Java softver da bi uz pomoć određenih podataka generisala sliku QR koda, a druga mogućnost je da se aplikacija koristi preko bilo koje komandne linije da bi se dobio ovaj isti rezultat i.e. QR kod (mada je teško zamisliti da bi se neko odlučio za drugu opciju jer nije naročito user-friendly😉).
Trebalo mi je par nedelja (sa prekidima), da završim ovaj projekat, uz stalne konsultacije sa već pomenutim Java Division Leadom Milošem Kostićem i primenu njegovih konstruktivnih saveta koji su se najviše odnosili na čitljivost samog koda kao i na kvalitetno dokumentovanje kako bi se olakšalo korišćenje koda. Kod je postavljen na GitLab jer i firma koristi ovu platformu, a može mu se pristupiti i preko centralnog repozitorijuma Maven-a (alat koji se koristi u Java ekosistemu za dobavljanje dependency-ja), tako da je dostupan u dva oblika (za čitanje i korišćenje).
Ovo je prvi Ingov (i moj) Open Source projekat koji je zahtevao i jedno ozbiljno istraživanje, uključujući i pravne aspekte u smislu koju licencu odabrati, a mi smo se na kraju odlučili za Apache 2.0 koja omogućava i korišćenje i menjanje koda, uz obavezno navođenje svih izmena. Iako postoje neke sumnje u potencijalne njegove zloupotrebe, verujem da javno dostupnim kodom možemo da postignemo veću transparentnost kao i veću bezbednost jer velik broj developera može da pregleda kod i ispravi neku grešku, ili da javi kreatorima koda da to urade. Kada sam zamolio ChatGPT za neku duhovitu metaforu za opisivanje OSS-a, on mi je (veoma maštovito) rekao da zamislim Open Source kao jednu zajedničku baštu u kojoj ceo komšiluk doprinosi svojim radom i resursima da bi na kraju svi zajedno uživali u plodovima (not bad at all!).
U firmi smo jako ponosni na urađeno jer se nadamo se da ćemo ovim podstaći ostale kolege iz firme ali i iz šire programerske zajednice u Srbiji da se ubuduće više angažuje na ovakvim i sličnim projektima jer ih nema dovoljno. Nadamo se i da ćemo uskoro da proširimo Ing-ov OSS portfolio i da je ovo samo prvi od mnogo predstojećih ovakvih projekata. Posle dobrog iskustva koje smo imali sa ovim projektom, plan Ing-ove Java Divizije je da se oproba i sa komplikovanijim projektima. Doduše, ja se neko vreme neću ovim baviti jer (konačno) nisam više na klupi 🙂
O autoru: Ilija je počeo da se bavi programiranjem pre pet godina, i kaže da mu se ljubav prema ovoj profesiji rodila kroz igranje video igara i “čeprkanje po kompjuterima” (krekovanja igrica, opravljanja bagova, a ponekad i sastavljanja računara). Živi u Nišu, a vreme nakon posla provodi sa verenicom i ljubimcima - mačkom, psom i hrčcima. Ilija voli da planinari, ali i da gleda Sci-fi serije i filmove. Ingu se pridružio septembra prošle godine.
0 komentara