2010-01-24 11 views
5

Minęło dużo czasu odkąd naprawdę pracowałem z J2EE, więc proszę wybacz mi moją ignorancję. Moje ostatnie zaangażowanie w projekt Grails jeszcze bardziej zaostrzyło moje zainteresowanie Javą, szczególnie w Grails, ponieważ sprawia, że ​​tworzenie aplikacji internetowych na platformie Java znów jest przyjemnością. W związku z tym chciałbym, aby ekspert skomentował następujące wymaganie, które mam dla aplikacji zbudowanej przy użyciu Grails:Jak stworzyć przyjaznego projektanta aplikacji Grails bez konieczności ponownego wdrażania po zmianie widoku?

Zespół projektantów (projektanci stron internetowych) wymaga dostępu do stron GSP i edycji plików widoku (układów, szablony itp.) bez przeszkadzania zespołowi programistycznemu (programistom). Ten scenariusz może mieć miejsce zarówno podczas budowy, jak i po wdrożeniu do produkcji.

Poziom komunikacji między projektantami, programistami i użytkownikami biznesowymi nie stanowi tutaj problemu. Jednak w około 40% przypadków Jednostki Biznesowe wymagały zmian w interfejsie, które nie mają wpływu na czas pracy programistów, ale wymagają czasu członka zespołu projektowego. Obecnie przepływ pracy wdrażania jest zgodny z aplikacją Grails poprzez wdrożenie pliku wojny na serwerze Tomcat. Wyobrażam sobie, że istnieje prostszy sposób na umożliwienie zespołowi projektowemu wprowadzania zmian w interfejsie użytkownika bez przechodzenia przez cykl budowy i wdrażania.

Kilku członków zespołu projektowego miało wcześniej kontakt z PHP, a czasami brakowało możliwości nadpisania pliku szablonu, aby element interfejsu był bardziej funkcjonalny lub poprawił szablon układu. Mam nadzieję, że istnieje podobny sposób na dostosowanie się do takiej prostoty w Grails. Powiedziano mi, że eksplozja pliku wojny może być opcją, ale nadal wymaga przeładowania hostowanej aplikacji Tomcat.

Jeśli uważasz, że patrzę na pożądane rozwiązanie w niewłaściwy sposób, proszę zadzwoń, ponieważ jestem bardziej zainteresowany wykonalnym kompromisem dla wszystkich zaangażowanych członków zespołu. Dziękuję Ci.

+0

Należy zbadać pod furtką i spojrzeć na mój ostatni post: http://karussell.wordpress.com/2010/01/18/crud-with-wicket-guice-db4o-neodatis/ ten sposób UI i kod jest bardzo dobrze oddzielony, aw NetBeans można natychmiast zobaczyć zmiany w kodzie/html. Istnieje również wtyczka do wtyczki, ale nie wiem, czy to działa ... – Karussell

+0

Czy Wicket naprawdę oddziela interfejs użytkownika od kodu Java, tak że można go modyfikować i aktualizować bez konieczności ponownego wdrażania? Nie znam tej struktury aplikacji internetowych, więc wszelkie linki, które możesz podać, aby lepiej ją zrozumieć, będą doceniane. Nie jestem również pewien, jak włączyć korzystanie z Wicket w istniejącej aplikacji Grails. –

+0

Istnieją sposoby korzystania z zewnętrznych plików HTML (które nie leżą obok siebie do pliku java). Mógłbym zapytać na liście mailingowej, jeśli chcesz. dla aplikacji grails jest grails-wicket-plugin http://www.grails.org/Wicket+Plugin – Karussell

Odpowiedz

0

Można uruchomić serwer z wersją aplikacji za pomocą aplikacji w trybie deweloperskim. Projektanci mogą następnie wprowadzać zmiany w widokach i przeładowywać. Będą musieli mieć możliwość uzyskania dostępu do kodu źródłowego na serwerze za pośrednictwem pewnego rodzaju akcji. Jako plus, jeśli sprawdziłeś źródło, projektanci mogli następnie zatwierdzić zmiany z serwera.

Wadą jest to, że jeśli ponowne załadowanie się nie powiedzie lub skończy ci się pamięć (wiadomo, że ma miejsce z dużym przeładowaniem), programista musiałby zatrzymać i uruchomić aplikację lub może dostarczyć projektantowi skrypt biegnij, by go odbić.

Najwyraźniej możesz osiągnąć sukces wydajnościowy, uruchamiając go w trybie programistycznym i przy użyciu aplikacji, ale w twoim przypadku może to być ok.

okrzyki

Lee

+0

Dziękuję za tę sugestię. Zbadaliśmy opcję użycia aplikacji Grails w trybie programistycznym, ale wydajność szybko stała się problemem. Być może moglibyśmy grać z ustawieniami trochę więcej, ale jak rozumiem, do użytku produkcyjnego, ta metoda nie jest zalecana. –

+0

Prawidłowo, to nie jest przeznaczone do prod nas, zawsze będzie dużo wolniej niż wdrożone WAR. Niestety nie mogę wymyślić innego sposobu osiągnięcia tego, co chcesz. – leebutts

+0

Produkcja ma wyłączoną dynamiczną rekompilację ze względu na wydajność. Właśnie dlatego to produkcja. Rozwój został włączony z myślą o łatwym rozwoju. :) Zazwyczaj nasi projektanci uczą się, jak pobierać z Git, budować i uruchamiać aplikację oraz rozwijać ją. Wiele razy nie wiedzą, jak używać kontroli wersji, więc musimy ich uczyć, ale mamy ogromną korzyść, że wszyscy pracują na tej samej przestrzeni, kiedy się do niej przyzwyczają. –

10

musisz określić następujące ustawienia w Config.groovy:

grails.gsp.enable.reload=true 
grails.gsp.view.dir="/path/to/gsp/views" 

do 'grails.gsp.view.dir' zwykle ścieżkę do sprawdzane repozytorium SVN. Możesz wtedy po prostu "svn up" za każdym razem, gdy chcesz zaktualizować widoki.

Jest jedno zastrzeżenie: podczas kompilowania widoku GSP używa on permgen. W końcu skończy się i trzeba ponownie uruchomić serwer.

0

To może nie być bezpośrednia odpowiedź na to pytanie, ale ponieważ zwracasz uwagę na rolę projektantów w projekcie, możesz również sprawdzić moją designer friendly GSP implementation, która umożliwia projektantom wyświetlanie stron GSP nawet z niestandardowymi znacznikami dzięki " deklaracja znacznika za pomocą atrybutów ".

Powiązane problemy