Wpis z mikrobloga

Cześć, chciałem napisać aplikację (poćwiczyć technologie i mieć coś do cv) - grę w szachy.
Chciałem napisać w Javie (i przymierzam do czegoś nowszego niż 8, którą używam w pracy) i raczej dropwizard do sieci (nie wiem czy potrzebuję Springa).

Nie orientuje się w grafice i architekturach webowych w związku z czym mam parę pytań
1) Jaki technologi użyć by tworzyć UI na webie i desktopie?
Liznąłem angulara, ale tam raczej za dużo z grafiką nie pomajstruję (może nie potrzebuje?). Nie mam pomysłu, może Vaadin? Na wersję desktop rozważam JavaFX.

Lub nie zaprzegać całej biblioteki? Może podejść "niskopoziomowo" i rysować w AWT (i np. w Canvas HTML).

2) Komunikacja klient - serwer.
Myślałem o serwerze, który ma db z rankingami itd, waliduje ruchy. Oraz klient (przeglądarka/desktop) gdzie się wybiera grę i gra. Jest obecnie dużo architektur aplikacji sieciowych i nie wiem co wybrać (a przeglądałem trochę). Wydaje mi się, że api restowe wystawione przez serwer by zadziałało, ale czy potrzebuję co ruch protokołem http przekazywać dane?

Chyba potrzebuję czegoś szybszego a moja uboga wiedza podpowiada mi użycie socketów i prostego tcp z jakimś własnym układem danych. Jak z infrastrukturą - prościej bedzie postawić mi AWS EC2 na serwer i testowo localhosta żeby sprawdzić czy to zatrybi czy raczej odpalić przez netty?

tldr pomóżcie wybrać
- technologię do UI na web + desktop
- wybór serwera + protokołu + infrastrukturę (chmura?) na ten projekt

#java #naukaprogramowania #programowanie
  • 7
@scriptkitty: zapowiada się powtórka javascriptu.
Jak rozumiem piszę klienta desktopowego w JavaScript i potem taki program muszę uruchomić na czymś co rozumie JavaScript (przeglądarka / serwer nodeJS)? Czy nodeJS ma "środowisko wykonywawcze" które bez odpalania serwera jest w stanie przetwarzać kod JS?

A co myślisz o Angularze? Za duży framework do tego zadania?
A co myślisz o Angularze? Za duży framework do tego zadania?


@Lewo: Ja nie jestem fanem Angulara więc nie jestem dobrą osobą do tego. Ale angular jest raczej frameworkiem do dużych aplikacji enterprise. Do niedużej gry js wydaje mi się odpowiedni.
Nie wiem czy Netty (TCP + własne body) nie bedzie zbyt niskopoziomowe. lichess używa Play Framework (http), wszelakie rozwiązania sieciowe do Javy też raczej są conajmniej http (Jetty, Tomcat) + ewentualnie servlet containerem.

Jakiś java-owiec podpowie, co warto użyć do serwerka szachowego? Nie wiem czy wykorzystam NIO z Netty, raczej tylko, to że mogę TCP customizowac.
@Lewo:

Jakiś java-owiec podpowie, co warto użyć do serwerka szachowego? Nie wiem czy wykorzystam NIO z Netty, raczej tylko, to że mogę TCP customizowac.


jeżeli nie chcesz się bawić z netty (bo jest dość niskopoziomowe i będziesz musiał się skupić na przesyłaniu danych zamiast na logice - chociaż, netty jest super, także i tak warto się tego frameworka nauczyć), to możesz użyc https://vertx.io/ - tutaj możesz zaprzęgnąć i HTTP i TCP