Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Kde provádět výpočty? Frontend vs. Backend

Ostatní jazyky Ostatní programovací jazyky Kde provádět výpočty? Frontend vs. Backend

Aktivity (1)
Avatar
Pyvo
Člen
Avatar
Pyvo:1.12.2016 15:56

Vyvíjím sadu několika webových aplikací. Ve formuláři zadá uživatel vstupní data a appka provede výpočet a zobrazí výsledky. Některé aplikace jsou jednoduché - třeba sada deseti rovnic a hotovo. Některé jsou složitější - matice 100x100 a úpravy na nich, hodně iterace.

  • Všechny aplikace tahají data z sql databází, takže většina vstupních dat je na serveru tak jako tak.
  • Není žádný důvod použít server pro ověření vstupních dat. Uživatel (obejitím frontend validace) může poškodit jen sám sebe.
  • Vyhovuje mi python na serveru, protože má skvělou knihovnu numpy pro numerické výpočty. Ale nechci aby se uživatel rozčiloval kvůli pomalé odezvě. V JS bych to snad taky zvládl naprogramovat.

Provádět výpočty v javascriptu/jquery a přenést tak zátěž na uživatele nebo vše nechat na serveru (python+flask)? Existuje nějaké obecné dopooručení? Díky

 
Odpovědět 1.12.2016 15:56
Avatar
Odpovídá na Pyvo
Petr Čech (czubehead):1.12.2016 16:20

Pokud jsou data jen pro uživatele tak v prohlížeči. Je zbytečné zatěžovat server.

Nahoru Odpovědět 1.12.2016 16:20
Why so serious? -Joker
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Pyvo
Jiří Gracík:1.12.2016 16:32

Má to běhat i na telefonu? Je ten výpočet potřeba pokaždé, když zobrazíš stránku, nebo méně často?

Nahoru Odpovědět 1.12.2016 16:32
Creating websites is awesome till you see the result in another browser ...
Avatar
Martin Florián:1.12.2016 16:39

Zajímavé téma. Určitě bych se přiklonil k tomu, aby výpočty prováděl server. Tady je příklad proč:

  • Mám pár let starý smartphone (1C, 512MB RAM), tedy výpočty budou trvat mnohem déle než na serveru
  • Používám pomalé připojení, takže se výrazně zvýší latence, protože potřebuji nejprve stáhnout všechny JS a následně i vstupní data z DB
  • v případě, že výpočet bude trvat až přiliš dlouho, je celkem jednoduché ho korektně ukončit na serveru a zalogovat událost pro budoucí analýzu
 
Nahoru Odpovědět 1.12.2016 16:39
Avatar
Luboš Běhounek (Satik):1.12.2016 16:42

Pokud je to něco, kde je hodně výpočtů a kde je šance, že to bude používat víc lidí, tak na klientu, jinak brzo server přetížíš :) .

Nahoru Odpovědět  +1 1.12.2016 16:42
:)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Pyvo
David Čápka:1.12.2016 17:38

Pokud to je něco, co není příliš obchodně zajímavé, dal bych kód klidně ke klientovi. Když tam dáš ale něco převratného, musíš počítat s tím, že to jde z klienta velmi jednoduše ukrást a to i když to obfuskuješ.

Nahoru Odpovědět  +1 1.12.2016 17:38
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Pyvo
Člen
Avatar
Odpovídá na Jiří Gracík
Pyvo:2.12.2016 7:53

Odpovím na otázky z diskuze.

  • Předpokládá se většina uživatelů na desktopu. Mobil jen okrajově. Ale tohle se těžko odhaduje.
  • Výpočet proběhne až si uživatel řekne, nikoliv při každém zobrazení stránky.
  • Nechtěl bych aby do kodu někdo hrabal. Díky za připomínku, tohle mi uniklo.

Zatím jsem spíše pro výpočet na serveru. Přetížení je samozřejmě reálná hrozba, takže bych to chtěl sledovat a pak případně řešit.

 
Nahoru Odpovědět 2.12.2016 7:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.