2012-04-24 12 views
18

Quindi, fondamentalmente ho una serie di preoccupazioni mi trattiene dal CoffeeScript:il momento giusto per usare CoffeeScript

  1. io non sono davvero un esperto in js ancora, anche se sto usando per circa 3 anni mi sento ancora come se mi mancasse qualcosa di importante a riguardo. Dal momento che per me è soprattutto una tecnologia di supporto, non ho mai trovato il tempo per andare a fondo in js (che, ammetto, potrebbe essere un atteggiamento sbagliato).

  2. conoscenza mio js otterrà ancora peggio se inizierò Utilizzando CoffeeScript

  3. Non sono sicuro se posso fidarmi davvero coffescript, che significa il codice js si compila per

  4. A volte Non capisco il coffeescript del codice js compilato e, peggio ancora, perché compila così.

Mi piacerebbe conoscere le tue opinioni sui punti precedenti. Il cruciale è: In che modo l'utilizzo del coffeescript ha influito sulla tua conoscenza di js? E quanto pensi che sia importante capire completamente js prima di passare al coffeescript?

+4

La domanda migliore dovrebbe essere _ "5. Che tipo di script del caffè ci fornisce tranne il codice non leggibile" _! – gdoron

+0

Se il tuo lavoro/lavoro potenziale richiede l'utilizzo di un coffeescript, allora credo che lo faccia. Altrimenti vai con il js normale. –

+4

* "Non sono ancora un esperto in js" * - quindi impara JS. vai a prendere un libro e leggi prova [VaporJS] (http://vaporjs.com/) mentre ci sei. perché passare attraverso tutti i problemi usando il coffeescript? – Joseph

risposta

11

Dovresti capire quali problemi dovrebbe risolvere Coffeescript. E per quello, dovresti avere una conoscenza di base delle "parti difettose" dei javascript. Suggerisco di leggere Douglas Crawford a riguardo (c'è un libro, ma anche molte risorse su internet. Solo su google "javascript bad parts"). Fondamentalmente, l'idea è che "Sotto tutte quelle parentesi graffe e punti e virgola, JavaScript ha sempre avuto un meraviglioso modello di oggetto nel suo cuore. CoffeeScript è un tentativo di esporre le parti buone di JavaScript in un modo semplice." (tratto dal sito del coffeescript).

C'è uno strumento per aiutare i programmatori ad evitare le trappole di javascript chiamate jslint. Questo strumento analizza il tuo codice e dà avvertimenti su errori comuni, come variabili globali, inserimenti punto e virgola, inquinamento dello spazio dei nomi, ecc ...

Coffeescript si traduce in javascript. Ma il javascript che genera è un sottoinsieme cannocchiale, altamente compatibile con jslint. Inoltre, genera codice javascript valido su tutti i browser. Quindi non è solo un bel livello di zucchero sintattico, aiuta davvero a generare codice solido.

1

Penso che la cosa fondamentale da ricordare qui è che Coffeescript è javascript. Ogni dichiarazione Coffeescript o operatore magico ha una distinta rappresentazione concreta in Javascript. Ad esempio, (x) -> x * x in Coffeescript si tradurrà direttamente in function (x) { return x * x; }.

Non si può davvero scrivere Coffeescript senza essere a conoscenza del Javascript che genererà. Per prima cosa, il Javascript generato è ciò che dovrai eseguire il debug. Se mai, credo che scrivere Coffeescript possa migliorare la tua comprensione di Javascript, perché ti obbliga a prendere decisioni che sono uniche per Javascript. Ad esempio, quando in Coffeescript, decidi di utilizzare => anziché -> in realtà stai prendendo una decisione sul fatto che tu voglia o meno associare this - un vero e proprio problema di Javascript.

Quando (o se) iniziare a utilizzare Coffeescript? Penso che la risposta a questo sia più o meno a te. Provalo e, se ritieni che sia più facile portare a termine le tue attività usando Coffeescript, seguitelo. Se trovi difficoltà a scrivere il codice in una lingua diversa da quella che viene eseguita (e quindi quella che devi eseguire il debug), torna a Javascript.

6

Vorrei rispondere alle vostre preoccupazioni.

1) Se usi JS da tre anni, probabilmente hai una solida conoscenza di JS. Se non hai ancora acquisito una solida comprensione, potrebbe essere il momento di integrare le tue conoscenze con uno dei buoni libri JS.

2) La sceneggiatura del caffè probabilmente non renderà la vostra conoscenza di JS peggiore. Il modo in cui progetta le applicazioni per lo script di Coffee è lo stesso del modo in cui dovresti progettare un'applicazione JS (per la maggior parte), in modo che le abilità di progettazione acquisite vengano trasferite. La progettazione del programma, a mio avviso, è l'aspetto più importante della programmazione.

