Javascript: investi in ES6 o impara come prototipo fundementals [chiuso]

-1

In qualità di ingegnere del software in erba, cosa vale la pena investire nel tempo in termini di Javascript? Sono interessato ai profitti a lungo termine in termini di una più profonda comprensione delle lingue, della tecnologia, dell'ingegneria del software, ecc. Semplicemente usando le lingue.

Mi piace molto il modello di prototipo di JavaScript e sono perfettamente a mio agio nell'implementare l'ereditarietà, la chiusura, ecc. e mi considero un utente di livello medio-avanzato. C'è ancora un sacco di cose che non conosco, compreso il modo in cui funzionano i costruttori Promise, i generatori / iteratori e probabilmente di più. Sono anche diventato consapevole di come è possibile implementare modelli funzionali in Javascript, qualcosa a cui sarei interessato a prendere confidenza con l'andare avanti. (sembra che non si possa facilmente usare una sintassi basata su 'classe' con codifica funzionale).

Ma Javascript come linguaggio prototipo viene mascherato da ES6 / Typescript / etc. Queste implementazioni dello zucchero sintattico sembrano probabilmente prevalenti rispetto a JavaScript stesso.

Sto cercando opinioni da sviluppatori più esperti di me su quale direzione scegliere nello sviluppo di una nuova app che sto per iniziare per perfezionare una competenza esistente (possibilmente obsoleta) o sviluppare una nuova e più moderna abilità.

Le mie scelte sono:

  1. Continua ad approfondire il modello di prototipo Javascript
  2. Implementa (e impara) la nuova sintassi basata su classe ES6.
posta Zach Smith 01.11.2016 - 22:47
fonte

1 risposta

5

Se stai parlando di un esercizio di apprendimento, allora penso che sia molto utile a lungo termine capire appieno come funziona il prototipo di modello JavaScript sotto le copertine e il modo migliore per farlo è attraversare un sacco di esercizi per costruire gerarchie di oggetti senza lo zucchero della sintassi ES6. Se puoi creare sottoclassi e mixin usando semplici prototipi e comprendere appieno come questi oggetti combinati sono costruiti e funzionano usando il semplice ES5 Javascript, allora avrai una buona comprensione di come funzionano le parti principali del sistema prototipo.

Una volta compresa questa comprensione, sentiti libero di utilizzare la sintassi della classe ES6 per esprimere la struttura desiderata perché è semplicemente più semplice leggere e scrivere. Ma hai ragione che la nuova sintassi nasconde una buona dose dell'attuale implementazione che oscurerà anche il modo in cui funziona davvero sotto le copertine. Quindi, direi di imparare come farlo alla vecchia maniera senza il nuovo zucchero sintattico e poi quando andrai a scrivere codice usando la sintassi ES6, saprai meglio cosa sta facendo sotto le coperte.

La nuova sintassi ES6 è ancora solo zucchero sul modello prototipo, quindi non esiste nessuno dei due. Se non impari prima il modello prototipo, non capirai veramente cosa stia facendo effettivamente la sintassi della classe ES6. E poi, quando vuoi eseguire il debug di qualcosa di complesso o vuoi fare qualcosa che non ha una nuova sintassi (come un oggetto mixin costruito), non capirai davvero come funzioni tutto sotto. Io voterei per imparare il modello prototipo di base e poi, dopo averlo fatto, usare la nuova sintassi come un modo più pulito per esprimere la struttura desiderata.

My choices are:

Carry on deeper into the Javascript prototype model

Sì, fallo prima.

Implement (and learn) the new ES6 class-based syntax

Quindi, dopo aver fatto il primo, scrivi il tuo codice di produzione usando la nuova sintassi, ma con una piena comprensione di ciò che sta effettivamente facendo sotto le copertine.

Come esercizio di prova piacevole, dichiarare due classi separate con la sintassi ES6. Sottoclassi ciascuno. Quindi, crea un nuovo oggetto mixin che è un mix di entrambi gli oggetti sottoclassi. Se puoi farlo, probabilmente comprendi come la sintassi ES6 utilizza effettivamente il prototipo.

    
risposta data 01.11.2016 - 23:40
fonte

Leggi altre domande sui tag