Odnalazłem Święty Graal
Bloga zacząłem pisać pod wpływem Jacka Laskowskiego. Było to po mojej pierwszej wizycie na spotkaniu WJUG. Jacek zachwalał wtedy tą formę twórczości jako bardzo dobre podejście do usystematyzowania swojej wiedzy oraz dzielenia się doświadczeniami. Samo spotkanie było poświęcone GWT i prowadził je Michał Margiel. Zresztą pierwszy post też był o GWT. Od tego czasu wiele się zmieniło. Zmądrzałem, na swój sposób spokorniałem. Zrozumiałem na czym polega programowanie.
Dziś osiągnąłem Święty Graal wielu programistów. Decyzja zapadła i zaczęliśmy w raz z Darkiem Nowy Projekt. Nowy Projekt jest to coś o czym marzy wielu programistów. Możliwość stworzenia czegoś od nowa pozwala na dużą swobodę i dowolność. Pomimo, że mamy tylko tydzień na wykonanie całości i kolejny na przetestowanie to mając przed sobą całkowicie pustą kartę jaką jest Nowy Projekt wszystko idzie jakby szybciej.
Nasze zadanie w ogólności polega na wybraniu pewnych linii z płaskiego pliku danych (EBCDIC) i wysłaniu ich do bazy danych. Plików jest dużo, mają dzikie kodowanie i generalnie jest to jedyne co łączy nas ze starą aplikacją. No i oczywiście wszystko ma działać na JBossie z Javą 1.5.
Generalnie genialnie. Pełna swoboda kształtowania kodu pozwoliła mi na realizację kilku pomysłów. Jako, że po dyskusji stwierdziliśmy, że GUI powstanie w GWT postanowiłem w praktyce wdrożyć pewien pomysł…
Święty Graal dla webmastera i webdevelopera to w pierwszej kolejności kod strony, który można łatwo rozszerzać. Jeżeli miałeś kiedykolwiek do czynienia z wordpressem i pisałeś lub nawet instalowałeś pluginy do tego systemu blogowego to wiesz, że możliwość zarządzania nimi jak komponentami jest czymś genialnym. Niestety bardzo często jest tak, że chcąc stworzyć aplikację web, która ma być w przyszłości rozszerzana o kolejne elementy stajemy przed trudnym wyborem. Czy upchnąć konfigurację do bazy i skazać siebie oraz użytkowników na ogromne ilości zapytań do bazy w trakcie generowania layoutu, ale w zamian mieć system modułowy. Czy upchnąć konfigurację do plików modlić się, by każdy developer czytał dokumentację przed przystąpieniem do pracy, by wiedział jak nazywają się poszczególne elementy. I tak źle i tak niedobrze. Najgorsze jest to, że na końcu siedzi człowiek, który programuje „biznes” aplikacji i jest mu wszystko jedno czy okienka są czerwone, zielone czy w kolorze majtkowym. Powoduje to frustrację i trudności.
Dziś postanowiłem zaradzić problemowi rozszerzalnego GUI. Mój sposób został podpatrzony w NetBeans i polega na stworzeniu kontenera web. Kontener nie ma żadnych funkcji biznesowych. Jest pustym naczyniem, które można wypełnić modułami. By jednak nie był to tradycyjny system, z którym mamy do czynienia w GWT, gdzie mamy RootPanel i owsiakowanie postanowiłem dodać do niego pewną funkcjonalność. Moja aplikacja udostępnia znane z NetBeans Platform punkty rozszerzenia (ang. Extension Points). Są to miejsca, do których można dodawać elementy graficzne w ramach modułów. Same moduły mają dostęp do wszystkich punktów w aplikacji i mogą same się rejestrować jako kolejne punkty. Dzięki takiemu podejściu oraz wstępnemu skonfigurowaniu kilku elementów można śmiało tworzyć aplikacje webowe, które będą w pełni odpowiadały aplikacjom okienkowym.
Kod w następnym odcinku. Idę pobawić się graalem.