Du fragst dich, ob du dieses Jahr irgendwelche aktuellen Trends und Projekte verpasst hast? Lesen Sie unseren Beitrag und entdecken Sie die angesagtesten Open-Source-Projekte von Node.js.
A QUICK SUMMARY – FOR THE BUSY ONES
TABLE OF CONTENTS
In der JS-Welt sind viele Dinge passiert. Da es sich dem Ende zuneigt, habe ich mich gefragt, ob ich etwas verpasst habe heiße Trends und Projekte dieses Jahr. Wenn Sie meine Neugier teilen und überprüfen möchten, ob Ihre Eindrücke und Prognosen den aktuellen globalen Community-Trends entsprechen, lassen Sie uns diese Reise gemeinsam unternehmen.
Was ich selbst vor Beginn des Jahres 2020 vor allem herausfinden wollte, ist das, was am meisten trendige Open-Source-Projekte von Node.js waren.
Mit Open-Source-Projekten meine ich öffentliche GitHub-Repositorys, da Open-Source-Projekte hauptsächlich auf GitHub gehostet werden, und selbst wenn ein bestimmtes Projekt hauptsächlich woanders wie BitBucket, GitLab oder SourceForge gehostet wird, kann es einen Spiegel auf GitHub haben.
Mit den angesagtesten meine ich diejenigen, deren Popularität (Anzahl der Downloads, Anzahl der Beiträge) am stärksten gestiegen ist.
Die wichtigsten Indikatoren für die Beliebtheit, die ich in Betracht gezogen habe, sind:
Es gibt einige Probleme mit diesen Maßnahmen — ich habe keine Möglichkeit gefunden, die letzte Anzahl der von und NPM-Downloads verwendeten GitHub zu ermitteln. Die Anzahl der Google-Suchanfragen ist auch nicht das beste Maß, da in der Softwarewelt die Leute normalerweise direkt auf GitHub oder NPM suchen, ohne Google zu verwenden. Deshalb habe ich mich für den genauesten Weg entschieden Die Beliebtheit wird anhand von GitHub-Sternen gemessen.
Wenn ich „Node.js Open-Source-Projekte“ sage, meine ich Folgendes:
In diesem Artikel verwendete Abkürzungen:
Während meiner Recherche habe ich viele Open-Source-Projekte von Node.js gefunden, von denen ich noch nie gehört habe und die ich für interessant halte, und ich hoffe, Sie denken das auch.
<span class="colorbox1" fs-test-element="box1"><p>P.S. Um diesen Artikel in vollem Umfang nutzen zu können, benötigen Sie mindestens Grundkenntnisse in Node.js, GitHub, Open Source, NPM, JavaScript, TypeScript, GraphQL, SQL</p></span> und REST.
Also, wie habe ich meine Recherchen durchgeführt? Nun, ich habe ein Tool gefunden, um die vorherige Anzahl von Sternen für ein bestimmtes GitHub-Repository abzurufen (es ist zugänglich unter star-history.t9t.io).
Leider hat es einige Einschränkungen:
Um das erste Problem zu umgehen, habe ich meine eigene Bibliothek implementiert (hier erhältlich). Leider habe ich es nicht geschafft, das zweite und das dritte Problem zu lösen.
Dann habe ich hat ein Script implementiert um die angesagtesten Open-Source-Projekte von Node.js zu finden (hier erhältlich). Ich habe erneut die GitHub-API verwendet, diesmal um die Repos zu finden, die einer bestimmten Schlüsselphrase entsprechen und entweder in JavaScript oder in TypeScript geschrieben wurden. Es gibt andere Sprachen, die nach JS kompiliert wurden und daher mit Node.js verwendet werden können, wie CoffeeScript, Dart oder Elm, aber sie sind viel weniger beliebt und einige von ihnen, wie CoffeeScript, schlagen fehl.
Ich habe beschlossen, die folgenden Kategorien/Schlüsselwörter zu verwenden, um die trendigen Open-Source-Projekte von Node.js zu finden, da ich denke, dass sie Node.js und allgemeine Backend-Eigenschaften widerspiegeln:
Für jede der zuvor genannten Kategorien habe ich gefunden 30 Repos mit der höchsten Anzahl an Sternen, überprüften ihre Sternzahl am 1. Januar 2019 und berechneten die Differenz und den Quotienten auf der Grundlage der aktuellen und der vergangenen Sternzahl.
Ich habe die Repos nach Sterndifferenz und Sternquotienten sortiert. Dann habe ich die Repos, die nichts mit Node.js zu tun haben, und die, deren Beschreibung in anderen Sprachen als Englisch geschrieben ist, manuell entfernt. Wenn Repo eine reine Frontend-App oder eine Full-Stack-App mit Backend in einer anderen Technologie als Node.js war, habe ich es entfernt, aber wenn es das Node.js Backend enthielt, habe ich es beibehalten.
Außerdem habe ich Bibliotheken entfernt, die vor mehr als einem Jahr 39.990 Sterne überschritten haben, da ich ihre Anzahl an Sternen zu Beginn dieses Jahres nicht zählen kann. Das Ziel dieses Artikels ist es, Repos vorzustellen, die vor einem Jahr noch nicht allgemein bekannt waren. Natürlich ist es möglich, dass ich bei einigen manuellen Aktionen einen Fehler gemacht habe.
Ich beschloss, die Repos in die zu gruppieren folgende Kategorien:
Repos nach Star Difference:
Repos nach Sternquotienten:
Wie Sie sehen können, ist hasura/graphql-engine in beiden Rängen am höchsten. Da die Popularität von GraphQL in den letzten Jahren zugenommen hat, ist es kein Wunder, dass dieses Repo eines der angesagtesten Open-Source-Projekte von Node.js ist.
Der zweite Platz in beiden Rängen gehört Typeorm/Typeorm. Es hat eine sehr anschauliche README-Datei und unterstützt viele DBMS. Die Community hat einen Chat und einen durchschnittlichen Prozentsatz unkommentierter offener Probleme (408 von 1191, also 34%). Es funktioniert nicht nur in Node.js, sondern auch in Browser-, Ionic-, Cordova- und Electron-Apps.
Zwei weitere interessante Pakete sind typicode/lowdb und agershun/alasql, da beide sowohl Node.js als auch browser unterstützen, sie werden jedoch auf ganz unterschiedliche Weise verwendet: Ersteres unterstützt JS-Methoden, während letzteres SQL unterstützt.
Repos nach Star Difference:
Repos nach Sternquotienten:
Den ersten Platz in beiden Rängen belegt hasura/graphql-engine — dieselbe Bibliothek, die in der Kategorie Datenbank gewonnen hat.
Der 2. Platz nach dem Sternquotienten und der 4. Platz nach dem Sternunterschied gehören zu primus/eventemitter3. Ich denke, der Hauptgrund für das schnelle Wachstum ist der Ersatz seines Vorgängers EventEmitter2/EventEmitter2.
Den zweiten Platz nach der Sterndifferenz und den vierten Platz nach dem Sternquotienten belegt node-red/node-red, was für die Programmierung auf niedriger Ebene nützlich sein kann.
Der 3. Platz in beiden Rängen gehört Developit/Mitt. Sein Hauptvorteil ist ein sehr kurzer Code. Ich habe es überprüft und festgestellt, dass es Flow und JSDocs sowie einige Tests verwendet. Nachdem nur der Produktionscode übrig geblieben ist, ihn in reinen JS-Code eingebaut und verkleinert wurde, bleibt der Code im installierten Paket sehr kurz.
Repos nach Star Difference:
Repos nach Sternquotienten:
Diese Kategorie ist sehr umfangreich, aber ich habe beschlossen, sie in meine Recherche aufzunehmen, um zu vermeiden, dass einige Trendbibliotheken vernachlässigt werden, die möglicherweise in keine andere Kategorie passen.
Der 1. Platz in beiden Rängen gehört iamkun/dayjs, was ein Ersatz für einen anderen beliebten Bibliotheksmoment/Moment sein könnte. Auf den ersten Blick kann ich sagen, dass Day.js ein besseres README hat als Moment.js. Ein weiterer Vorteil ist die höhere Testabdeckung — 100% gegenüber 88% — obwohl ich etwas skeptisch bin, wenn ich eine 100-prozentige Abdeckung sehe, weil das nur bedeutet, dass alle Pfade abgedeckt sind, aber nicht unbedingt alle wichtigen Szenarien, einschließlich Randfälle. Tatsächlich ist es immer möglich, einen weiteren wertvollen Test zu schreiben, aber irgendwann hören wir auf, sie hinzuzufügen — dann, wenn der Wert eines neuen Tests geringer ist als seine Kosten (Implementierungszeit, Refaktorierung der Tests, Updates).
Der 2. Platz nach dem Sternquotienten und der 6. Platz nach dem Sternunterschied gehören Hapijs/Joi. Diese Bibliothek hat eine sehr kurze README-Datei, die zu einer sehr genauen Dokumentation mit vielen Beispielen weiterleitet. Persönlich habe ich viel Erfahrung mit der Verwendung von Joi bei der Validierung von Microservice-Endpunkten im Koa-Framework, und das kann ich wirklich diese Bibliothek weiterempfehlen. Obwohl ich es in Koa verwendet habe, wurde es für das Hapi.js Framework geschrieben, und es ist auch möglich, es eigenständig ohne Framework zu verwenden. Der Hauptvorteil ist ein sehr klarer Validierungscode. Wenn ich Joi-Funktionen vermisse, schreibe ich oft ein Joi-Plugin, das ich einfach verwenden kann, anstatt eine hässliche Validierung in den Endpunkt-Handler zu schreiben.
Weiter geht es — der 2. Platz nach Sternunterschied und der 6. Platz nach Sternquotienten wird von Lodash/Lodash belegt. Meine eigene Beobachtung während meiner Karriere in der JS-Entwicklung ist, dass die Verwendung unter den vorhandenen Geräten ziemlich stabil ist Node.js Entwickler und vielleicht fällt es sogar ein bisschen. Dieser wachsende Trend der GitHub-Stars ist möglicherweise aufgrund der Tatsache sichtbar, dass Lodash eine der beliebtesten JS-Bibliotheken ist. Immer wenn neue Leute anfangen, JS zu lernen, fangen sie an, Lodash zu benutzen und das Repo mit einem Stern zu markieren. Ich persönlich mag diese Bibliothek sehr, weil sie sehr oft eine einzeilige Lösung für das bietet, wofür Vanilla JS mehrere Codezeilen benötigen würde.
Der 3. Platz nach dem Sternquotienten und der 5. Platz nach dem Sternunterschied gehören zu Lovell/Sharp. Diese Bibliothek erleichtert die Bildverarbeitung auf einfache Weise. Ich mag die Schnittstelle, die Promise und Methodenverkettung verwendet. Ich verwende es in einem der Microservices und habe festgestellt, dass erzeugt manchmal Probleme bei der Installation, hauptsächlich weil es Low-Level-Code kompiliert. In den meisten Fällen (ich würde sagen 99%) erledigt eine einfache Garninstallation oder NPM-Installation den Job, aber manchmal schlägt sie fehl und ich muss eine Neuinstallation durchführen.
Den dritten Platz nach der Sterndifferenz und den vierten Platz nach dem Sternquotienten belegt date-fns/date-fns, eine weitere Bibliothek für Datumswerkzeuge. Ich persönlich bevorzuge Moment.js und wünschte, die Leute hätten zu diesem Repo beigetragen, anstatt neue zu erstellen.
Repos nach Star Difference:
Repos nach Sternquotienten:
Der 1. Platz nach dem Sternquotienten und der 2. Platz nach dem Sternunterschied gehört zu Gajus/Slonik. Es ist ein PostgreSQL-Client, daher unterstützt er leider nicht viele DBMS. Ein weiterer Nachteil ist, dass der Build derzeit fehlschlägt. Ein Vorteil ist eine beschreibende README-Datei mit einem Inhaltsverzeichnis. Ich denke, der Hauptgrund für seine wachsende Beliebtheit ist, dass es zwar 2017 auf den Markt gebracht wurde, aber erst seit Kurzem ausgereift genug ist, um es zu verwenden.
Den 1. Platz nach Sterndifferenz belegt visionmedia/debug. Einer der Vorteile ist, dass es sowohl in Node.js als auch in Browsern funktioniert. Es wird von 5,5 Millionen GitHub-Repos verwendet. Inklusive indirekter Abhängigkeiten ist es also eines der beliebtesten NPM-Pakete.
Ich denke, es lohnt sich auch Paypal/Gnomon zu erwähnen (3. Platz nach Sternenquotienten). Dieses Beispiel für Open-Source-Projekte von Node.js ist ein einfaches und nützliches Tool, das im Terminal funktioniert. Was fehlt, ist ein CI, um Tests auszuführen und auf NPM zu veröffentlichen, denn ohne das weiß ich nicht, ob die Tests bestanden sind und ob der neueste Code veröffentlicht wurde. Außerdem fehlt ein Linter (der auch in CI ausgeführt werden sollte), um eine statische Codeanalyse durchzuführen. Es ist unglaublich, dass seine Popularität so schnell wächst der letzte Commit wurde 2016 veröffentlicht. Ich hoffe, dass dank der wachsenden Beliebtheit jemand Zeit findet, die offenen Probleme zu beheben (jedes wurde entweder 2017 oder 2018 gemeldet).
Repos nach Star Difference:
Repos nach Sternquotienten:
Der 1. Platz nach Sternenunterschied gehört Nodemailer/Nodemailer. Ein großer Vorteil dieser Open-Source-Bibliothek von Node.js ist, dass sie 900 geschlossene Probleme und nur 4 offene Probleme enthält. Es verwendet einen SMTP-Host, aber ich bevorzuge die Verwendung eines Drittanbieter-Servers wie Sendgrid oder Sparkpost, da die Konfiguration einfacher ist und die Möglichkeit besteht, eine sehr große Anzahl von E-Mails zu senden.
Den ersten Platz nach Sternenquotienten und den zweiten Platz nach dem Sternunterschied belegt Forwardemail/Free-Email-Forwarding, ein weiteres Tool für einen benutzerdefinierten Mailingserver.
Ein interessantes Projekt ist freeCodeCamp/Mail-for-Good (4. Platz nach Sternenunterschied). Es ist eine gemeinnützige Anwendung für den Versand von E-Mail-Kampagnen. Es enthält sowohl das Frontend als auch das Backend von Node.js und verwendet Pakete wie Express, Passport, Helmet, aws-sdk, bluebird und socket.io.
Repos nach Star Difference:
Repos nach Sternquotienten:
Der 1. Platz nach dem Sternquotienten und der 2. Platz nach dem Sternunterschied gehört zu nestjs/nest. Diese Open-Source-Datei Node.js ist ein in TypeScript implementiertes Framework für das skalierbare Backend von Node.js. Es wird sehr aktiv gepflegt — zum Zeitpunkt des Schreibens dieses Blogposts wurden in den wenigen Stunden zuvor viele Commits veröffentlicht. Es bietet eine große Unterstützung für Themen und PRs: 75 offene Ausgaben gegenüber 2.021 geschlossenen Problemen, was bedeutet, dass nur 3,6% aller Probleme noch offen sind; 34 offene PRs gegenüber 1.364 fusionierten oder geschlossenen PRs, was bedeutet, dass nur 2,4% aller PRs noch offen sind. Die Themen und PRs sind gekennzeichnet, was das Filtern erheblich erleichtert.
Den 1. Platz nach dem Sternunterschied und den 3. Platz nach dem Sternquotienten belegen goldbergyoni/nodebestpractices. Es ist eine großartige Reihe guter Node.js Practices, die meiner Meinung nach jeder Node.js -Entwickler lesen sollte. Natürlich kannst du auch dazu beitragen! Die Anzahl der offenen PRs beträgt 6 und die Anzahl der fusionierten oder geschlossenen PRs beträgt 431, was bedeutet, dass nur 1,4% aller PRs noch geöffnet sind.
Der 2. Platz nach dem Sternquotienten und der 3. Platz nach dem Sternunterschied gehören zu strapi/strapi, einem CMS von Node.js. Aus eigener Erfahrung kann ich nicht viel über Node.js CMS sagen, weil ich Anwendungen schreibe, keine Webseiten, aber wenn ich mir diesen Trend ansehe, ist Strapi vielleicht das beste Node.js CMS.
Repos nach Star Difference:
Repos nach Sternquotienten:
Im Allgemeinen empfehle ich, RabbitMQ (rabbitmq/rabbitmq-server) für Warteschlangen zu verwenden, da dies der Industriestandard ist. Es hat jedoch einige Nachteile — die geplante Zeit ist auf etwa einen Monat begrenzt, also müssen wir eine Problemumgehung durchführen, um eine Aktion zu planen, die nach 12 Monaten ausgeführt wird. Ein weiterer potenzieller Nachteil ist, dass es in Erlang implementiert ist, was keine beliebte Sprache ist, sodass es vielleicht nicht so einfach ist, zu RabbitMQ beizutragen.
Der 1. Platz nach dem Sternquotienten und der 4. Platz nach dem Sternunterschied gehören zu animir/node-rate-limiter-flexible. Sein Hauptvorteil scheint die Unterstützung zahlreicher DBMS zu sein. Laut Benchmarks hat diese Bibliothek eine höhere Leistung als ihre Alternativen. Leider schlägt der neueste Build fehl.
Den 1. Platz nach Sterndifferenz und den 4. Platz nach Sternquotienten belegt OptimalBits/Bull. Der Hauptvorteil dieser Open-Source-Bibliothek von Node.js besteht darin, dass sie die meisten Funktionen bietet. Wie sie in ihrer README-Datei vergleichen:
Der zweite Platz nach Sternenunterschied gehört zur Agenda/Agenda. Es basiert auf MongoDB und ihr Vorteil gegenüber Bull ist die Bereitstellung einer REST-API. Ich benutze Agenda seit mehr als einem Jahr und es scheint stabil zu sein.
Repos nach Star Difference:
Repos nach Sternquotienten:
Der 1. Platz nach dem Sternquotienten gehört zu Typestack/Class-Validator. Es könnte eine gute Lösung für TypeScript-Projekte sein, da die Validierung auf einer TypeScript-Klasse basiert und Anmerkungen verwendet. Es gibt auch einige Erweiterungen dieser Bibliothek.
Den 1. Platz nach Sterndifferenz und den 2. Platz nach Sternquotienten belegt jquense/yup. Die Verwendung ist ähnlich wie bei Joi, es könnte jedoch einfacher sein, eine benutzerdefinierte Validierung in Yup zu schreiben.
In dieser Kategorie sehen wir auch einige Open-Source-Projekte von Node.js, die in den vorherigen Kategorien wie Moment/Moment und Hapijs/Joi erwähnt wurden.
Andere Bibliotheken, die für mich interessant aussehen, sind validatorjs/validator.js, das auf die String-Validierung spezialisiert ist und viele Validierungsfunktionen bietet, und epoberezkin/ajv, das Daten anhand eines Schemas validiert, das im JSON-Schemaformat geschrieben ist, und sie behaupten, es sei der schnellste JSON-Schema-Validator.
Manchmal können wir sagen, dass eine Bibliothek oder Anwendung besser ist als eine andere, aber meistens in Fällen, in denen die zweite viele schwerwiegende Probleme hat, wie z. B. schwerwiegende Fehler, extrem schlechte Leistung, fehlende Dokumentation, keine semantische Versionierung, fehlende Tests oder keine Unterstützung mehr, während die erste keine dieser Probleme hat.
In anderen Situationen ist jedoch in einigen Aspekten der erste Aspekt besser, während in anderen Aspekten der zweite besser ist. Daher müssen Sie Produkte auswählen, die passt am besten zu Ihren Bedürfnissen. Manchmal ist die Entscheidung objektiv, wie die Bewertung der Leistung, aber ein anderes Mal ist sie subjektiv, z. B. wenn das Team Methodenverkettung oder Anmerkungen bevorzugt.
Ich hoffe, Sie haben in diesem Beitrag einige interessante Open-Source-Projekte von Node.js gefunden, die Sie ausprobieren oder zu denen Sie aktiv beitragen können. Wenn ja, zögern Sie bitte nicht teile den Artikel mit Ihren Kollegen und helfen Sie ihnen, neue, wertvolle Tools zu entdecken.
Und wenn Sie Hilfe bei Ihrem Projekt oder Ratschläge zu den besten Tools oder Tech-Stacks benötigen, gibt es viele großartige Entwickler und Unternehmen, die Node.js für die Webentwicklung verwenden. Finden Sie einfach Experten, die Ihren Fall verstehen.
Our promise
Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.
Authors
Read next
Popular this month