Heim > Artikel > Web-Frontend > Ist Next.js die nächste Evolution oder nur ein vorübergehender Trend? Eine Fallstudie zu Dora Metrics
Next.js ist ein Repo, ein relativ neues, aber leistungsstarkes JavaScript-Framework, das die moderne Webentwicklungsszene im Sturm erobert. Next.js stärkt React durch serverseitiges Rendering, statische Site-Generierung und SEO-Optimierung.
Entwickler lieben seine Vielseitigkeit und die Zahlen sprechen für sich. In einer kürzlich durchgeführten Umfrage gaben 60 % der Entwickler an, dass sie Next.js aufgrund der einfachen Bereitstellung und Skalierbarkeit für die Erstellung produktionsbereiter Anwendungen bevorzugen. Beim Vergleich der Bereitstellungszeiten übertrifft Next.js React durchweg in Bezug auf Geschwindigkeit und Effizienz, was es zur ersten Wahl für Entwickler macht, die einen nahtlosen Build-Prozess anstreben.
Diese Fallstudie konzentriert sich auf das OpenSource Next.js-Repository und hebt insbesondere dessen außergewöhnliche Bereitstellungshäufigkeit hervor.
Als Entwickler, die an Next.js herumgebastelt haben, um dynamische E-Commerce-Websites und schnell startende Blogs zu erstellen, kamen wir nicht umhin, uns zu fragen: Wie haben sie ein solch legendäres Repo mit solch einer Effizienz erstellt und verwaltet? Deshalb haben wir mit Middleware Open-Source tiefer gegraben.
Wenn Sie Lust haben, diese Erkenntnisse weiter zu erforschen und sich mit anderen führenden Ingenieuren auszutauschen, kommen Sie zu uns in The Middle Out Community oder abonnieren Sie exklusiv unseren Newsletter Fallstudien und mehr!
Aber das Wichtigste zuerst. Lassen Sie uns verstehen, was Dora-Metriken sind.
Dora-Metriken sind Schlüsselindikatoren, die zeigen, wie effizient ein Projekt vom Start bis zur endgültigen Produktion in der Softwarebereitstellung verläuft. Lesen Sie gerne unseren ausführlichen Blog über Dora Metrics und erfahren Sie, wie diese Ihre Engineering-Prozesse unterstützen können!
Bereitstellungshäufigkeit: Wie oft Code in die Produktion gelangt.
Vorlaufzeit für Änderungen: Wie lange es dauert, bis ein Commit live geht.
Mean Time to Restore (MTTR): Zeit, die zur Wiederherstellung nach einem Ausfall benötigt wird.
Änderungsfehlerrate: Wie viele dieser Bereitstellungen machen etwas kaputt.
Jetzt, da wir alle auf dem gleichen Stand sind, wollen wir sehen, wie sich Next.js schlägt.
Das OpenSource Next.js-Repository zeichnet sich durch seine außergewöhnliche Bereitstellungshäufigkeit aus, die die Industriestandards bei weitem übertrifft. In den letzten drei Monaten hat das Repo kontinuierlich ein hohes Volumen an Bereitstellungen vorangetrieben, was die Effizienz und Automatisierungsfähigkeit des Teams widerspiegelt.
Im Juni 2024 gab es 247 Einsätze, gefolgt von 261 im Juli und stolzen 279 im August. Diese Zahlen unterstreichen das Engagement des Repositorys für kontinuierliche Integration und schnelle Funktionsveröffentlichungen und machen es zu einem Maßstab für die Bereitstellungshäufigkeit in der Open-Source-Community.
Das ist fast alle 3 Stunden ein Einsatz! Dieser Hochfrequenzeinsatz dient nicht nur der Show; Dadurch entwickelt sich das Projekt mit unglaublicher Geschwindigkeit weiter. Wie machen sie das? Ein paar Schlüsselfaktoren stechen hervor:
Automatisierte CI/CD-Pipeline: Mit vorhandener Automatisierung erfolgen Bereitstellungen schnell und reibungslos – fast wie von Zauberhand.
Häufige, kleine PRs: Durch die Aufteilung von Änderungen in mundgerechte Pull-Anfragen können sie schneller und mit geringerem Risiko zusammengeführt und bereitgestellt werden.
Schnelle Problemlösung: Fehler werden schnell behoben und fehlgeschlagene Bereitstellungen sind selten.
Trotz einer hohen Bereitstellungshäufigkeit weist das Repository erhebliche Schwankungen in der Zykluszeit auf, was sich auf die gesamte Vorlaufzeit für Änderungen auswirkt. Die Zykluszeit umfasst alle PRs, während die Vorlaufzeit nur PRs mit verfügbaren Bereitstellungsdaten umfasst. Im Juni 2024 betrug die durchschnittliche Zykluszeit etwa 3,5 Tage, stieg im Juli leicht auf 3,6 Tage und stieg dann bis August auf 5,3 Tage.
Die Zykluszeit hat zugenommen und ist von 3,5 auf 5,3 Tage gestiegen, was auf einige Verzögerungen im Entwicklungsprozess hindeutet. Das Erkennen von Engpässen, sei es bei Codeüberprüfungen, Tests oder manuellen Aufgaben, und die Implementierung automatisierter Tests oder einer verbesserten Sprintplanung könnten dazu beitragen, diese zu reduzieren.
Im Juni 2024 betrug die durchschnittliche Erstreaktionszeit 1,6 Tage (38,4 Stunden), was auf eine schnelle und effiziente Bearbeitung von Problemen und Pull-Anfragen im Next.js-Repository hinweist. Bis Juli 2024 stieg diese Zeit leicht auf 1,8 Tage (43,2 Stunden), was auf eine geringfügige Verzögerung hindeutet, wahrscheinlich aufgrund einer wachsenden Anzahl von Problemen oder einer geringeren Teamverfügbarkeit.
Im August 2024 kam es jedoch zu einem deutlichen Anstieg auf 2,6 Tage (62,4 Stunden), was auf spürbare Verzögerungen hindeutet, die möglicherweise durch höhere Arbeitsbelastung, Engpässe bei den Prüfereinsätzen oder weniger Teammitglieder aufgrund von Urlaub verursacht wurden.
Um die Erstreaktionszeit zu verbessern, können mehrere Strategien implementiert werden, um dem jüngsten Anstieg an Verzögerungen zu begegnen. Die Automatisierung von Benachrichtigungen für Probleme und Pull-Requests kann eine schnellere Zuweisung an Prüfer gewährleisten und Wartezeiten verkürzen.
Die Einführung von SLAs (Service Level Agreements) für Reaktionszeiten könnte Verantwortlichkeit schaffen und ein schnelleres Engagement fördern. Darüber hinaus könnte die Überprüfung der Teamzuteilung und der Arbeitslastverteilung dazu beitragen, die Verantwortlichkeiten auszubalancieren, insbesondere in Zeiten hoher Nachfrage oder reduzierter Teamverfügbarkeit, wie z. B. im Urlaub.
Die Förderung der funktionsübergreifenden Zusammenarbeit könnte auch schnellere Reaktionen ermöglichen, indem die Last gleichmäßiger auf das Team verteilt wird. Diese Änderungen könnten die Reaktionszeiten effektiv verkürzen und die Effizienz aufrechterhalten.
Von Juni bis August 2024 erhöhte sich die Vorlaufzeit für Änderungen im Next.js-Repository schrittweise von 3,3 Tagen auf 4,1 Tage. Im Juni spiegelte die relativ schnelle Bearbeitungszeit von 3,3 Tagen einen effizienten Arbeitsablauf mit reibungsloser Koordination wider. Bis Juli stieg diese Zeit leicht auf 3,6 Tage, was auf geringfügige Ineffizienzen hindeutet, möglicherweise aufgrund längerer Codeüberprüfungen oder komplexerer Aufgaben.
Im August erreichte die Vorlaufzeit jedoch 4,1 Tage, was auf größere Verzögerungen hindeutet, die wahrscheinlich durch höhere Arbeitsbelastung, Engpässe bei Überprüfungen oder reduzierte Teamkapazität aufgrund von Urlaub verursacht wurden. Dieser Trend legt die Notwendigkeit nahe, Prozesse zu optimieren und weitere Verlangsamungen zu verhindern.
Gründe?
Verlängerte Überprüfungszeiten. Zum Beispiel PR #67498
Komplexe Aufgaben, die eine gründliche Prüfung und Prüfung erfordern. PR #67391
Schwankungen bei den Erstreaktionszeiten (von 1,6 Tagen auf 2,6 Tage) führen zu ungleichmäßigen Startzeiten für Überprüfungen und verzögern den Fortschritt.
Das OpenSource Next.js-Repo umfasst eine Vielzahl von Aktivitäten, die von Funktions-Upgrades und Bug-Squashing bis hin zur Verbesserung der Dokumentation und Verfeinerung von Tests reichen. Hier ist eine Aufschlüsselung einiger wichtiger Erkenntnisse:
Funktionen und Verbesserungen: Überarbeitungen einschließlich Leistungsoptimierungen (PR #67397), neue Funktionalitäten (PR #67215).
Dokumentation: Wesentliche Beiträge zur Dokumentation sorgen für Klarheit und einfachere Einführung (PR #67056).
Fehlerbehebungen: Behebung kritischer Fehler, hervorgehoben durch 41,5 Stunden (~1,7 Tage) Nacharbeitszeit (PR #67022).
Leistungsoptimierungen: Verbesserung der Geschwindigkeit und Effizienz des Frameworks (PR #67065).
Diese Updates positionieren Next.js als führend in der Webentwicklung. Allerdings können viele der Bereiche, die einer Verbesserung bedürfen – Zykluszeit, Erstreaktion und Vorlaufzeit – von einer stärkeren Automatisierung bei Tests, Codeüberprüfungen und Benachrichtigungen profitieren.
Zur weiteren Optimierung können sie Engpässe in ihrer Pipeline verfolgen, unabhängig davon, ob diese Engpässe während der Codeüberprüfung, beim Testen oder bei der Bereitstellung auftreten, und diese Bereiche gezielt ansprechen, um die Gesamtleistung zu steigern. Auch die Förderung kontinuierlichen Feedbacks durch häufigere Stand-ups oder Retrospektiven kann dabei helfen, Reibungspunkte zu identifizieren und zu lösen. Indem Sie sich auf diese Strategien konzentrieren, können Sie eine effizientere und optimierte Entwicklungs- und Bereitstellungspipeline erstellen.
Für interne Mitwirkende ist der schnelle Bereitstellungszyklus ein Traum. Funktionen und Korrekturen werden schnell bereitgestellt, sodass das Team nahezu in Echtzeit Feedback erhält. Die lange Vorlaufzeit könnte jedoch dazu führen, dass einige Mitwirkende das Gefühl haben, in einer langen Warteschlange zu stecken und darauf zu warten, dass ihre Arbeit online geht.
Für externe Mitwirkende kann das Verständnis dieser Engpässe klarere Erwartungen wecken. Wenn Sie zu Next.js beitragen, wundern Sie sich nicht, wenn die Zusammenführung Ihrer PR etwas Zeit in Anspruch nimmt, auch wenn Bereitstellungen häufig erfolgen.
In Automatisierung investieren: Eine solide CI/CD-Pipeline kann dafür sorgen, dass Bereitstellungen wie Wasser fließen.
Fördern Sie kleine, häufige PRs: Weniger Komplexität bedeutet schnellere Überprüfungen und schnellere Bereitstellungen.
Beheben Sie Engpässe in der Zykluszeit: Wenn die Durchlaufzeit hinterherhinkt, untersuchen Sie, was die Verzögerungen verursacht – ob Nacharbeit oder Überprüfungszeiten.
Next.js hat eine beeindruckende Bereitstellungshäufigkeit, die rasant steigt, aber ihre Vorlaufzeit, Zykluszeit und Erstreaktionszeiten könnten etwas Aufmerksamkeit gebrauchen. Mit ein paar strategischen Optimierungen haben sie das Potenzial, starke Konkurrenten gegen die Top-Performer im jährlichen Dora-Bericht von Google zu sein.
Next.js hat einen neuen Maßstab in der Bereitstellungseffizienz gesetzt und ist damit das Unternehmen, das man in der Open-Source-Welt im Auge behalten sollte. Mit seiner unschlagbaren Mischung aus Geschwindigkeit, Qualität und ständiger Innovation lässt es der Konkurrenz kaum Raum, aufzuholen. Egal, ob Sie ein aktiver Mitwirkender oder ein neugieriger Zuschauer sind, es gibt viel zu bewundern – und zu lernen – aus diesem bahnbrechenden Repo.
Während Next.js sich weiterentwickelt, geht es nicht nur darum, mit den Anforderungen des Webs Schritt zu halten; es formt sie. Machen Sie sich bereit für weitere bahnbrechende Updates, die Open-Source-Exzellenz neu definieren!
Wenn Sie Lust haben, diese Erkenntnisse weiter zu erforschen und sich mit anderen führenden Ingenieuren auszutauschen, kommen Sie zu uns in The Middle Out Community. und abonnieren Sie den Newsletter für exklusive Fallstudien und mehr!
Next.js wurde 2016 von Vercel (ehemals Zeit) erstellt und erlangte aufgrund seiner leistungsstarken Funktionen zum Erstellen serverseitig gerenderter React-Anwendungen schnell Popularität. Es unterstützt sowohl die statische Site-Generierung (SSG) als auch das serverseitige Rendering (SSR) und ist somit eine flexible Wahl für Entwickler. Große Unternehmen wie Netflix, Twitch und GitHub nutzen Next.js zur Stromversorgung ihrer Web-Apps und stellen damit seine Zuverlässigkeit und Skalierbarkeit unter Beweis.
Middleware und Dora-Metriken
Leitfäden zur kontinuierlichen Integration
Dora Metrics Methodology
Das obige ist der detaillierte Inhalt vonIst Next.js die nächste Evolution oder nur ein vorübergehender Trend? Eine Fallstudie zu Dora Metrics. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!