coffeescript — συγκεντρωτικός οδηγός — DedSec Project
coffeescript — συγκεντρωτικός οδηγός CoffeeScript Τι προσφέρει η γλώσσα Η CoffeeScript έχει σύντομη σύνταξη και εσοχές, αλλά μεταγλωττίζεται σε JavaScript. Η διάγνωση απαιτεί να κοιτάς πηγή…
CoffeeScript
Τι προσφέρει η γλώσσα
Η CoffeeScript έχει σύντομη σύνταξη και εσοχές, αλλά μεταγλωττίζεται σε JavaScript. Η διάγνωση απαιτεί να κοιτάς πηγή και αποτέλεσμα.
Μικρό παράδειγμα προς μελέτη
double = (n) -> n * 2
console.log double 7
Μεταγλώττισε τη συνάρτηση και δες το JavaScript. Δοκίμασε λανθασμένη εσοχή για να παρατηρήσεις αλλαγή δομής.
Τι να επαληθεύσεις
Κατάγραψε την πραγματική έκδοση εργαλείου, τις απαιτούμενες εξαρτήσεις και την έξοδο σε δοκιμαστικά δεδομένα για τη CoffeeScript. Πρόβλεψε το αποτέλεσμα πριν το ελέγξεις και διατήρησε την αρχική και τη διορθωμένη εκδοχή ώστε να φαίνεται η αιτιώδης διαφορά. Μην αποκαλείς ένα απόσπασμα εκτελεσμένο αν δεν έχεις το κατάλληλο περιβάλλον.
Παγίδα ειδική για το θέμα
Τα source maps συνδέουν θέσεις αρχείων, αλλά δεν αποδεικνύουν ορθότητα· εξέτασε τις τιμές που αποτυγχάνουν.
Εργαστήριο εξάσκησης: CoffeeScript
Πρόβλεψη πριν από τη μεταγλώττιση
Η CoffeeScript μεταγλωττίζεται σε JavaScript και ο παραγόμενος κώδικας χρειάζεται επιθεώρηση. Σε προσωρινό squares.coffee:
values = [1, 2, 3]
squares = (n * n for n in values)
console.log squares.join ","
Αναμένεται 1,4,9. Δοκίμασε με συμβατό CoffeeScript compiler, είτε εκτελώντας το πρόγραμμα είτε πρώτα μεταγλωττίζοντας σε JavaScript και μετά με Node.js. Έλεγξε ότι η μεταγλώττιση πετυχαίνει πριν συγκρίνεις εκτέλεση. Το comprehension μετασχηματίζει τιμές της λίστας και δεν εκκινεί εξωτερική διαδικασία shell.
Όριο συμπεριφοράς JavaScript
Αν δώσεις [], το joined αποτέλεσμα αναμένεται να είναι άδειο string. Πρόσθεσε null και παρατήρησε τι κάνει πραγματικά το JavaScript runtime στον πολλαπλασιασμό. Μην ισχυρίζεσαι ότι η CoffeeScript προσφέρει αυτόματο αυστηρό έλεγχο αριθμητικών τύπων. Σε μη έμπιστη είσοδο σχεδίασε ρητό validation αντί να βασίζεσαι σε σιωπηλές μετατροπές.
Ανάγνωση παραγόμενου κώδικα
Κάνε compile με τις κανονικές επιλογές και, όπου υποστηρίζεται, με bare-output. Σύγκρινε τα wrappers και αντιστοίχισε τις μεταβλητές values, squares και την προσωρινή μεταβλητή loop. Η μορφοποίηση και τα ονόματα αλλάζουν ανά έκδοση compiler και δεν πρέπει να τροποποιούνται τυφλά ως χειρόγραφη πηγή.
Αυτόνομη άσκηση
Μέτρησε κανονικοποιημένα μη κενά ονόματα με είσοδο ["Ada", " ada ", "", "Lin"]. Όρισε αν πρέπει να αφαιρούνται κενά και διαφορές κεφαλαίων. Σύγκρινε με JavaScript fixture που υπολογίζεις ανεξάρτητα, και πρόσθεσε μία μη έγκυρη είσοδο με σαφώς τεκμηριωμένη συμπεριφορά. Πηγή: https://coffeescript.org/