Az utolsó simításokat végzem a StudiCore Java SE tanfolyamának nagy feladatán, most a hibakezelés van soron, végig gondolom, hogy egy átlagos felhasználó mit tud elrontani az adatfelvitel során, és bolondbiztosra írom a kódot. Például, tizedesvesszőt használ a tizedespont helyett, vagy tizedespontot a tizedesvessző helyett, attól függően, mi van beállítva a programban. Vagy nem ad meg adatot, és a szoftver meg a nem megadott adatot dolgozná fel, ami azonnal hibát dob.
De ez a bejegyzés most nem erről szól, inkább arról írnék, hogyan is lehet továbbfejleszteni a szoftverem. Így néz most ki a program, a Megrendelés nyilvántartó nevet kapta, és feltöltöttem a tesztekhez fake adatokkal:
Lehet még számos gyermekbetegség, amit meg kellene oldani, és a program is mindig tökéletesebb lehetnek. Itt két dolgot kell szem előtt tartani:
1. Ezt a szoftvert elsődlegesen magamnak írtam, és azért tettem bele olyan, elsőre önmagam szivatásának tűnő pluszfeladatokat, mint a nyereség lekérdezés, mert erre a funkcióra szükségem van. De mivel én fogom használni, ezért egyelőre nem raktam bele olyan részeket, ami másnak jó lehet, de az én cégeimnek nem kellenek.
2. És ezzel el is jutottunk a második ponthoz, az, hogy itt most egy fizetős oktatásról van szó. Nagyon sok extrát bele lehetne pakolni a Megrendelés nyilvántartóba, de a nagy feladat elsődleges célja, hogy prezentáljuk, megértettük a Java alapjait, és egy Swing alapú, adatbázist használó szoftvert írjunk. Az előfizetési díj ketyeg, ezért a fő célunk a tudásunk megmutatása, nem a munka hónapokig történő elhúzása.
A nagy feladat megírása közben legalább annyit tanultam, mint a StudiCore tanfolyamán. De erről majd úgyis írok egy összefoglaló írást, hogy milyen alapokat adott az önálló fejlesztéshez az oktatás. Most nézzük, milyen lehetséges továbbfejlesztési irányai lehetnek ennek a szoftvernek.
Tartalomjegyzék
Online szolgáltatás
A Megrendelés nyilvántartó most sajátgépről fut, sajátgépen telepített SQL adatbázist használva. Az megoldható lenne, hogy az adatbázist átköltöztetném a saját Dropbox mappámba, és akkor felhőbe szinkronizálva megelőzhető az adatvesztés. Ezt a szoftver használatának megkezdése után meg is kezdem, és akkor nem vesznek el a megrendelési előzményeink.
Kényelmesebb használatot, üzembiztosabb működést jelenthet az is, ha a mostani asztali szoftveres változatot átírom web alapúvá. Már nagyon izgat a weboldalak készítése Java segítségével, csak azért nem ástam bele magam mélyebben, mert már így is több lovat ülök meg ugyanazon fenékkel, és előbb befejezem a mostani feladataimat. De ez egy érdekes lépés lesz, és mindenképpen rágyúrok erre a területre is a nagyon közeli jövőben.
Ezzel amúgy másnak is lehetne kínálni a szolgáltatást, bár itt több problémán is el kell gondolkodni. Előfizetőssé téve a szolgáltatást, mindig nehezebb felhasználókat gyűjteni, mintha ingyen adnám. Emellett ott a jogi rész, ha más adataiért vagyok felelős, akkor aztán nagyon rá kell gyúrni a megfelelő adatkezelésre, mert adatvesztésnél csúnya dolgok lehetnek. Nem beszélve a GDPR-ről, adatkezelési nyilatkozatban lefektetni, milyen alapon kezelem a vállalkozásaik adatait, az ő ügyfeleik adatait, és így tovább. Ezek nem lehetetlen feladatok, de sok-sok pénz, ha felkészült jogász írja meg. Most első körben az online szolgáltatást egyelőre csak magamnak „nyújtanám”, és főleg azért, hogy megtanuljam a programozásnak ezt a részét is.
Adatbázis nélkül működő asztali szoftver
Ha maradunk az asztali szoftvernél, a sajátgépről futó változatnál, akkor pedig el lehetne hagyni az adatbázis használatát. Most a nagy program megírásánál ez volt a feladat, de a StudiCore tanfolyamán tanultunk arról is, hogyan lehet objektumokat fájlokba menteni. Mivel ez akkor nem volt olyan fontos a számomra, így át kell néznem újra a tananyagot, és elgondolkozni a lehetséges megoldásokon.
Ezzel megint csak más felhasználónak is elérhetővé lehet tenni a programot úgy, hogy ne kelljen adatbáziskezelő rendszert használnia, vagy adatbázisokkal foglalkoznia. Itt megoldandó feladat az adatok titkosítása és visszaolvasása, korábban ezekkel a feladatokkal is találkoztam az interneten. Milyen gyakorlati fogásokat használnak ezen a területen a programozók, mit érdemes választani? Ezek azok a kérdések, melyeket ki kell deríteni.
Tömeges adatfelvitel
Tegnap vittem fel a fake adatokat a Megrendelés nyilvántartóba, és rájöttem, hogy lehetne hozzá készíteni egy tömeges adatfelviteli egységet is. Van olyan ügyfelünk, aki minden hónapban jó sok cikket rendel, nála gyakorlatilag a cikk címén és karakterszámán kívül minden felvinni szükséges adat ugyanaz.
Ehhez kellene egy CSV olvasó modul a szoftverbe, ahol az Excelben elkészített majd CSV-be exportált táblázatot beolvasnám, az adatokat megmutatnám jóváhagyásra, majd egy gombbal lehetne tömegesen az adatbázisba menteni. Ez egy nagyon hasznos extra, lehet, hogy foglalkozni is fogok vele.
Nyomtatás, PDF export
Ezek a funkciók olyan extrák, melyekre nekem nincs szükségem jelenleg, ezért nem is akartam hozzáadni őket a Megrendelés nyilvántartóhoz. Azért kíváncsiságból rákerestem, és természetesen egyáltalán nem jelentenének megoldhatatlan feladatot, de a StudiCore előfizetést nem érdemes húzni velük, mert ahogy láttam, a tanmenetben vannak még jóval izgalmasabb dolgok is.
De a nyomtatás és a PDF fájlba történő exportálás megint csak olyan feladat, ami akár értelmes is lehet egy megrendeléseket nyilvántartó szoftverben.
Több felhasználós kivitel
A több felhasználós kivitelt már kissé túl soknak érzem, csak megemlítem, hogy létezhet ilyen fejlesztési irány is. Az én vállalkozásaimnál erre nincs szükség, és mivel az ismerőseim és ügyfeleim is kisvállalkozók, általában náluk is önmaguk végzik az adminisztrációt. Esetleg feleség, jó ismerős, szóval mindenképp olyan, akiben megbíznak.
De ha valódi piacképes szoftvert készítenék, és lenne rá keret (idő és pénz), akkor akár több felhasználóssá is lehetne tenni a szoftvert. Ezzel persze létre kellene hozni jogosultsági szinteket, adatokat és/vagy funkciókat elrejteni az alacsonyabb rangú felhasználók elől, stb. Na ez az a feladat, amivel most nem is foglalkoznék, már a szintek meghatározása is komolyabb tapasztalatot igényelne, de főleg, most nem látom semmi gyakorlati használt.
Hát kb. ennyi lenne a Megrendelés nyilvántartó jövőbeni életútja, az idő majd eldönti, mi lesz belőle valóság, és mi lesz csak tesztelgetés. Mindenesetre megint sokat fogok tanulni már azzal is, ha csak a megvalósítást kutatom a StackOverflow, a Reddit és a különféle programozói Facebook csoportok segítségével.