19 Ideen für Node.js Entwickler, die 2019 über sich selbst hinauswachsen wollen

Der Autor des Materials, dessen Übersetzung wir veröffentlichen, hat 19 Ideen gesammelt, die für die Entwickler von Node.j nützlich sein könnten, die 2019 ihr professionelles Niveau verbessern möchten. Die Welt von JavaScript ist riesig, daher ist es einfach unrealistisch, alles zu beherrschen, was hier besprochen wird. Es ist unwahrscheinlich, dass es jemanden gibt, dem das alles perfekt gehört. Etwas in dieser Rezension kann sich jedoch als nützlich für Sie erweisen.



1. Denken Sie über das Tippen nach. Achten Sie auf TypeScript


Es ist erwiesen, dass die Programmierung in JavaScript unter Verwendung des darin verwendeten Typisierungsansatzes zu einer Verringerung der Arbeitsproduktivität und zum Auftreten von Fehlern führt. Dies bedeutet nicht, dass Sie sich bemühen sollten, sicherzustellen, dass der gesamte Code stark typisiert ist. Wir sprechen vielmehr von der Tatsache, dass es bei der Entwicklung in JavaScript hilfreich wäre, einen bestimmten Ansatz für die Arbeit mit Typen zu wählen und sich daran zu halten. Solche Ansätze unterscheiden sich unter anderem durch das Ausmaß der Einschränkungen, die mit den dem Code auferlegten Datentypen verbunden sind. Zum Beispiel kann es etwas sehr Einfaches sein, wie das Organisieren von Prüfungen mit dem Paket jsonschema (oder joi ). Wenn Sie der Meinung sind, dass Sie eine strengere Typsteuerung benötigen, können Sie die Verwendung von Typanmerkungen in regulärem JS-Code in Betracht ziehen (hier hilft Ihnen der Fluss von Facebook). Und wenn Sie bereit sind, fast vollständig getippten Code zu schreiben, achten Sie auf TypeScript .

Es ist anzumerken, dass TypeScript im Jahr 2018 ernsthaft an Popularität gewonnen hat. Darüber hinaus besteht das Gefühl, dass alle Voraussetzungen dafür vorhanden sind, um sich fest in Node.js zu etablieren. Wenn Sie sich ernsthaft mit TypeScript beschäftigen, sollten Sie sich fragen, ob Sie nur über das Tippen oder über andere Funktionen der Sprache nachdenken. Der Punkt hier ist, dass die Arbeit mit so etwas wie Schnittstellen und abstrakten Klassen bedeutet, dass Sie sich in einer Umgebung befinden, in der Sie, wenn Sie hauptsächlich über das Tippen nachdenken, kaum darauf eingehen würden.

2. Achten Sie auf die Fähigkeiten von Linter


Linters sind heutzutage selbstverständlich. Nach einer einfachen Einrichtung steht Ihnen ein Tool zur Verfügung, mit dem Sie Fehler im Code finden können. Vorbei sind die Zeiten, in denen das Flusen von Code in erster Linie die Kontrolle seines Designs bedeutete (etwa das Vorhandensein oder Fehlen von Semikolons). Jetzt können Linters schwerwiegende Probleme identifizieren - wie Fehler, die nicht richtig behandelt werden, Versprechen, die nie gelöst werden, und andere ähnliche Probleme, die niemand bewusst in seinen Code aufnehmen wird. Wenn Sie den Linter noch nicht verwenden, ist es jetzt an der Zeit, dies zu tun, ohne die durchdachte Konfiguration zu vergessen. Hier ist zum Beispiel ein Plugin für ESLint , eslint-plugin-chai-expected , das fehlerhaft zusammengesetzte Tests erkennen kann. Hier ist das Eslint-Plugin-Versprechen-Plugin , das ungelöste Versprechen erkennt (Code mit solchen Versprechen wird ohne ersichtlichen Grund einfach gestoppt). Mit dem eslint-plugin-security plugin können unsichere reguläre Ausdrücke im Code gefunden werden, die von einem Angreifer zur Durchführung von DOS-Angriffen verwendet werden können.

3. Vertiefen Sie Ihr Wissen über die Architektur von Softwareprojekten, indem Sie etwas aus der Java-Welt übernehmen und viel aus der Ruby-Welt vergessen


