Προγραμματισμός

6 πράγματα που πρέπει να γνωρίζετε για το Node.js

Η JavaScript τρώει τον κόσμο, με νέα εργαλεία και βελτιώσεις να φτάνουν με πρωτοποριακό ρυθμό. Με το Node.js, ένα σύστημα χρόνου εκτέλεσης ανοιχτού κώδικα που εφευρέθηκε το 2009 από τον Ryan Dahl, αυτό το εύρος έχει επεκταθεί στην πλευρά του διακομιστή.

Το Node.js έχει γίνει εξαιρετικά δημοφιλές, με τους κωδικοποιητές παντού να το χρησιμοποιούν για τη δημιουργία API και τη δημιουργία ενός νέου πίνακα διαλειτουργικότητας στο Διαδίκτυο. Η Joyent υπήρξε αρχικός χορηγός του Node.js από την αρχή. Στο New Tech Forum αυτής της εβδομάδας, ο Ben Wen, αντιπρόεδρος μάρκετινγκ προϊόντων στο Joyent, περιγράφει έξι πράγματα που πρέπει να γνωρίζετε για το φαινόμενο που προκαλεί την ανάπτυξη του backend. - Paul Venezia

Το Node.js είναι ένα σύστημα χρόνου εκτέλεσης για τη δημιουργία (κυρίως) εφαρμογών από διακομιστή. Είναι πιο γνωστό ως δημοφιλές μέσο για τους κωδικοποιητές JavaScript για τη δημιουργία API Ιστού σε πραγματικό χρόνο.

Αλλά το Node.js δεν είναι ένα πλαίσιο JavaScript. Πράγματι, αρκετοί συγγραφείς έχουν γράψει εξαιρετικά πλαίσια ειδικά για το Node.js, συμπεριλαμβανομένων των Express.js, Restify.js και Hapi.js. Λοιπόν, τι ακριβώς είναι αυτό το φαινόμενο που μπαίνει σε εφαρμογές Web, περιτυλίγματα λειτουργικών συστημάτων, μικροελεγκτές και ρομπότ;

Στον πυρήνα του, το Node.js είναι ένας απογυμνωμένος, εξαιρετικά προσαρμόσιμος κινητήρας διακομιστή - ένας πρωτότυπος διακομιστής, αν θέλετε - γιατί έξω από το κουτί δεν κάνει τίποτα μέχρι να το ρυθμίσετε. Αυτός ο πρωτο-διακομιστής επεξεργάζεται σε βρόχο, έτοιμος να αποδεχτεί και να ανταποκριθεί σε αιτήματα. Οποιοδήποτε από αυτά τα αιτήματα από μόνο του μπορεί να εκκινήσει άλλα αιτήματα σε κάποιο άλλο μέρος του συστήματος, όπως να διαβάσει ένα αρχείο από δίσκο ή να στείλει ένα σήμα για περιστροφή ενός κινητήρα σε ένα βραχίονα ρομπότ. Αυτός ο βρόχος, γνωστός ως βρόχος συμβάντος, είναι το μέρος του χρόνου εκτέλεσης.

Το Node.js αποστέλλεται με συνδέσεις και βιβλιοθήκες αλόγων εργασίας, όπως αυτές που σχετίζονται με HTTP, SSL, συμπίεση, πρόσβαση στο σύστημα αρχείων και ανεπιθύμητο TCP και UDP. Το JavaScript, που έχει ήδη ρυθμιστεί για ένα περιβάλλον βρόχου συμβάντων προγράμματος περιήγησης στο Web για GUI και συμβάντα δικτύου, είναι μια εξαιρετική γλώσσα για την καλωδίωση αυτών των συνδέσμων. Μπορείτε να κουμπώσετε συνδέσμους στο βρόχο συμβάντος όσο πιο εύκολα μπορείτε να τραβήξετε μαζί τα μέρη Lego. Με αυτόν τον τρόπο μπορείτε να δημιουργήσετε έναν απλό, δυναμικό διακομιστή Web σε λίγες γραμμές JavaScript.

Εν ολίγοις, το Node.js είναι ένα σύστημα χρόνου εκτέλεσης που διευκολύνει τη δημιουργία ενός δικτύου ή άλλων διακομιστών εφαρμογών που βασίζονται σε συμβάντα. Εδώ είναι τα έξι πράγματα που πρέπει να ξέρετε για αυτό.

