Dobór technologii do aplikacji webowej

0

W ramach nauki tworzenia aplikacji webowych w Javie chcę stworzyć projekt bugtracker'a, coś a'la Redmine. Chcę go zrobić od A do Z i jak najwięcej z tego wyciągnąć, dlatego przed zaczęciem pisania jakiegokolwiek kodu chciałbym poradzić się tutaj, jakich technologii najlepiej użyć. Mam małe doświadczenie ze Springiem i Hibernate dlatego na pewno ich użyję. A więc do rzeczy, wybrałem:
Maven - do budowania projektu
Spring MVC - do backendu aplikacji
Hibernate - jako ORM
Spring Security - do autoryzacji i autentykacji
JSP - do widoków. Wcześniej używałem Thymyleaf, ale znajomość JSP przewija się zdecydowanie częściej w ofertach pracy stąd wybór tym razem na JSP
Tomcat - jako serwer.
Jako bazę prawdopodobnie wezmę PostgreSQL.
O HTML/CSS/JS nie wspominam bo to oczywistość i mowa tu o technologiach Javowych.

Możecie mi doradzić czego jeszcze i w jakim celu użyć? Chcę wyciągnąć z tego projektu naprawdę jak najwięcej.

0

rób spring boota.
do restów wziałbym jerseya
olej JSP, są nowsze rzeczy. A najlepiej olej javowy frontend.

0

do miłej pracy z bazą danych użyj Sping Data.

0

Cześć, trochę uczę się Springa, mam takie pytanie- czy Spring Boot jest dla tych którzy nie potrafią skonfigurować Springa? czy ma jakieś inne ficzery?

0

A ja sugeruję robienie RESTowego API w Springu i korzystanie z AngularJS lub podobnego frameworku JS :)

0
Wielki Wielkolud napisał(a):

Cześć, trochę uczę się Springa, mam takie pytanie- czy Spring Boot jest dla tych którzy nie potrafią skonfigurować Springa? czy ma jakieś inne ficzery?

Spring Boot wiele rzeczy ułatwia, ale to nie znaczy, że jest dla tych co nie umieją skonfigurować Springa.

No ale jak ktoś jest konserwą to będzie robił 'prawilnie' na Spring 3, stadem xmli razem z jsp. nawet jeśli będzie to malutka aplikacja.

0

Pomysł z frontem w Angularze + REST Api w Javie jest ciekawy, tylko Angulara nie znam w ogóle, ale to może najwyższy czas :) Czyli chcecie powiedzieć, że w Springu zrobić API udostępniające dane o jakie Angular będzie odpytywał, tak?

0

Angular będzie o nie zapytywał i je wysyłał :)

0

Chcę go zrobić od A do Z i jak najwięcej z tego wyciągnąć, dlatego przed zaczęciem pisania jakiegokolwiek kodu chciałbym poradzić się tutaj, jakich technologii najlepiej użyć.

Technologie to najmniejszy problem. Czy pomyślałeś o tym jak zaprojektujesz taką aplikację? (zarówno pod kątem interfejsu jak i pod kątem organizacji kodu, architektury, komunikacji między modułami, wzorców projektowych etc.).

O ile pytanie o technologie jest do pewnego stopnia słuszne, to jednak masę osób sprowadza developerkę do pytania, które technologie wybrać, a jednak nie jest to takie proste. Zresztą nawet jak wybierzesz dobre technologie, to nie znaczy, że będziesz w nich dobrze programował. Np. nawet jeśli baza danych PostgreSQL jest dobra, to nie znaczy wcale, że stworzysz dobre zapytania SQL do niej.

A więc do rzeczy, wybrałem:
(...długa lista technologii...)

No dobra, ale nie budujesz statku kosmicznego czy reaktora nuklearnego i nie musisz podejmować wszystkich decyzji na początku, bo inaczej będzie kuku. Możesz bardziej zwinnie podchodzić i dostosowywać technologie w trakcie rozwoju projektu. Zmieniać je jak rękawiczki. W końcu robisz to dla nauki :)

Powiem tak - ja sam dłubię sobie pewien projekt (nie w Javie akurat, tylko w JS, ale whatever) i na początku wybrałem Angulara, potem jednak w trakcie developerki okazało się, że kiepsko się on sprawuje do tego, co chciałem zrobić. Więc zrobiłem eksperyment - ściągnąłem Reacta i zrobiłem w nim bardzo prosty prototyp core'owej funkcjonalności mojej apki. Okazało się to dobrym pomysłem, więc podjąłem decyzję o wejściu w Reacta i przepisaniu tego na Reacta (którego się uczyłem w trakcie pisania).

Chociaż, tu uwaga, warto zachowywać zasadę separation of concerns, dzięki której np. zmiana technologii X na inną nie będzie się wiązała z przepisaniem całej aplikacji, a jedynie z przepisaniem np. jednego modułu.

Na twoim miejscu wybrałbym jakikolwiek stack, jaki uważasz za słuszny, zrobił na szybko prototyp aplikacji w stylu RedMine, ew. nie całej nawet tylko jej fragmentu, a potem wyciągnął dalsze wnioski czy wybory technologiczne były słuszne (chociaż zwykle i tak ważniejszy jest wybór/zaprojektowanie architektury niż wybór tej czy innej technologii*).

*no dobra, czasem wybór technologii też jest ważny czy nawet krytyczny dla apki. Ale myślę, że to się rzadziej zdarza. Ludzie przeceniają technologię a zapominają o architekturze.

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