Tizenhat évig dolgoztam egy cégnek, ahol mellékszálként egy integrált vállalatirányítási rendszert fejlesztettünk, de mivel 2020-ban a fő profilba tartozó legnagyobb megrendelő felmondta a közös munkát, lassan kiderült, nincs elég forrás a folytatáshoz. Ezért, hogy a terheken könnyítsek, 2023 elején felajánlottam a felmondásomat, így maradhatott elég pénz a reklámozásra.
Ennek a cégnek rendkívül hálás vagyok, mert már az elejétől szabad kezem volt az elvégzendő feladatok kivitelezésében, ráadásul nem voltak szűk határidők, így minden területen alaposan utána tudtam járni a dolgoknak, hogy a lehető legjobb minőségű terméket adhassuk ki a kezünkből.
Miután korábban webes frontenddel foglalkozam, itt is először a megjelenítés volt a munkám fő csapása. Bár egy akkor ismert keretrendszerben kezdtem el dolgozni (ext.js, később Sencha), viszonylag rövid időn belül kiderült, hogy az valójában komolyabb adatmennyiség megjelenítéséhez túl lassú, valamint ha egy picivel is bonyolultabb felületet kellett benne elkészíteni, mint amit a készítői a példafeladatok során elképzeltek, azonnal komoly hibákba futottunk, amelyek javítása sok időt vett igénybe.
Emiatt szép lassan kihátráltunk belőle, és egy saját megjelenítő rendszeren kezdtem el dolgozni, ami minden szempontból jobban teljesített. Sebességben körülbelül százszor volt gyorsabb az ext.js-nél, nagyjából huszadakkora kódbázissal. Például az eredeti űrlapjainkon minden egyes ún. listbox megjelenítésekor körülbelül nyolcszáz sornyi javascript kód futott le, ezt sikerült egy szemléletváltásnak köszönhetően nullára (!) csökkenteni.
2011-ben a programozó kolleganőm elment szülni, így megörököltem tőle a szerveroldali kódot, amit azonnal elkezdtem kifésülni, lefogyasztani, s a végére nagyjából feleakkorára zsugorodott a mérete nagyobb funkcionalitás mellett, míg a sebessége is átlagosan tízszeresére nőtt.
Az egyik fő cél itt is a külső függőségektől való megszabadulás volt, mivel az volt a tapasztalat, hogy az azok problémáinak felderítése, toldozása-foldozása több időt vesz el, mintha megírjuk nulláról a magunk igényei szerint. Murphy törvénye a számítástechnikában is működik, ami elromolhat, el is romlik, a hibák száma arányosan nő a kód méretével.
A végeredmény az lett, hogy az utolsó öt-hat évben az alaprendszerhez hozzá sem kellett nyúlni, az gond nélkül működött, csak a rá épülő űrlapokban voltak esetlegesen logikai hibák. A program bővítése is viszonylag gyors volt, mivel mindent mi írtunk, azonnal tudtuk, hova kell nyúlni, és nem kellett külsősökre várni.
A vállalatirányítási rendszer grafikus felülete az űrlapok megjelenítéséhez lett igazítva, és idővel felmerült, hogy az információs honlapunkhoz szükség lesz egy általánosabb eljárásra. Ehhez végül egy másik, ugyancsak saját fejlesztésű rendszert használtam, ami mind a szerveren, mind a kliensen kiemelkedő teljesítményt nyújt minimális kódméret és maximális kompatibilitás mellett.
Miért tartom fontosnak ezeket a tulajdonságokat? A számítástechnikában szerintem az egyik legnagyobb nehézséget az adja, hogy ugyanazt a feladatot nagyon sokféleképpen lehet elvégezni, ami – bár alapvetően a legjobb, ha van választási lehetőség, – sokszor kontraproduktív, mert a különböző módszerek egymással nem biztos, hogy jól megférnek. Emiatt szerintem célravezetőbb, ha olyan kódot írunk, ami a lehető legkisebb készlettel a lehető legtöbb helyen le tud futni (akár adatbázismotortól függetlenül).
Külön kiemelném a kliensoldali kompatibilitás fontosságát, mert úgy látom, ezt sokszor feláldozzák a programozás kényelmének oltárán. Jómagam legalábbis abban hiszek, hogy ha minél több érdeklődő tudja megnézni a weboldalunkat, minél többen tudják használni szolgáltatásunkat, a cégnek annál több bevétele lesz, amitől általában sem a vezetés, sem a tulajdonosok nem szoktak elhatárolódni.
Az ucrm.hu létrehozásánál tehát a következőkre törekedtem: