Aplikacja webowa w Javie (co najwazniejsze)

0

Witam,
Mam pytanie do doświadczonych programistów JEE. Niedawno zacząłem poznawać JEE, ucząc się budowy servletów i stron JSP. Na razie mam o tym jeszcze bardzo mętne pojecie, jednak troszeczkę przeraza mnie ogrom wszelkiego rodzaju frameworkow i sposobów tworzenia tego typu aplikacji. Moze mam tylko takie wrażenie, jednak chciałbym się zapytać ludzi znających się na rzeczy co w tym wszystkim tak naprawdę jest potrzebne do pisania profesjonalnych aplikacji webowych? Przyznam, że stoję przed wyborem tematu pracy dyplomowej i zastanawiałem się nad wykonaniem jej właśnie jako aplikacji webowej. Aplikacja na pewno będzie potrzebowała jakiegoś systemu logowania, dostępu (i stosunkowo wielu operacji) na bazie danych i dosyć skomplikowanych algorytmów. Jak Java sprawdzi się w rozwiązaniu tego typu problemu? Zbudowanie aplikacji miałoby być tylko częścią pracy i zastanawiam się czy jest to możliwe w miarę rozsądnym czasie.

Dziękuje serdecznie za każda odpowiedz

0

Dlaczego logowanie to ma być wiele operacji i dużo czasu? Bierzesz coś co się nazywa Acegi Security (ostatnio Spring Security), konfigurujesz i masz. Dla mało zdolnego developera z tutorialem w ręku jeden wieczór góra.

0
Koziołek napisał(a)

Dlaczego logowanie to ma być wiele operacji i dużo czasu? Bierzesz coś co się nazywa Acegi Security (ostatnio Spring Security), konfigurujesz i masz. Dla mało zdolnego developera z tutorialem w ręku jeden wieczór góra.

Może nie do końca zwięźle to napisałem. Nie chodziło mi że logowanie to skomplikowana sprawa i zajmie dużo czasu. Logowanie to tylko część aplikacji. Właściwa aplikacja będzie wymagała implementacji kilku bardziej lub mniej skomplikowanych algorytmów i wielu operacji na bazie danych. Do tego jakaś sensowna komunikacja z użytkownikiem.

0

Adam Bien na 4Developers w 5 minut (w ramach Java Underground) postawił działająca aplikację webową. Nie zawierała skomplikowanej logiki biznesowej, ale to inna inszość.

Pierwszy prototyp aplikacji możesz napisać w jeden wieczór. Przy okazji przygotowując różne narzędzia. Każda kolejna procedura biznesowa jest tylko rozszerzaniem aplikacji. Podstawa jest tu oczywiście dobry projekt, który powinien zawierać jak najwięcej informacji. Z dobrym projektem programowanie jest bajką.
Najbardziej skomplikowane algorytmy to logika biznesowa. Wszystko co związane z komunikacją, bezpieczeństwem czy bazami danych masz zazwyczaj dostępne w postaci w miarę łatwych do skonfigurowania bibliotek.

0
Koziołek napisał(a)

Pierwszy prototyp aplikacji możesz napisać w jeden wieczór. Przy okazji przygotowując różne narzędzia. Każda kolejna procedura biznesowa jest tylko rozszerzaniem aplikacji. Podstawa jest tu oczywiście dobry projekt, który powinien zawierać jak najwięcej informacji. Z dobrym projektem programowanie jest bajką.
Najbardziej skomplikowane algorytmy to logika biznesowa. Wszystko co związane z komunikacją, bezpieczeństwem czy bazami danych masz zazwyczaj dostępne w postaci w miarę łatwych do skonfigurowania bibliotek.

Chyba autor postu raczej prosi o poradę jak zabrać się do pisania interfejsu webowego w javie a nie wykładni nt. wyższości logiki biznesowej nad UI...

Ogólnie podejść to pisania aplikacji webowych w Javie jest masa więc nie licz że dokonasz najlepszego z wyborów :P

Mimo to profesjonalny interfejs webowy można napisać w samym JSP jeżeli znasz stosowane tutaj wzorce projektowe i czujesz jak to się robi.

Jeżeli chodzi o mnie podejście do wyboru frameworków czysto javowych mam takie:

  • interfejs opierający się na stosunkowo prostych formularzach - JSP+Struts
  • skomplikowany interfejs z wieloma komponentami rozrzuconymi po całej stronie - JSP+JSF

Chociaż osobiście uważam że java jest nadmiernie skomplikowanym narzędziem do robienia interfejsów webowych. Bardziej do tego nadają się PHP lub Ruby i dlatego ostatnio powstaje masa rozwiązań do mieszania tych języków z Javą. Możesz napisać sobie logikę w Javie w ogóle nie przejmując się interfejsem (wręcz powinieneś :) ), a potem dać jakiemuś web developerowi do napisania interfejs webowy z wykorzystaniem JRuby, w którym będzie bezpośrednio wykorzystywał twoje klasy javowe. To samo możesz zrobić z PHP wykorzystując Quercus. Innym ciekawym dosyć leniwym podejściem jest np. napisanie serwera w Javie, który ma REST'owy interfejs poprzez który udostępnia całą swoją funkcjonalność i klienta w samym JavaScript/HTML.

Jeżeli dobrze rozumiem że w twojej aplikacji jest skomplikowana logika, która potrzebuje tylko prostej interakcji z użytkownikiem to raczej poleciłbym interfejs napisać po prostu w JSP+Struts. Masz kilkunastostronicowe tutoriale w necie po których wykonasz w mirę profesjonalny interfejs w Struts. Bardziej przejmuj się dobrym zaprojektowaniem swojej aplikacji od strony logiki bo w tym przypadku interfejs będzie tylko jej zwięczeniem (to chyba chciał ci przekazać Koziołek...).

0

Dzięki wielkie Panowie. O takie informacje mi chodziło :)
Jeszcze takie małe pytanie. Co dokładnie rozumiecie pod pojęciem logiki biznesowej? Wszystkie możliwe operacje na danych czyli cale "flaki" programu bez części odpowiedzialnej za komunikacje z użytkownikiem?

0

Ja bym się jeszcze doczepił z pytaniem pomocniczym.
Czym jest logika biznesowa w przypadku czegoś tak oklepanego jak program sklepu internetowego?

1 użytkowników online, w tym zalogowanych: 0, gości: 1