[Java] Prośba o radę - stack technologiczny pracy inż.

[Java] Prośba o radę - stack technologiczny pracy inż.
Vaterial
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:4
0

Cześć wszystkim,

Zgłaszam się do Was z gorącą prośbą o radę.
Z racji tego, że projekt, na którym jestem od początku swojej "kariery" zawodowej to technologiczne bagno, w którym jestem zatopiony po uszy, postanowiłem, że nadszedł najwyższy czas na zmiany.
Przed zmianą pracy chciałbym jednak podszkolić się z technologii, które wykorzystywane są w normalnym, codziennym świecie IT. Tak się składa, że jestem na ostatnim semestrze studiów zaocznych, a przede mną praca inżynierska. Jako pracę inżynierską chcę stworzyć dość prostą aplikację webową (typowy CRUD), bez skomplikowanych procesów biznesowych, gdyż moim celem jest zapoznanie się z technologiami, a nie poświęcanie czasu na dogłębne analizy konkretnych scenariuszy / user case'ów. Chciałbym potraktować tworzenie tej aplikacji jako poligon ćwiczebny.
Z uwagi na powyższe chciałbym wykorzystać takie technologie, które są wykorzystywane w większości projektów / wymagane w ofertach pracy, póki co bez "wymyślnych" i "hipsterskich" rozwiązań, na to przyjdzie czas, teraz chciałbym zająć się totalnymi fundamentami.

Stanowisko w jakie mierzę to Back-end developer, a w przyszłości fullstack.
Niestety, nie mam prawie żadnego doświadczenia z aplikacjami webowymi. Architekturę REST, protokoły HTTP(S), frameworki JS-owe znam jedynie z teorii, dlatego każda cenna rada jest dla mnie ważna. Samą Javę SE znam nienajgorzej, mam jakieś nic niewarte certyfikaty OCA i OCP Java 8, natomiast Springa dopiero poznaję.

Czas na stworzenie tej aplikacji to jakieś 2-3 miesiące, około 15-20 godzin tygodniowo.

Technologie, które chciałbym użyć do swojego projektu to:
Spring Framework (Spring boot, Spring data, Spring MVC, Spring Security?), JPA (Hibernate), na froncie chciałbym wykorzystać jakiś popularniejszy framework (może AngularJS?), framework do testów, relacyjna DB. Rozważałem również implementację standardu OAuth, ale nie wiem czy nie lepiej poświecić czas na coś innego.
Rzeczy poboczne/DevOpsowe, jak GIT, Gradle/Maven, narzędzia CI/CD mam opanowane w stopniu wystarczającym.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2

Ale w sumie o co pytasz? :D Bo widzę że sensownie to sobie rozpisałeś. To co wypisałeś to takie sztampowe technologie które dają start w 75% ofert pracy. Oczywiście zaraz ktoś może powiedzieć, ze zamiast tego lepiej ratpacka, jooq, scale, cqrs... i kto wie, moze faktycznie "lepiej", ale raczej nie z punktu widzenia pracy ;)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
jarekr000000
Ciekawe, kto mógłby tak powiedzieć... ale dzięki i zgadzam się technologie rozsądne i mainstreamowe (do pracy) to zbiory rozłączne.
S9
"Oczywiście zaraz ktoś może powiedzieć, ze zamiast tego lepiej ratpacka, jooq, scale, cqrs..." Złoto :D :D :D
S9
@Shalom: ale z tego co wiem Spring Data już wspiera VAVR.IO więc mógłby pattern matching robić w Javie ;)
Sceptyczny Dinozaur
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:390
0
Vaterial napisał(a):

Cześć wszystkim,

