2010-10-11 9 views
23

Jestem programistą java, nie doświadczonym, ale dobrze rozumiem większość pojęć.Dlaczego powinienem się uczyć i używać rozpórek?

Niedawno zbudowałem stronę internetową przy użyciu Tomcat/JSP (~ 30 stron dynamicznych). Popełniłem błąd początkującego polegający na włączeniu dużych sekcji głównej logiki do JSP, używając racjonalizacji, że jest to "tylko prosty projekt".

Nauczyłem się na własnej skórze. Tak więc ponownie buduję aplikację teraz w silniku aplikacji Google przy użyciu serwletów i planuję użyć Velocity do wdrożenia go przy użyciu wzorca projektowego Model-View-Controller.

Patrzę również na Struts, ale wcześniej nie korzystałem z tego schematu.

Czy ktoś może mnie przekonać, dlaczego powinienem włączyć elementy konstrukcyjne do tego projektu? Czy naprawdę dużo mnie kupi za średniej wielkości projekt jednej lub dwóch osób?

Istnieje wyraźny koszt w dodatkowej krzywej uczenia się z rozpórką, czy korzyści przewyższają koszty? A może wykorzystanie prędkości będzie wystarczające, aby oddzielić logikę? Opinie?

+3

Struts jest okropny. Jeśli chcesz zrobić sobie przysługę, użyj Wicket (oparty na komponentach) lub Spring MVC (oparty na działaniu). Oba są świetnymi i intuicyjnymi frameworkami. –

+6

Struts2 różni się bardzo od Struts i całkiem podobny do Spring MVC lub Stripes (oparty na akcji) – leonbloy

+7

Struts 1 jest naprawdę nieaktualny. Struts 2 nie jest w żaden sposób okropny. –

Odpowiedz

23

Wyglądałbym na dłuższy okres niż ten projekt. Jak widzieliście, po raz pierwszy używacie jakiejkolwiek technologii w dużej mierze na popełnianiu błędów i uczeniu się od nich. Więc ten pierwszy projekt nie będzie najprawdopodobniej świetnym przykładem użycia Struts po zakończeniu.

Używanie Strutsów (i Płytek z tego, co wskazujesz było głównym problemem: kopiowanie i wklejanie JSP) będzie jednak doskonałym zagłębieniem w "właściwe" MVC, tzn. Zmusza cię do robienia rzeczy w szczególnie uporządkowany sposób i które bardzo doceniłem, byłem wielkim fanem Struts.

Mimo to istnieją inne opcje, np. Wiosna zawiera Spring MVC plus wiele więcej. Jeśli zamierzasz zainwestować w pokonywanie krzywej uczenia się, zastanów się, które ramy przyniosą największe korzyści w perspektywie średnioterminowej: na jakich strukturach pracodawcy pracują w Twojej okolicy, na przykład? W tym momencie chodziłem ze Springem, gdzie czuję, że jest impet, ale Struts jest bardzo dobry w tym, co robi.

+1

Bardzo ładna i opisowa odpowiedź. +1 za to. Mam nadzieję, że kiedy wspomnieliście o Struts, tak naprawdę chodziło o Struts 2. –

+1

Dzięki. Od 5 lat używam Struts, ale mam dobre wspomnienia! – Brian

11

Jeśli zamierzasz nauczyć się architektury, polecam Spring MVC zamiast Struts. Krzywa uczenia się nie jest zbyt stroma i istnieje wiele zasobów Spring dostępnych w Internecie.

Po zainstalowaniu sprężyny, aplikacja będzie o wiele prostsza w utrzymaniu i obsłudze. Będziesz także w stanie dodawać ulepszenia, takie jak zabezpieczenia, znacznie łatwiej.

+0

Tak, też to lubię. –

3

Dlaczego warto nauczyć się Struts? Moja odpowiedź brzmi: ponieważ pracodawcy często wymagają wiedzy o tym, szczególnie w przypadku starszych projektów. Nie dokonałem żadnych dokładnych pomiarów, ale myślę, że w moim regionie JSF i Struts są najczęściej używane do tworzenia aplikacji internetowych.

Struts to dość stara struktura sieciowa, a pisanie nowoczesnych interfejsów graficznych AJAX jest dość niezdarne, więc powstały lepsze ramy. JSF jest dla mnie trochę mniej niezgrabny, ale ma też pewne problemy. Moje ulubione frameworki internetowe to Vaadin i GWT, ale nie sugeruję niczego dla ciebie - powinieneś sam podjąć decyzję.

4

Nauka oddzielenia logiki jest doskonała. Możesz to zrobić bez użycia Velocity, Struts lub jakiejkolwiek struktury, i prawdopodobnie dowiesz się więcej o tym, co trzeba zrobić, aby zrobić to rozdzielenie, jeśli najpierw spróbujesz z minimalną pomocą.

Uczenie się frameworka (w rzeczywistości wiele frameworków) również jest warte zachodu, ale osobiście nie wybrałbym Strutsa jako pierwszego frameworka, chyba że użyłby go twój pracodawca lub potencjalny pracodawca. Jeśli twój pracodawca używa Struts, mam nadzieję, że to Struts 2, ponieważ Struts 1 robi się pradawny.

Ramy, z którymi najbardziej lubię pracować, to Wicket, ale jest to radykalna zmiana w stosunku do tego, na co patrzysz. Warto również rzucić okiem na SpringMVC.

Jeśli twój pracodawca już tworzy programowanie w języku Java przy użyciu frameworka, spróbuj nauczyć się architektury, która jest w użyciu i poproś współpracowników o pomoc w jej nauce.

8

Po pierwsze: nie pozwól, aby nazwa Cię mylała: Struts2 i Struts są bardzo różnymi frameworkami.

Po drugie: zmiana z JSP na Velocity może być dobrym lub złym decisition, ale to nie jest dokładnie to. Chodzi o to, aby odejść od Model1 (raczej starożytna nomenklatura, ale nadal jest przydatna). Oznacza to oddzielenie warstwy widoku od warstwy logicznej. (Możesz użyć JSP lub Velocity dla swojej warstwy widoku). Co więcej, decydowanie o warstwie widoku jest tylko częścią architektury: wciąż musisz zdecydować, kto przetworzy żądanie i wyprodukuje dane, które zostaną wysłane do widoku. Najbardziej podstawową opcją jest użycie zwykłych serwletów, ale znowu lepiej jest użyć jakiegoś frameworka. W tym celu istnieje lot of frameworks w Javie. Te "oparte na działaniu" są podzbiorem między nimi, być może najbardziej prostym do nauczenia. Wśród nich najstarszym jest Struts; dziś najczęściej wykorzystywane do nowych projektów to (w dowolnej kolejności) Struts2, Spring MVC i Stripes - są one dość podobne.

Powiązane problemy