Das Ökosystem von Node.js wirft selten das Thema Architektur und Design von Informationssystemen auf. Alle sprechen von Microservices, aber nur sehr wenige sprechen von ihrer internen Struktur. Daher sind die meisten Node.js-Anwendungen Beispiele für die Implementierung von MVC-Konzepten und anderen zweifelhaften Mustern aus der Ruby-Welt. Was ist daran so schlimm? Die MVC-Vorlage wurde beispielsweise erstellt, um die Arbeit mit Daten zu optimieren. Diese Vorlage eignet sich jedoch nicht zum Entwerfen zuverlässiger Serverteile von Anwendungen. Bob Martin sagt beispielsweise, dass MVC ein Mechanismus zum Bereitstellen von Daten an einen Benutzer ist, keine Anwendungsarchitektur. Ist es möglich, die Geschäftslogik einer Microservice-Anwendung, die Regeln ihres Betriebs, die Merkmale des Datenzugriffs und die Interaktion mit anderen Microservices mit nur zwei Klassen zu beschreiben - Controller und Model ?
Es sollte beachtet werden, dass ich die Verwendung von Java / Spring-Vorlagen in Node.js hier absolut nicht empfehlen möchte (schließlich war es kein Zufall, dass wir für die Entwicklung von Serverprogrammen zu Node.js gewechselt sind?). Ich würde Ihnen raten, nur einige Ideen auszuleihen, die sich einerseits positiv auf die Anwendungsarchitektur auswirken können und andererseits nicht zu einer übermäßigen Komplexität führen.

Hier sind einige Richtlinien für diejenigen, die sich für die Architektur von Node.js Projekten interessieren:

  • Lesen Sie den ersten Abschnitt dieses Artikels über die Anwendungsarchitektur von Node.j.
  • Versuchen Sie, die Geschäftslogik von Anwendungen nicht mit Express-Objekten zu mischen, sondern informieren Sie sich über DDD-Prinzipien ( Domain-Driven Design ) und die hexagonale Architektur .
  • Die Verwendung des Active Record-Musters, das bei Entwicklern, die Mongoose und Sequelize verwenden, sehr beliebt ist, führt leicht zum Auftreten überladener Objekte, die schwer zu testen sind. Verwenden Sie möglicherweise das Data Mapper- Muster anstelle des Active Record-Musters.
  • Schauen Sie sich den Code für dieses gut gemachte Node.js-Vorlagenprojekt an, das eine Qualitätsarchitektur enthält, die die Prinzipien von DDD implementiert.

4. Überlegen Sie, wie Sie die neue Node.js-API async_hooks verwenden, wenn Sie mit asynchronem Code arbeiten


Das in JavaScript verwendete Single-Threaded-Code-Ausführungsmodell weist einen schwerwiegenden Nachteil auf: Asynchrone Operationen, z. B. Anforderungen, verlieren den Kontext. Es wird während des Abfrage-Lebenszyklus nicht gespeichert, da asynchrone Operationen an ihrer Ausführung beteiligt sind. Warum ist das so schlimm? Beispielsweise versuchen Entwickler häufig, eindeutige Abfragekennungen in Journaleinträge aufzunehmen, wodurch bei der Analyse solcher Datensätze diejenigen identifiziert werden können, die sich auf dieselbe Abfrage beziehen. Heute, im Jahr 2018, ist das nicht so einfach. Nächstes Jahr erwartet uns etwas Neues, nämlich die asynchrone Hooks, die async_hooks- API. Dies bedeutet nicht, dass dies eine völlig neue Gelegenheit ist, sondern dass sie das experimentelle Regime bald verlassen sollte. Einfach ausgedrückt, ermöglichen asynchrone Hooks einem Entwickler, nativen Code an bestimmten Punkten im Lebenszyklus einer asynchronen Operation auszuführen. In diesem Sinne können Sie Aktionen koordinieren, die von asynchronem Code ausgeführt werden, und den Kontext beibehalten. Diese Funktion bildet die Grundlage für die Entwicklung von Paketen, die Node.js auf eine neue Ebene bei der Verfolgung asynchroner Vorgänge und der Arbeit mit dem Kontext bringen.

Mit dem Paket cls-hooked können Sie beispielsweise die Verwendung von Variablen und Kontext während des gesamten Lebenszyklus einer asynchronen Operation organisieren. Mit dem Jaeger-Client- Paket können Sie den Prozess der Weiterleitung einer Anforderung durch Systeme visualisieren, auch über Microservices und Server (hier ist der Javascript OpenTracing API 1.0-Standard implementiert).