Zgłaszam się do Was z gorącą prośbą o radę.
Z racji tego, że projekt, na którym jestem od początku swojej "kariery" zawodowej to technologiczne bagno, w którym jestem zatopiony po uszy, postanowiłem, że nadszedł najwyższy czas na zmiany.
Przed zmianą pracy chciałbym jednak podszkolić się z technologii, które wykorzystywane są w normalnym, codziennym świecie IT. Tak się składa, że jestem na ostatnim semestrze studiów zaocznych, a przede mną praca inżynierska. Jako pracę inżynierską chcę stworzyć dość prostą aplikację webową (typowy CRUD), bez skomplikowanych procesów biznesowych, gdyż moim celem jest zapoznanie się z technologiami, a nie poświęcanie czasu na dogłębne analizy konkretnych scenariuszy / user case'ów. Chciałbym potraktować tworzenie tej aplikacji jako poligon ćwiczebny.
Z uwagi na powyższe chciałbym wykorzystać takie technologie, które są wykorzystywane w większości projektów / wymagane w ofertach pracy, póki co bez "wymyślnych" i "hipsterskich" rozwiązań, na to przyjdzie czas, teraz chciałbym zająć się totalnymi fundamentami.

Stanowisko w jakie mierzę to Back-end developer, a w przyszłości fullstack.
Niestety, nie mam prawie żadnego doświadczenia z aplikacjami webowymi. Architekturę REST, protokoły HTTP(S), frameworki JS-owe znam jedynie z teorii, dlatego każda cenna rada jest dla mnie ważna. Samą Javę SE znam nienajgorzej, mam jakieś nic niewarte certyfikaty OCA i OCP Java 8, natomiast Springa dopiero poznaję.

Czas na stworzenie tej aplikacji to jakieś 2-3 miesiące, około 15-20 godzin tygodniowo.

Technologie, które chciałbym użyć do swojego projektu to:
Spring Framework (Spring boot, Spring data, Spring MVC, Spring Security?), JPA (Hibernate), na froncie chciałbym wykorzystać jakiś popularniejszy framework (może AngularJS?), framework do testów, relacyjna DB. Rozważałem również implementację standardu OAuth, ale nie wiem czy nie lepiej poświecić czas na coś innego.
Rzeczy poboczne/DevOpsowe, jak GIT, Gradle/Maven, narzędzia CI/CD mam opanowane w stopniu wystarczającym.

Takie coś to w tydzień napiszesz a nie 2-3 miesiące
no ok. może w 2 tyg. będzie dopracowane na cacy...

Zobacz pozostały 1 komentarz
Sceptyczny Dinozaur
przecież skoro chce użyć to chyba jednak ma znajomość, do odpalenia prostej apki webowej mielącej po bazie bez jakichkolwiek wymagań biznesowych to nawet 2 dni by mu styknęły jakby przysiadł
Shalom
Niestety, nie mam prawie żadnego doświadczenia z aplikacjami webowymi. Architekturę REST, protokoły HTTP(S), frameworki JS-owe znam jedynie z teorii, Springa dopiero poznaję
Sceptyczny Dinozaur
@Shalom, popatrz tu: https://spring.io/guides/gs/spring-boot/ tu piszą, że 15 minut potrzeba na samego springboota, świat poza CERNem trochę iaczej dziala, trzeba na[------]ać na wyścigi, nie ma czasu się zastanawiać... :D
Shalom
Panie, to można i w minutę zrobić. git clone && maven package ale to chyba nie o to chodzi...
Sceptyczny Dinozaur
no może nie aż tak, ale ja wywnioskowałem z jego postu, że praca ma pokazać użycie wszystkich wymienionych technologii do budowy prostej apki, gość wyraźnie pisze, że bez logiki biznesowej (do której dostosowanie moim skromnym zdaniem zeżarłoby największe zasoby czasu), więc tu jest kwestia zrobienia jak po sznurku jakiegoś modelowego przykładu jak z tutoriala, przy zastosowaniu typowych rozwiązań i typowych modułów (lub wykorzystania już takich, które sobie sam napisał) - tak to widzę
Vaterial
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:4
1
Shalom napisał(a):