1. Η JSON κέρδισε

Το JSON (JavaScript Object Notation) είναι μια πρακτική, σύνθετη, εξαιρετικά δημοφιλής μορφή ανταλλαγής δεδομένων. Το JSON επέτρεψε στους προγραμματιστές JavaScript να δημιουργήσουν γρήγορα API και να προωθήσουν τη διαλειτουργικότητα σε κλίμακα - βασικός στόχος για τους κωδικοποιητές Node.js. Η απίστευτη απλότητα του JSON μπορεί να εκφραστεί σε πέντε διαγράμματα ανάλυσης σιδηροδρόμων, ιδίως χωρίς την αυτοσυνείδητη παρουσίαση της XML και των φίλων της (SOAP, XSD, WS- *, RELAX-NG και τις ατελείωτες συνεδριάσεις επιτροπών τους).

Το JSON και το JavaScript έχουν ενισχύσει τη σημασία του άλλου. Πίσω στις πρώτες μέρες του Διαδικτύου, τα δυναμικά δεδομένα στο πρόγραμμα περιήγησης έπρεπε να χειραγωγηθούν, να φιλτραριστούν και να χρησιμοποιηθούν από τη μόνη λογικά κατανοητή διαθέσιμη γλώσσα χωρίς προσθήκες: JavaScript. Ανεξάρτητα από την αρχική μορφή παρουσίασης δικτύου, τα δεδομένα έπρεπε να αναλυθούν σε ένα αντικείμενο JavaScript. Η εξάρτηση από την JSON για την περιγραφή δεδομένων γενικού σκοπού οδήγησε σε βάσεις δεδομένων NoSQL προσανατολισμένες σε έγγραφα όπως το MongoDB και το CouchDB. Είναι όλο JSON όλη την ώρα σήμερα.

2. Η JavaScript είναι παντού

Η JavaScript είναι μια ιδιόμορφη, αντικειμενοστρεφής, γλώσσα τύπου C. Είναι η μόνη επιλογή για την ανάπτυξη εφαρμογών στο πρόγραμμα περιήγησης, με ένα νέο πλαίσιο που εισάγεται κάθε εβδομάδα στους προγραμματιστές. Και με το Node.js, το JavaScript έχει διαρρεύσει στον διακομιστή. Οι ανταγωνιστικές ομάδες υλοποίησης έχουν οδηγήσει τους διερμηνείς JavaScript προς τα εμπρός, έτσι ώστε ο κινητήρας V8 της Google να είναι σεβαστά γρήγορα - αρκετά γρήγορος για να βρίσκεται στον πυρήνα του Node.js.

Το JavaScript έχει επίσης την εσωτερική ικανότητα να χειρίζεται τον μηχανισμό βρόχου συμβάντων με έναν απλό τρόπο. Άλλες γλώσσες έχουν αυτή την ικανότητα, οι οποίες χρησιμοποιούνται από τα δικά τους συστήματα. Ο Python έχει Twisted και ο Ruby έχει EventMachine. Αλλά λόγω της ιστορίας, και τα δύο αυτά συστήματα βρόχου συμβάντων μεταφέρονται με σχετικά εύκολους τρόπους για να κάνουν ένα συγκεκριμένο είδος λάθους απόδοσης, ενώ η JavaScript παραμένει σχετικά απαλλαγμένη από αυτόν τον κίνδυνο.

Το JavaScript εκτελείται επίσης σε πολλά περιβάλλοντα λειτουργικού συστήματος, αφού ιστορικά έπρεπε να τα υποστηρίξει στο πρόγραμμα περιήγησης. Αυτό, μαζί με τη βιβλιοθήκη libuv για την απομάκρυνση ορισμένων από τις διαφορές του λειτουργικού συστήματος, σημαίνει ότι το Node.js έχει ένα ευρύ αποτύπωμα.