In diesem Material erfahren Sie mehr über die Verwendung der async_hooks-API.

5. Verstehen Sie die neuesten „serverlosen“ Technologien, die bereits für ernsthafte Projekte bereit sind und Kubernetes töten können


Hier verwenden wir die Konzepte von FaaS (Funktion als Dienst, Funktion als Dienst) und „serverlose Technologien“ als Synonyme, obwohl sie nicht dasselbe bedeuten. Im Folgenden werden wir insbesondere auf Cloud-FaaS-Dienste eingehen.

Ursprünglich sollte die FaaS-Technologie Mikroaufgaben entwickeln und keine vollwertigen "Microservice" -Anwendungen erstellen. Die wachsende Beliebtheit von FaaS-Plattformen hat zu einem Anstieg des Interesses von Cloud-Dienstleistern geführt. FaaS-Plattformen haben neue Funktionen erhalten. Obwohl dies unerwartet ist, besteht das Gefühl, dass FaaS-Plattformen im Jahr 2019 die Grundlage für ernsthafte Projekte werden können. Können diese Plattformen mit Kubernetes konkurrieren und zum Hosten großer Anwendungen verwendet werden? Einige sehen in Serverless Computing und FaaS-Technologien etwas völlig Neues, aber in der Praxis muss jeder Entwickler einer Cloud-Anwendung 2019 eine Wahl zwischen den drei Technologien treffen. Diese Auswahl wird buchstäblich auf den Websites von Cloud-Dienstanbietern dargestellt. Wir sprechen nämlich über die Auswahl einer von drei Optionen:

  1. Normaler Cloud-Server (z. B. VDS von RUVDS)
  2. Kubernetes
  3. FaaS

Daher ist es in unserer Zeit sehr wichtig, die Fähigkeiten von Kubernetes mit FaaS vergleichen zu können und die Konsequenzen der Auswahl einer bestimmten Technologie zu antizipieren.

6. Schauen Sie sich die JavaScript-Innovationen an, die bald Standard sein werden.


Ich kann mich nicht als Unterstützer der Suche und Verwendung der neuesten Funktionen der Sprache bezeichnen, da ihre Verwendung manchmal die Einfachheit und Verständlichkeit des Codes beeinträchtigt. Von Zeit zu Zeit werden jedoch wirklich wertvolle JavaScript-Funktionen angezeigt (wie das Konstrukt async / await vor zwei Jahren). Daher ist es hilfreich, die TC39-Angebotsliste und die node.green- Ressource zu lesen , um im Voraus über neue Funktionen informiert zu werden, die möglicherweise zu Ihnen passen. Folgendes fand ich dort interessant:

  • Klassenfelder befinden sich jetzt in der 3 (letzten) Phase der Genehmigung. Sie können 2019 in den Standard aufgenommen werden.
  • Der Datentyp BigInt durchläuft auch die letzte Phase der Abstimmung. Die Verwendung von Zahlen dieses Typs kann bei der Organisation der Interaktion mit Microservices oder anderen Systemen hilfreich sein, bei denen große Zahlen verwendet werden.
  • Asynchrone Iteratoren und die Methode finally () versprechen wurden bereits akzeptiert. Wenn Sie sie noch nicht beachtet haben - lesen Sie sie.

7. Beherrschen Sie mindestens eine Technologie zum Erstellen einer API. Achten Sie auf GraphQL


Die REST-API ist ein großartiges Werkzeug zum Lösen einer bestimmten Klasse von Aufgaben. Wir sprechen nämlich über das Verwalten von Abfragen und das Ändern von Datensätzen in Datenbanken. Ist Ihr System auf die Arbeit mit Finanzdaten ausgerichtet? Wahrscheinlich ist es zur Gewährleistung des Betriebs erforderlich, die strengsten Einschränkungen zu beachten und ein sorgfältig entwickeltes Datenmodell zu verwenden, das keine Unklarheiten zulässt. Die REST-Technologie ist in diesem Fall für Sie geeignet, zeigt sich jedoch in anderen sehr häufigen Situationen nicht sehr gut, z. B. wenn die Ausführung derselben Anforderung zum Empfang unterschiedlicher Datensätze führen kann. Gleiches gilt für Arbeiten unter Bedingungen niedriger Verbindungsgeschwindigkeiten, bei denen bei der Arbeit mit einer bestimmten API möglichst wenig Daten übertragen werden müssen. Zu solchen Situationen gehören Verbindungen zwischen Computern, bei denen die Hochgeschwindigkeitskommunikation im Vordergrund steht. Lohnt es sich in solchen Fällen, auf etwas Neues umzusteigen? Nein, das ist es nicht wert. Fügen Sie am besten etwas Neues zu dem hinzu, was bereits verwendet wird. Eine API ist keine Anwendungsarchitektur. Dies ist nur ein Zugriffspunkt auf die Anwendung. Dies bedeutet, dass APIs, die mit verschiedenen Tools erstellt wurden, nebeneinander existieren können. Auch wenn sie alle auf einem einzigen Webframework wie Express basieren.