Ale w sumie o co pytasz? :D Bo widzę że sensownie to sobie rozpisałeś. To co wypisałeś to takie sztampowe technologie które dają start w 75% ofert pracy. Oczywiście zaraz ktoś może powiedzieć, ze zamiast tego lepiej ratpacka, jooq, scale, cqrs... i kto wie, moze faktycznie "lepiej", ale raczej nie z punktu widzenia pracy ;)

Pod koniec pisania posta sam zacząłem się zastanawiać czy nie odpowiedziałem sobie sam na pytanie. :D Dzięki za odpowiedź.
Głównie chciałem aby ktoś mający jakieś doświadczenie w tej płaszczyźnie ocenił czy rozpisany plan ma sens i/lub doradził np. jakieś projekty Springowe lub inne technologie, które warto byłoby wdrożyć.

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

Polecam rozważyć Spocka do testów, Groovy + Spock >>> Java + JUnit + Mockito.
Na bazę danych polecam PostgreSQL, łatwo prosto i przyjemnie, ew. jeszcze warto rozważyć LiquiBasa do wersjonowania bazy danych (ułatwia testy integracyjne!)


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
whiplash
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:11
0
Vaterial napisał(a):
Shalom napisał(a):

Ale w sumie o co pytasz? :D Bo widzę że sensownie to sobie rozpisałeś. To co wypisałeś to takie sztampowe technologie które dają start w 75% ofert pracy. Oczywiście zaraz ktoś może powiedzieć, ze zamiast tego lepiej ratpacka, jooq, scale, cqrs... i kto wie, moze faktycznie "lepiej", ale raczej nie z punktu widzenia pracy ;)

Pod koniec pisania posta sam zacząłem się zastanawiać czy nie odpowiedziałem sobie sam na pytanie. :D Dzięki za odpowiedź.
Głównie chciałem aby ktoś mający jakieś doświadczenie w tej płaszczyźnie ocenił czy rozpisany plan ma sens i/lub doradził np. jakieś projekty Springowe lub inne technologie, które warto byłoby wdrożyć.

Witam. Jakie docelowo wybrałeś technologie ? I czy zakończyłeś projekt który zaplanowałeś/ jesteś zadowolony. coś byś teraz zmienił (w doborze technologii) ? Pozdrawiam.

Vaterial
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:4
0
whiplash napisał(a):
Vaterial napisał(a):
Shalom napisał(a):

Ale w sumie o co pytasz? :D Bo widzę że sensownie to sobie rozpisałeś. To co wypisałeś to takie sztampowe technologie które dają start w 75% ofert pracy. Oczywiście zaraz ktoś może powiedzieć, ze zamiast tego lepiej ratpacka, jooq, scale, cqrs... i kto wie, moze faktycznie "lepiej", ale raczej nie z punktu widzenia pracy ;)

Pod koniec pisania posta sam zacząłem się zastanawiać czy nie odpowiedziałem sobie sam na pytanie. :D Dzięki za odpowiedź.
Głównie chciałem aby ktoś mający jakieś doświadczenie w tej płaszczyźnie ocenił czy rozpisany plan ma sens i/lub doradził np. jakieś projekty Springowe lub inne technologie, które warto byłoby wdrożyć.

Witam. Jakie docelowo wybrałeś technologie ? I czy zakończyłeś projekt który zaplanowałeś/ jesteś zadowolony. coś byś teraz zmienił (w doborze technologii) ? Pozdrawiam.

Projekt skończyłem, jednak w innych technologiach niż początkowo zakładałem. Finalnie wybrałem stos MERN - Mongo Express.js React Node.js, w którym zrobiłem prostą appkę webową deployowaną na heroku. Prawdę mówiąc poszedłem trochę na łatwiznę, ponieważ core apki wziąłem z kursu, który robiłem na Udemy.
Prawdopodobnie teraz wziąłbym technologie Springowe (Spring Boot, Security, MVC, Data - może Cloud) + Angular/React na froncie (ew. Thymeleaf).

whiplash
Rozumiem. Dzięki za odpowiedź.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.