Αλλά η μεγαλύτερη δύναμη για τη μετανάστευση του JavaScript στην πλευρά του διακομιστή είναι η ανθρώπινη. Οι προγραμματιστές πρέπει να κάνουν λιγότερο νοητική εναλλαγή περιβάλλοντος μεταξύ ενός προγράμματος περιήγησης στο Web και του διακομιστή. Υπάρχουν ακόμη προσπάθειες για ενοποίηση των περιβαλλόντων μεταξύ πελάτη και διακομιστή, έτσι ώστε ο κώδικας να μπορεί να λειτουργεί εξίσου καλά και στις δύο τοποθεσίες, απλοποιώντας περαιτέρω το μοντέλο και οδηγώντας σε αυξημένη παραγωγικότητα.

3. Η κοινή χρήση ενθαρρύνεται

Το ήθος της κοινότητας Node.js "μοιράζεται με χαρά." Είναι τρομακτικά εύκολο να μοιράζεστε πακέτα κώδικα βιβλιοθήκης - τεχνικά, πολιτιστικά, διαδικαστικά και νομικά. Ο Διαχειριστής πακέτων Node περιλαμβάνεται στο Node.js και έχει εξελιχθεί σε ένα αποθετήριο σχεδόν 50.000 πακέτων, καθιστώντας πιθανό ότι ένας άλλος προγραμματιστής έχει ήδη συσκευάσει μια λύση στο πρόβλημά σας ή ακόμα και κάποιες λιγότερο κοινές.

Η φιλοσοφία του namespace του Node.js είναι ουσιαστικά η απουσία ενός, επιτρέποντας σε οποιονδήποτε συγγραφέα να δημοσιεύσει με ένα αχρησιμοποίητο όνομα λειτουργικής μονάδας στο κοινόχρηστο δημόσιο αποθετήριο. Η κοινή χρήση κώδικα βάσει της άδειας ανοιχτού κώδικα MIT συνιστάται ιδιαίτερα στην κοινότητα, η οποία καθιστά επίσης την αλληλο-επικονίαση του κώδικα σχετικά χωρίς ανησυχίες (και χωρίς δικηγόρους) από την άποψη της πνευματικής ιδιοκτησίας. Τέλος, η κοινότητα ασχολείται ιδιαίτερα με τη δέσμευση ενδιαφέρων βιβλιοθηκών C όπως το computer vision (OpenCV) και η βιβλιοθήκη οπτικών χαρακτήρων ανοιχτού κώδικα Tesseract. Το τελευταίο, για παράδειγμα, καθιστά πιθανά έργα Σαββατοκύριακου όπως το Imdex που επεξεργάζονται εικόνες από τον Ιστό, ώστε να μπορούν να αναζητηθούν αυτόματα γραπτό περιεχόμενο.

4. Ο κόμβος Διαχείριση πακέτων λειτουργεί ευρέως

Μιλώντας για τη διαχείριση εξαρτήσεων βιβλιοθήκης, ο Διαχειριστής πακέτων κόμβων αξίζει να κληθεί. Το Node Package Manager είναι η ρίζα σχεδόν όλων των συστημάτων ανάπτυξης για το Node.js και βασίζεται στους πολλούς παρόχους PaaS (πλατφόρμα ως υπηρεσία) για το Node.js, πράγμα που καθιστά κάπως εύκολο να μετακινήσετε μικρότερες εφαρμογές μεταξύ παρόχων. Η απλή, αξιόπιστη διαχείριση πακέτων έχει αφήσει το οικοσύστημα Node να αναπτυχθεί εξαιρετικά καλά στην πρόσφατη ιστορία, σε σημείο που η υποκείμενη δημόσια υπηρεσία πρέπει τώρα να κλιμακωθεί στο επόμενο επίπεδο.

5. Μινιμαλισμός «δεν περιλαμβάνονται οι μπαταρίες»

Οι εφαρμογές Node.js και ο ίδιος ο πυρήνας Node.js χωρίζονται σε μικρές ενότητες που συντίθενται και κοινοποιούνται. Κάθε πακέτο και εργαλείο μπορεί να περιληφθεί σφιχτά και να κατασκευαστεί ώστε να είναι διαχειρίσιμο. Αυτά μπορούν στη συνέχεια να ψηθούν μαζί - συχνά χωρίς πάρα πολύ περιττό ζύμωμα. Η χαμηλού φραγμού, ανέμελη φύση της δημιουργίας μιας ενότητας ενθαρρύνει επίσης τον πειραματισμό στην κοινότητα και υπάρχει αρκετή αλληλεπικάλυψη και πειραματισμός στον πληθυσμό των πακέτων. Όταν εκτελείται καλά, κάθε πακέτο χειρίζεται συνήθως μία εργασία (π.χ. node-optimist.js: 'light-weight [command-line] parsing option').