Welche Technologie soll man studieren? Unter den gegenwärtigen Bedingungen lohnt es sich wahrscheinlich, auf die GraphQL-Technologie zu setzen, die immer beliebter wird. Das Ökosystem dieser Technologie ist erheblich gereift und bietet einige sehr beliebte Datenszenarien - wie die dynamische Suche und die Interaktion mit hierarchischen Datenquellen. Andererseits ist die gRPC-Technologie immer noch eine hochspezialisierte Lösung, die sich gut für die Kommunikation zwischen Servern eignet, wenn während des Datenaustauschs so wenig Serviceinformationen wie möglich übertragen werden sollen (zum Beispiel handelt es sich um Datenaustauschsysteme, die auf „ Herausgeber-Abonnent “oder über solche, bei denen Nachrichten und Nachrichtenwarteschlangen verwendet werden). Hier sind einige nützliche Beiträge zu diesem Thema:


8. Verwenden Sie Unit- und Integrationstests? Schauen Sie sich brandneue Testtechniken an.


Kennen Sie die Testpyramide bereits mit Unit-, Integrations- und End-to-End-Tests? Wenn ja - großartig. All dies liegt erfolgreichen Teststrategien zugrunde. Es sollte jedoch beachtet werden, dass sich die Welt der Softwareentwicklung in den letzten 10 Jahren sehr stark verändert hat und die Testmodelle dieselben geblieben sind, was uns Fragen zum Testen von Mikrodiensten, umfangreichen Internetanwendungen und serverlosen Systemen aufwirft. Einige moderne Testansätze ergänzen die traditionellen Technologien, andere ersetzen sie möglicherweise sogar, wodurch die Teststrategie und die Testergebnisse verbessert werden. Folgendes können Sie lesen und sehen:

  • Das Testen von Systemen, die auf dem Muster "Consumer-Driven Contracts" basieren, verhindert, dass Server-APIs, die von Microservices oder Clients verwendet werden, ausfallen.
  • Das Testen mit Snapshots kann nicht nur im Frontend, sondern auch in Serverprojekten verwendet werden.
  • Das Testen von Komponenten ist ein ausgewogener Ansatz zum Testen von Mikrodiensten.
  • Hier ist ein Video über moderne Ansätze zum Testen von Node.js Projekten.

9. Passen Sie Ihr Anwendungsüberwachungssystem an die Best Practices von SRE / DevOps an


Im Jahr 2019 kann sogar eine mittelgroße Anwendung aus Dutzenden von Komponenten bestehen. Um den reibungslosen Betrieb einer solchen Infrastruktur zu gewährleisten, muss diese sorgfältig überwacht werden. Trotz der Offensichtlichkeit des oben Gesagten halten es die meisten Entwickler immer noch nicht für wichtig, diese Empfehlungen zu studieren und zu verwenden, um Anwendungen zu überwachen und ein Warnsystem für Probleme zu erstellen, das ihnen von den für die Zuverlässigkeit der Webprojekte verantwortlichen Spezialisten gegeben werden kann. Beispielsweise konzentrieren sich Entwickler häufig auf interne Indikatoren für die Systemleistung wie Prozessorgeschwindigkeit oder RAM, anstatt sich über Metriken Gedanken zu machen, die sich direkt auf Endbenutzer auswirken. Insbesondere sprechen wir über die Häufigkeit von Fehlern und Verzögerungen. Dies wird als "symptombasierte Überwachung" bezeichnet. Solche benutzerorientierten Indikatoren werden manchmal als „goldene Signale“ bezeichnet, und Sie, möglicherweise ein Überwachungssystem einführend, entscheiden sich, mit der Einführung solcher Metriken zu beginnen. Hier sind die verwandten Materialien:


