C'è qualche ragione per non fare una webapp solo sul lato client?

8

Recentemente ho iniziato a scrivere un'applicazione per la simulazione di algoritmi di individuazione dei percorsi in python.

Accetta gli input dell'utente, genera in modo casuale un grafico 2D e mostra la simulazione tramite GUI.

Ora, quello che ho trovato è che Python e le applicazioni autonome non sono molto appropriate per condividere questo tipo di applicazione, in quanto è necessario convincere le persone a eseguirlo sul proprio computer, ecc. Sarebbe molto più conveniente semplicemente indirizzandoli su un sito web.

Ovviamente gli elementi di visualizzazione e controllo devono essere scritti sul lato client.

Ma l'algoritmo di individuazione del percorso effettivo potrebbe essere scritto sul lato client o server.

Ora, dato che non è necessario un back-end lato server (cioè nessun database), sarebbe possibile eseguire l'intera webapp sul client HTML / JavaScript.

La domanda è, c'è una buona ragione non per fare questo?

Il modo in cui lo vedo, facendolo solo lato client, ridurrebbe di molto la complessità, perché non è necessario gestire l'interazione tra client e server. L'unica cosa per cui il server è, è di servire inizialmente il Javascript al client.

D'altra parte ... dovrei scrivere l'intera cosa in Javascript ...

Inoltre, l'idea di avere un modulo modello riutilizzabile mi attrae. Per esempio. Se voglio in seguito avere un'applicazione standalone, dovrei semplicemente scrivere i moduli View / Control.

Mi sto chiedendo quale sarebbe in generale la pratica accettata qui.

    
posta dwjohnston 26.04.2015 - 03:00
fonte

1 risposta

7

Hai delineato i vantaggi del solo lato client dell'app. Ecco alcuni possibili svantaggi: se uno o tutti si applicano, prendere in considerazione il passaggio a una soluzione basata su server:

  • Prestazioni. Una soluzione basata su client sarebbe notevolmente più lenta di una basata su server (incluso il traffico)? Javascript è veloce al giorno d'oggi, ma un algoritmo computazionalmente costoso potrebbe richiedere hardware dedicato lato server o farm HPC.
  • Produttività. Se sei un dev di Python senza JS, il tempo necessario per imparare una nuova lingua e i suoi idiomi potrebbe essere proibitivo, o almeno più lungo dell'attuazione della logica client / server. Inoltre, potrebbero essere utili librerie Python che è possibile utilizzare e che non sono disponibili per JS, il che aumenterebbe considerevolmente i tempi di sviluppo.
  • Proprietà intellettuale. Se questo algoritmo è qualcosa che desideri proteggere, avere il codice disponibile sui computer client potrebbe essere un problema.
  • Compatibilità. Più codice basato su browser significa più problemi di compatibilità del browser. Questo è molto più facile in questi giorni, ma potrebbe comunque rappresentare un problema, a seconda del pubblico e della portata previsti.

In breve, Javascript sul lato client è una piattaforma perfettamente funzionante per l'elaborazione algoritmica e può essere facilmente implementato sia su un browser che su un'app standalone (utilizzando un motore di ricerca come Awesomium), ma ha i suoi avvertimenti. Passaci sopra per fare una scelta informata.

    
risposta data 26.04.2015 - 06:58
fonte

Leggi altre domande sui tag