Vaadin (Java UI framework) tapasztalatok?

Fórumok

Még az ünnepek előtt jött valahol szembe a Vaadin (https://vaadin.com), ami első (és egyelőre sokadik) ránézésre is olyan frameworknek látszik, aminek használatát érdemes lenne fontolóra venni.

Amúgy sem szeretem a frontendet; JavaScripttől, CSS-től stb., kiráz a hideg.

De azt vettem észre, hogy kis fejlesztőcsapat lévén (van 1 db UX-es, de ő is inkább designer, mint fejlesztő, a többi lényegileg mind backend) számos belső tool-ra egyszerűen nem jut idő és energia frontendet fejleszteni, mert a Postman-nel való tutujgatás "elégségesen jó" megoldás.

Szóval első körben leginkább belső tool-ok UI fejlesztésére használnám, nem pedig a publikus oldalunkat akarnám újraírni benne.

A kérdés: használta-e valaki a Vaadin-t éles környezetben (nem példakódok otthon bizergetése), és ha igen, akkor mik voltak a tapasztalatok vele?

Mennyire egyszerű vele egy frontendet összehozni?

Mennyire bugos?

Hogyan lehet debugolni?

Milyen előnyöket/hátrányokat tapasztaltatok?

Stb. stb.

Köszi!

Hozzászólások

Szóval első körben leginkább belső tool-ok UI fejlesztésére használnám, nem pedig a publikus oldalunkat akarnám újraírni benne.

Erre fasza. Ha viszont bármi kis design kellene, akkor hirtelen előkerül a szekrényből a szopóroller.

Milyen előnyöket/hátrányokat tapasztaltatok?

Ha Java-hoz értesz és nem akarsz komplex UI-t, akkor jó. Minden más esetben érdemes inkább elfelejteni. A build erőforrásigényes; szerver oldalon keletkezik minden; a debug nehézkes, főleg, ha kliens oldalon van a szar; a kliens oldal majdnem olyan, mintha obfuscated kód lenne; a skálázhatósága egy darab monolit betonéval vetekszik.

Ha van valamennyi JS tudás, akkor már értelmesebb valami JS framework, basic UI, egyszerű event driven dolgokkal és akkor nem az van, hogy neked nincs rá időd és nem lesz ember, aki hozzá mer nyúlni, mert JS tudást sokkal könnyebb leakasztani, mint Vaadin tudást.

nyöah, a frissebb Vaadinok azért nem ennyire szopások, de nagyrészt igen.

A build erőforrásigényes;

A Vaadin ~10-14 körül váltottak a GWT-ről, meg a widgetsetcompile-ról webcomponents-re, aztán onnan még valahova tovább, talán valami lit, meg vite nevű cuccot ír most a logba.

szerver oldalon keletkezik minden;

Lásd fent, ma már ez AFAIK nem teljesen igaz, de nagyrészt igen.

a debug nehézkes, főleg, ha kliens oldalon van a szar; a kliens oldal majdnem olyan, mintha obfuscated kód lenne;

Utoljára a webcomponentes időben kellett ilyet, még custom webcomponentet is írtam anno. Nem volt a kedvenc dolgom, de azért nagyságrenddel jobb, mint régen.

A kliens JS kód meg akkor a webkomponensemtől függöt, ha jól emlékszem.

a skálázhatósága egy darab monolit betonéval vetekszik.

A plain vaadin jah. De mintha lehetne ilyen hybrid hilla / lit-es dolgokat csinálni vele egy ideje, így ha kinövöd az appodat, akkor szép lassan le tudod választani a frontendedet egy kezelhetőbb valamivé.

Gyors prototypeingra, vagy háttéralkalmazásokra jó. A random következő startupomat nem ebben indítanám.

Ha szépet akarsz, akkor keress valami kész template-et (pl), mert különben szopni fogsz vele. Debuggolni nem szopás a core vaadin-t, de meg kell szokni a logikáját. Ha 1-2 külső komponenst be akarsz húzni, az már lehet mókás: mostanában az echarts-os Vaadin integrációt túrtam picit, hogy pontosan mit is, és hogyan implementált a srác, ott azért kellett 1-2 órát nézni.

Ha szereted a kotlint, erre nézz rá: https://github.com/mvysny/karibu-dsl

Szerkesztve: 2023. 02. 01., sze – 09:19

en hasznaltam meg anno vaadin7-est elesben (bar csak 'belso' toolingra). Ket dolog volt, ami nem trivialis:

- vaadin-hoz sajat microservice-t csinal, security es stabilitas miatt; ugye senki se akarja egy UI-al bloat-olni a microservice-t, meg annak minden security bugjat behozni egy rest api-ba.

- a vaadin, legalabbis a 7-es, kulon-kulon tartja a client es a server state-t. Tapasztalatbol mondom, a backend developerek gyomra ezt nem veszi be, eredmenye pocsek UI, amikor pl. egy parezer elemu listat/tablazatot akarsz csinalni. Mert ott mar figyelni kell, hogy mi van meg szerveroldalon, es csak azt kuldje le kliensoldalra, ami lathato, ne mindet. Illetve, az, hogy valamit modositott a user a kliens oldalon, default-bol vagy propagalodik szerver oldalra, vagy nem, ennek minden komponens eseten utana kell nezni, mert aztan jon az, hogy abuzalnak barmit, aminek a mellekhatasa a propagacio szerver<->kliens kozott, aztan olyan gany fos kodot tudnak csinalni benne, hogy azt mar az uristen se tartja karban.

tl;dr: jo a vaadin, de ahogy it-ban mindent, erteni kell hozza, kulonben csak koklerkedes es ganyolas lesz belole.

Mostanában dolgoztam Vaadinnal. Végül is meg lehet ezzel is csinálni mindent. Volt néhány zavaró dolog. Ezeket is meg lehet szokni.

Viszont volt olyan is amivel szívtam néhány órát, mert uBlock megfogott időnként valamit belőle és időnként nem működött.

De valóban. Ha már kicsit is értesz JS-hez lehet jobb ha keresel mást.

Használhatsz designert (előfizetéses), de azzal jellemzően színes szagos, de nem túl bonyolult felületeket lehet összerakni gyorsan.
Vagy elkezdheted a komponenseket Java-ból megszólítani, amivel nagyot fogsz szívni, viszont eléred azon funkciókat is, amiket a desgner-es template rendszer nem fog biztosítani.
Sajnos a berántott JS-es környezet nagyon sűrűn változik, állandó küzdelem a kód naprakészen tartása. Legalábbis mi ebbe futunk bele elég sokszor.

Én biztos hogy nem Vaadinoznék, fentebb már jól leírták miért.

Inkább React vagy Angular vagy Vue vagy bármi valódi frontend eszköz. Ahhoz választasz egy komponens-készletet (mondjuk material design ui vagy fluent vagy bármi és akkor a ux designered azon készleten belül gondolkozhat.

Igazából kéne egy frontendes a csapatba de alap ui-t egy backendes is összekalapál szerintem.

Gábriel Ákos

Ha java-ban akarsz dolgozni, akkor még esetleg a SmartGWT-t is meg lehet nézni, mi sok sok évvel ezelőtt abban fejlesztettünk klasszikus desktop jellegű webes appot, 

teljesen jól működött. A REST api-t megírtuk, a kliens kiegészítése baromi gyors volt, egy képernyőt pár nap alatt tudtunk e2e szállítani. Van LGPL verziója, hogy hogyan

néz ki, azt itt meg tudod lesni:

 

https://smartclient.com/smartgwt/showcase/