6. Όργανα

Τέλος, το Node.js είναι καλά εξοπλισμένο για χρήση στην παραγωγή. Αυτό σημαίνει ότι υπάρχουν τα εργαλεία που βοηθούν στην εφαρμογή μιας εφαρμογής σε πλήρη ετοιμότητα και απόδοση παραγωγής. Όπως συμβαίνει με οποιαδήποτε τεχνολογία ωρίμανσης, υπάρχουν τομείς όπου θα μπορούσαν να βοηθήσουν περισσότερα έγγραφα, εργαλεία και βέλτιστες πρακτικές. Αλλά καθώς το Node.js κατευθύνεται προς την επόμενη μεγάλη κυκλοφορία του, βρίσκεται σε αρκετά σταθερή βάση.

Κόμβος στο πλαίσιο

Αν γνωρίζετε JavaScript, το Node.js είναι μια ήπια on-ramp ασύγχρονη πληροφορική για τον Ιστό. Και συμβαίνει ότι το Node.js είναι κατάλληλο για την επίλυση προβλημάτων Web ακριβώς αυτού του τύπου: ενοποίηση και κόλλα προκλήσεις, με διαδοχικές κλήσεις προς API μετά το API.

Πού δεν λειτουργεί τόσο καλά το Node.js; Δεν είναι απολύτως κατάλληλο σε μέρη όπου ένας υπολογισμός με μονό σπείρωμα θα είναι η αναστολή, όπως ορισμένα είδη διαδοχικής προσέγγισης ή ταξινόμησης. Σε αυτές τις περιπτώσεις, είναι πιο αποτελεσματικό για το Node.js να αφήσει το αίτημα σε μια ανεξάρτητη βιβλιοθήκη που είναι αφιερωμένη στην εργασία, όπου μπορεί να διανεμηθεί σε εκατοντάδες ή χιλιάδες επεξεργαστές.

Το Node.js ωριμάζει γρήγορα και αναπτύσσεται σε όλο και περισσότερα κρίσιμα για την αποστολή και κρίσιμα για τα έσοδα συστήματα, όπως οι υποδομές Black Friday του ηλεκτρονικού εμπορίου. Είναι εύκολο να ξεκινήσετε με το Node.js, αλλά το Node.js είναι αρκετά βαθύ για να χειριστεί τις σύγχρονες πολυπλοκότητες του Ιστού. Εάν δημιουργείτε τον ιστότοπό σας επόμενης γενιάς - ειδικά API για κινητές συσκευές και ενοποίηση Ιστού - ή εάν δημιουργείτε κάτι νέο που εξαρτάται από τις ίδιες τις υποκείμενες υπηρεσίες, το Node.js είναι ένα σύστημα χρόνου εκτέλεσης που θα μπορούσε να λειτουργήσει πολύ καλά για εσάς.

Το New Tech Forum παρέχει ένα μέσο για να εξερευνήσετε και να συζητήσετε την αναδυόμενη τεχνολογία σε πρωτοφανές βάθος και εύρος. Η επιλογή είναι υποκειμενική, με βάση την επιλογή των τεχνολογιών που πιστεύουμε ότι είναι σημαντικές και έχουν μεγάλο ενδιαφέρον για τους αναγνώστες. δεν αποδέχεται ασφάλεια μάρκετινγκ για δημοσίευση και διατηρεί το δικαίωμα να επεξεργαστεί όλο το περιεχόμενο. Στείλτε όλες τις ερωτήσεις στο [email protected].

Αυτό το άρθρο, "6 πράγματα που πρέπει να γνωρίζετε για το Node.js", δημοσιεύθηκε αρχικά στο .com. Για τα τελευταία νέα της τεχνολογίας των επιχειρήσεων, ακολουθήστε το .com στο Twitter.

$config[zx-auto] not found$config[zx-overlay] not found