10. Verbessern Sie die Sicherheit von Projekten, indem Sie sie aus der Sicht eines Angreifers betrachten und lernen, wie Angriffe und Hacker-Tools ausgeführt werden


Wenn Sie nicht wie jemand denken können, der Ihr System angreifen möchte, bedeutet dies, dass Sie nicht so denken können, wie der Verteidiger dieses Systems denken würde. Im Jahr 2019 sollten Sie weder Aufgaben zum Schutz von Projekten an Dritte übertragen noch sich nur auf statische Sicherheitsanalysatoren verlassen. Heute gibt es eine Vielzahl von Arten von Angriffen (die neuesten Trends in diesem Bereich sind Angriffe auf die Entwicklungsinfrastruktur und auf npm). Gleichzeitig ändern sich Anwendungen sehr, sehr schnell - gestern wurde das Projekt als gut geschützt anerkannt, und morgen können mehrere neue AWS-Services, verschiedene neue Datenbanktypen und eine neue IAM-Rolle hinzugefügt werden. Gleichzeitig wird es nicht bald sein, die Sicherheit des Projekts zu analysieren. Das Ergebnis ist, dass Entwickler das größte Sicherheitsrisiko für ihre eigenen Projekte darstellen. Die Lösung für dieses Problem ist ihre Ausbildung. Dies bedeutet, dass jeder Entwickler von Webprojekten die Implementierung von Sicherheitsregeln fast automatisieren muss, und was auch immer er tut, denken Sie immer an die Sicherheit.

Nachdem Sie sich entschieden haben, in diese Richtung zu gehen, stellt sich heraus, dass die Berücksichtigung der Sicherheit bei der Ausführung von Arbeiten nicht so beängstigend ist. Nachdem Sie sich mit den gängigen Angriffsmethoden und -werkzeugen vertraut gemacht haben, zeichnen Sie ein Diagramm der Architektur Ihrer Anwendung und überlegen Sie, wie Sie sie angreifen würden. Mit der Zeit werden Sie, ohne sich selbst einen Bericht darüber zu geben, anfangen, Sicherheitsprobleme zu berücksichtigen, jede architektonische Entscheidung zu treffen und jede neue Codezeile in den Editor einzugeben. Hier einige Ideen zum Verwalten von Sicherheitsproblemen:

  • Probieren Sie OWASP ZAP aus - ein multifunktionales Tool zur Erforschung von Systemen und zum Hacken, mit dem selbst Anfänger die Sicherheit von Anwendungen erlernen können.
  • In dieser Liste der Sicherheitsempfehlungen von Node.j finden Sie mehr als zwei Dutzend Angriffsideen und JavaScript-Codebeispiele.
  • Planen Sie ein monatliches Treffen zur Bedrohungsanalyse, bei dem das Projektteam seine Architektur untersucht und Angriffe darauf anbietet. Wenn Ihnen eine solche Idee langweilig erscheint, können Sie solche Meetings spielen. Sagen wir, diejenigen, die Verwundbarkeit finden, können irgendwie belohnt werden. Sie können beispielsweise auch die Teilnehmer eines solchen Meetings in zwei Teams aufteilen und einen Wettbewerb zwischen ihnen veranstalten, um Schwachstellen zu finden.

11. Entwerfen und implementieren Sie eine Strategie zur Aktualisierung des npm-Pakets. 2018 hat gezeigt, dass Eile bei der Aktualisierung gefährlich ist


In der Regel halten sich Entwicklungsteams an eine von zwei „Strategien“ zum Aktualisieren von npm-Paketen. Sie aktualisieren sie entweder so schnell wie möglich nach der Veröffentlichung ihrer neuen Versionen, automatisieren diesen Prozess manchmal sogar oder haben überhaupt keine Strategie zur Paketaktualisierung. Bei diesem Ansatz werden Pakete unregelmäßig aktualisiert, und zu Beginn dieses Prozesses werden sie von einem plötzlichen Gedanken geleitet: „Sollten wir heute aktualisiert werden?“ Obwohl der erste dieser Ansätze besser aussieht als der zweite, stellte sich 2018 unerwartet ein höheres Risiko als der zweite heraus. Probleme, wie sie mit dem Flat-Stream- Paket aufgetreten sind, wurden von der Community innerhalb weniger Dutzend Tage entdeckt, und diejenigen, die es nicht eilig hatten, sie zu aktualisieren, waren in Sicherheit.

