Wpis z mikrobloga

#programowanie #javascript #nodejs #embedded #linux

Planuję zrobić urządzenie, które na SoC (typu Raspberry Pi albo raczej tańsze/słabsze) z jakimś Linuxem na pokładzie będzie miało postawiony web server z stronką WWW, na której będą wizualizowane i gromadzone dane typu wskazania jakiś pomiarów, wykresy itd. - i będzie całkiem sporo tego.

O ile sprawy niskopoziomowe ogarniam jako tako, to programowanie webowe w ogóle i będę się musiał tego nauczyć. I teraz pytanie - jaki stackt technologiczny byście polecili? Podstawowy warunek - musi zajmować mało miejsca i być wydajny, ponieważ ma działać na skromnym systemie wbudowanym.

Sprawy niskopoziomowe i baza danych to dla mnie wiadome - C, Lua i SQLite.

Co z aplikacją webową? Myślałem nad:
- backend - node.js (jakiś framework...? nigdy z tego typu rzeczy niekorzystałem...)
- frontend - React

Z góry Bóg zapłać za wszelkie rady i wskazówki ( ͡° ͜ʖ ͡°)
  • 19
Z rad to polecalbym do wykresów chart.js co do tego w czym to będziesz robił, to moim zdaniem bez znaczenia;p może być node+ react/vue może być oldschoolowo w PHP + HTML ;) jeśli to ma być czysto domowy projekt dla Ciebie to nie wiem czy bym nie olał frameworkow;pc
@Wegrzynski: Jeśli chodzi o framework do Node.js to polecam Koa. Natomiast co do frontu - React jest moim zdaniem piękny w swojej prostocie, ale znam wielu programistów z mocnym backgroundem w bardziej tradycyjnych językach i frameworkach, którzy absolutnie go nienawidzą. Dla takich ludzi Angular jest dużo bardziej przystępny.
może być node+ react/vue może być oldschoolowo w PHP + HTML ;)


@UrimTumim: Ma byś nowocześnie, to drugie odpada :D

jeśli to ma być czysto domowy projekt dla Ciebie to nie wiem czy bym nie olał frameworkow;pc


@UrimTumim: Być może przerodzi się to z czasem w coś poważniejszego, dlatego od początku chcę to robić na poważnie i tak jakby to miał być projekt komercyjny ( ͡° ͜ʖ ͡
A można nie rozdzielać? Z tego co widzę to node.js może robić za jedno i drugie, tak? To w takim wypadku react będzie potrzebny tylko do UI czyli tego co zobaczymy w przeglądarce czy coś pomieszałem?


@Wegrzynski: SSR vs CSR. Node nie może robić za jedno i drugie bo to runtime serwerowy. Możesz w Node generować całe strony HTML (SSR), tylko wtedy każde przejście do innej zakładki albo jakakolwiek inna interakcja
via Wykop Mobilny (Android)
  • 0
@Wegrzynski: jak chcesz się nauczyć czegoś nowego to bym wziął Reacta do UI i jakąś bibliotekę do wykresów. Myślę że sporą pomocą będzie jak wrzucisz w Google "react Smart Home dashboard" i zobaczysz, jak inni do tego podchodzili. Ogólnie fajny pomysł, co będziesz monitorować?
@WewnetrznySpokoj zastosowanie SSR nie oznacza, że przejście do innych podstron będzie wymagało przeładowania strony. SSR powinno generować pierwszą odwiedzoną stronę, ale nawigacja po tejże powinna odbywać się po stronie klienta, tak jak w przypadku CSR.
via Wykop Mobilny (Android)
  • 1
@Wegrzynski: jak ma być szybko to ja bym postawił flaska i jakiś chartsjs. Jak ma być ładnie to react albo angular ale to już więcej roboty zeby wyświetlać parę wykresów i nic więcej. Ale jak piszą wyżej. Jakas grafana czy coś takiego gotowego i śmiga.
@WewnetrznySpokoj nie. To co opisuję to SSR. SSR oznacza, że strona /a, /b, itd., może być wyrenderowana na serwerze, jeśli serwer otrzyma zapytanie pod taki URI. Ale nie oznacza to, że nawigacja między tymi stronami musi się również odbywać z udziałem serwera (poza dociągnięciem ewentualnych danych).

https://developers.google.com/web/updates/2019/02/rendering-on-the-web#rehydration

W przypadku "hybrydy" serwer nie byłby w stanie wyrenderować strony /b i zwracałby pusty dokument HTML.
@oMatej: SSR + Rehydration to właśnie hybryda. Jeśli możesz przejść z /a do /b bez udziału serwera (poza dociągnięciem danych) to wykonujesz renderowanie po stronie klienta, CSR. Nawet to co podlinkowałeś mówi wprost:

Often referred to as Universal Rendering or simply “SSR”, this approach attempts to smooth over the trade-offs between Client-Side Rendering and Server Rendering by doing both


EDIT: A kawałek wyżej masz opisane jak wygląda czysty SSR:

Server rendering
@Wegrzynski: ja na raspberry pi kiedyś zrobiłem apkę w Endify i działało nawet na kubernetes :) tylko jeszcze mi dużo dokumentacji brakuje :D tam stack jest Node.js + Vue.js