Quanto è importante l'utilizzo della stessa lingua per client e server?

11

Ho valutato soluzioni di architettura per un progetto mobile che avrà un'app / servizio web in aggiunta alle app native e ho esaminato varie librerie, framework e stack come Meteora , essendo una sorta di" pacchetto di pacchetti stack aperti ", è strettamente legato a Node.js .

Si parla molto dei vantaggi dell'utilizzo della stessa lingua lato client e server, e io non lo capisco. Potrei capire se vuoi rispecchiare l'intero stato di un'applicazione web su client e server, ma faticando a trovare altre vittorie ... Efficienza del flusso di lavoro?

Sto cercando di capire perché la parità linguistica client / server è considerata un Santo Graal. Perché la parità linguistica client / server è importante nello sviluppo del software?

    
posta Makita 25.10.2012 - 12:30
fonte

3 risposte

5

Sul lato PRO:

  • Se gli schemi e il codice possono essere riutilizzati da entrambe le parti, c'è molta efficienza nell'implementare logica e dati simili solo una volta.

Sul lato CON:

  • Il client può essere principalmente una visualizzazione che è adatta per un markup o linguaggio di script, mentre il server può essere principalmente la logica di business che è più adatta a una lingua diversa.

Nello sviluppo web, le lingue sono proliferate, creando potenti strumenti per parti specifiche del sistema e la necessità di molte specialità da apprendere dagli sviluppatori o dai team di sviluppatori. In altre aree come l'elaborazione delle transazioni o sistemi incorporati che seguono un approccio alla progettazione di sistemi, ci possono essere risparmi da un linguaggio comune.

I nuovi framework Javascript sembrano arrivare molto velocemente, e sono stati fatti alcuni lavori per raggruppare le API per il back-end e gli strumenti per il front-end. Potrebbe essere intelligente mantenere la flessibilità e la separazione delle preoccupazioni tra codice lato client e server in modo che tu sia libero di fluttuare tra di loro senza rimanere troppo a lungo con uno strumento particolare.

    
risposta data 25.10.2012 - 13:16
fonte
14

Presumibilmente i benefici percepiti sono:

vale a dire. semplifica la gestione delle risorse per i project manager e ha scarso o nullo vantaggio tecnico (forse anche un vantaggio tecnico negativo se stai assumendo una manciata di pony di trick)

    
risposta data 25.10.2012 - 12:58
fonte
2

Il vantaggio è che puoi riutilizzare (in qualche modo) le competenze e il codice delle persone su entrambi i lati.

La gente

Gli sviluppatori devono padroneggiare una singola lingua e formare un singolo pool. Piuttosto che due pool di competenze. Ciò semplifica il trasferimento delle conoscenze tra di loro e anche per consentire loro di cambiare il loro lavoro tra client e lato server più facilmente. Infine, facilita la comunicazione con i membri del team "dall'altra parte" quando discute di problemi tecnici perché condividono lo stesso background tecnico.

Codice

A volte è utile avere uno stato sul lato client, o algoritmi, o entrambi. A volte, lo stesso è fatto su entrambi i lati. Prendiamo l'esempio di un gioco multiplayer: è necessario rappresentare lo stato del gioco su client e server. Inoltre, è necessario implementare le regole sul lato client (per la reattività) e anche sul lato server (per convalidare le azioni di un giocatore). Essere in grado di riutilizzare il codice per queste cose può essere un grande vantaggio. ... in alcune altre applicazioni, non avresti bisogno di questo ... tutto dipende dal caso.

... ovviamente ci sono anche aspetti negativi, ma questo è per un altro post;)

    
risposta data 25.10.2012 - 15:42
fonte

Leggi altre domande sui tag