Überlegen Sie, ob Sie die Strategie zum Aktualisieren der Pakete, von denen Ihr Projekt abhängt, formalisieren möchten, und verwenden Sie für diesen Prozess Automatisierungstools. Finden Sie den Mittelweg zwischen dem Ablehnen von Updates und dem zu häufigen Aktualisieren von Paketen. Hier kann Ihnen das Programm npq helfen, das die Pakete während der Installation überprüft und Empfehlungen gibt. Sie können sich kommerzielle Projekte wie Greenkeeper ansehen. Der Nachteil solcher Lösungen besteht darin, dass sie die Installation erst dann verschieben können, wenn absolut klar ist, dass ein bestimmtes Paket sicher ist.

12. Sehen Sie sich die schrittweise Bereitstellung von Projekten genauer an


Vielleicht halten Sie es 2019 für sinnvoll, Projekte in der Produktion nach einem schrittweisen Schema bereitzustellen und nicht alles, was zuvor im Entwicklungsprozess war, sofort an einen Kampfserver zu senden. Dieser Prozess wird als "kanarische Bereitstellung" bezeichnet und bietet ein höheres Maß an Projektschutz als die gleichzeitige Bereitstellung von neuem Code. Es unterscheidet normalerweise die folgenden drei Stufen:

  1. Bereitstellung Der neue Code wird in einer neuen, isolierten Produktionsumgebung bereitgestellt (auf dem neuen Kubernetes-Dienst auf einem neuen virtuellen Server). Zu diesem Zeitpunkt dient der Code noch niemandem, daher können Fehler darin keinen Schaden verursachen.
  2. Testen. Jetzt können mehrere Spezialisten mit dem neuen Code unter Bedingungen arbeiten, die den tatsächlichen Bedingungen so nahe wie möglich kommen, da der Code in der Produktion bereitgestellt wird.
  3. Lassen Sie los Nachdem Tests die Funktionsfähigkeit des neuen Codes gezeigt haben, wird ihm allmählich Zugriff auf eine zunehmende Anzahl von Benutzern gewährt, und nachdem sich herausstellt, dass er zuverlässig genug funktioniert, wird seine alte Version allmählich außer Betrieb genommen.

Ein wichtiger Punkt hierbei ist, dass die Durchführung von Kanarieneinsätzen in vollem Umfang im Jahr 2019 immer noch ein sehr teures Vergnügen sein wird. Tatsache ist, dass dies eine Koordination der Arbeit der Infrastrukturelemente des Projekts erfordert - wie z. B. Routing und Überwachung. Wenn Sie also eine ähnliche Technik anwenden möchten, sollten Sie mit einer einfachen, teilweise manuellen kanarischen Bereitstellung beginnen. Dies besteht insbesondere darin, dass nach erfolgreichem Abschluss der ersten Tests unter Berücksichtigung der Überwachungsindikatoren das manuelle Hinzufügen von Servern mit einer neuen Version der Software zum System durchgeführt wird. Lesen Sie hier mehr über kanarische Veröffentlichungen. Wenn Sie den Prozess der Durchführung solcher Releases automatisieren möchten, achten Sie auf die Spinnaker- Plattform.

13. Schauen Sie sich die Kubernetes-Technologie an, die die Welt erobert hat.


Kubernetes (K8S) , . - . . Kubernetes , , 54% K8S-. — . K8S — , :


, , Kubernetes, .

14. -,


- — . , .

15. , , ,


, — . , . . , (, tensorflow.js brain.js , , ).

16.


, . , , . , — .

17. Linux, —


Linux- , , . — , ( — ), Docker, . , , , , , . , Linux.

18. , Node.js


( Node.js): « . , ». , , ( ). , Node.js, , V8 libuv. , 2019 — , Node.js, , , libuv. , , , Node.js - , .

, . , npm- C/C++. Node.js. Node.js RUVDS.

19. ,


, , . , , , , , . , , , , . JavaScript-, . , JavaScript, . , , TypeScript . flow , , . , - flow, , , , « , ». ? , , « ». , - . , , , — . . , - , , , . , . , 2019 , — .

. , . — , , , , , , . , , , , , .

Zusammenfassung


19 , Node.js-, - , 2019 . , - , .

Liebe Leser! Node.js- 2019 ?



Source: https://habr.com/ru/post/de434114/


All Articles