3) Perché non ti fidi del JS? Perché ti fidi degli altri compilatori/interpreti/altri strumenti che usi? Dubito che Coffee-script sia privo di errori, ma molte persone lo usano per molti scopi. Ciò significa che è stato testato un ampio insieme di comportamenti, spesso in produzione, quindi il tuo caso d'uso è probabilmente già stato provato e testato.

4) Naturalmente il JS generato da Coffee-script ti sembrerà estraneo, dal momento che le regole per generarlo non hanno la leggibilità umana come priorità. Leggendolo, tuttavia, aumenterai la tua conoscenza di JS mentre vedi come funzionano i programmi scritti in modo particolare. Questo ci riporta al punto 1.

+0

Ho votato la tua risposta, ma generalmente credo che la leggibilità umana è in realtà una priorità (forse non la più alta) del design del compilatore CoffeeScript. Non trovo che ho bisogno di guardare lo JavaScript compilato molto spesso, ma quando lo faccio, non ho problemi a collegarlo all'intento del mio CoffeeScript. Detto questo, il tuo punto di lettura aumenta la conoscenza di JavaScript è ben fatta ... come il resto della tua risposta. –

+0

+1 anche qui, ma non sono d'accordo nemmeno con il punto di vista estraneo/non leggibile. Coffeescript ha regole molto chiare su come si traduce in Javascript, ed è abbastanza facile riconoscere il codice compilato. Le regole sono proprio lì, sulla prima pagina di http://coffeescript.org/ – AHM

1

Così qui è quello che penso sul tema:

  1. JS non è una tecnologia di supporto (il supporto per che cosa?). È un linguaggio utilizzato principalmente in front-end e c'è una nuova tendenza ad usarlo sul back-end. Poiché il browser non supporta CoffeeScript in modo nativo rispetto a meno che non lo si utilizzi come back-end, non penso che ci sia un punto nell'utilizzo di CoffeeScript. Sebbene l'apprendimento di una nuova lingua sia sempre una buona idea.

  2. Niente affatto. In realtà usare CoffeeScript è come usare un linguaggio diverso. Imparare non si può farti più stupido nell'altro. A meno che non smetti di imparare l'altro.

  3. Non vi è alcuna prova che CoffeeScript sia compilato in modo errato o lento. In realtà sto usando CoffeeScript da un po 'di tempo e non ho notato lo di qualsiasi hit delle prestazioni dello.

  4. In realtà non è necessario comprendere perché viene compilato in questo modo. Se stai usando CoffeeScript su back-end, non devi nemmeno guardare il codice in cui viene compilato (hai solo bisogno del codice sorgente). Per quanto riguarda l'utilizzo di script per browser allora sì - potrebbe essere un po 'difficile lavorare con esso (debug). Ecco perché consiglio sempre di scrivere normale JavaScript per i browser e utilizzare CoffeeScript sul back-end.

Ora come per l'ultima domanda: non credo che CoffeeScript abbia influenzato la mia conoscenza JS. Li tratto come lingue separate. Inoltre, non è necessario conoscere JS per passare a CoffeeScript (sebbene sia necessario) a meno che non si desideri utilizzare CoffeeScript sul front-end.

Anche mastering JavaScript è sempre una buona idea, non importa quale. :)

Problemi correlati