Next.js — это репозиторий, представляющий собой относительно недавнюю, но мощную среду JavaScript, которая штурмует современную сцену веб-разработки. Next.js усиливает React благодаря серверному рендерингу, генерации статических сайтов и SEO-оптимизации.
Разработчикам нравится его универсальность, и цифры говорят сами за себя. В недавнем опросе 60 % разработчиков заявили, что предпочитают Next.js для создания готовых к использованию приложений из-за его простоты развертывания и масштабируемости. При сравнении времени развертывания Next.js неизменно превосходит React по скорости и эффективности, что делает его идеальным выбором для разработчиков, стремящихся к плавному процессу сборки.
В этом тематическом исследовании основное внимание уделяется репозиторию OpenSource Next.js, в частности подчеркивается его исключительная частота развертывания.
Как разработчики, которые работали с Next.js для создания динамичных сайтов электронной коммерции и быстрозапускаемых блогов, мы не могли не задаться вопросом: как им удалось создать такой легендарный репозиторий и управлять им с такой эффективностью? Итак, мы копнули глубже, используя промежуточное ПО с открытым исходным кодом.
Если вам интересно глубже изучить эти идеи и пообщаться с коллегами-лидерами в области разработки, присоединяйтесь к нам в Сообществе Middle Out или подпишитесь на нашу рассылку, чтобы получать эксклюзивные тематические исследования и многое другое!
Но обо всем по порядку. Давайте разберемся, что такое Dora Metrics.
Dora Metrics — это ключевые индикаторы, которые показывают, насколько эффективно проект продвигается от начала до конечного производства программного обеспечения. Не стесняйтесь читать наш подробный блог о Dora Metrics и о том, как они могут помочь в ваших инженерных процессах!
Частота развертывания: как часто код попадает в рабочую среду.
Время внесения изменений: сколько времени потребуется, чтобы коммит вступил в силу.
Среднее время восстановления (MTTR): время, необходимое для восстановления после сбоя.
Процент неудачных изменений: сколько из этих развертываний что-то сломали.
Теперь, когда мы все на одной волне, давайте посмотрим, насколько Next.js соответствует требованиям.
Репозиторий OpenSource Next.js отличается исключительной частотой развертывания, намного превосходящей отраслевые стандарты. За последние три месяца репозиторий постоянно увеличивал объем развертываний, что отражает эффективность команды и мастерство автоматизации.
В июне 2024 года было совершено 247 развертываний, в июле — 261, а в августе — впечатляющие 279. Эти цифры подчеркивают стремление репозитория к непрерывной интеграции и быстрому выпуску новых функций, что делает его эталоном частоты развертывания в сообществе разработчиков ПО с открытым исходным кодом.
Это почти одно развертывание каждые 3 часа! Это высокочастотное развертывание предназначено не только для галочки; это позволяет проекту развиваться с невероятной скоростью. Как они это делают? Следует выделить несколько ключевых факторов:
Автоматизированный конвейер CI/CD: благодаря автоматизации развертывание происходит быстро и плавно — почти как по волшебству.
Частые небольшие запросы на добавление: разбивая изменения на небольшие запросы на включение, они могут объединять и развертывать быстрее с меньшим риском.
Быстрое решение проблем: ошибки устраняются быстро, а неудачные развертывания редки.
Несмотря на высокую частоту развертываний, в репозитории наблюдаются заметные колебания времени цикла, что влияет на общее время выполнения изменений. Время цикла включает все запросы на поставку, а время выполнения включает только запросы на развертывание с доступными данными о развертывании. В июне 2024 года среднее время цикла составляло около 3,5 дней, немного увеличившись до 3,6 дней в июле, а затем резко увеличившись до 5,3 дней к августу.
Продолжительность цикла увеличилась с 3,5 до 5,3 дней, что указывает на некоторые задержки в процессе разработки. Выявление узких мест, будь то при проверке кода, тестировании или ручных задачах, а также внедрение автоматического тестирования или улучшенное планирование спринта могут помочь уменьшить эту проблему.
В июне 2024 года среднее время первого ответа составило 1,6 дня (38,4 часа), что указывает на быструю и эффективную обработку проблем и запросов на включение в репозитории Next.js. К июлю 2024 года это время немного увеличилось до 1,8 дня (43,2 часа), намекая на незначительную задержку, вероятно, из-за растущего числа проблем или снижения доступности команды.
Однако в августе 2024 года произошел значительный скачок до 2,6 дней (62,4 часа), что указывает на заметные задержки, возможно, вызванные более высокой рабочей нагрузкой, узкими местами в заданиях рецензентов или меньшим количеством членов команды из-за отпусков.
Чтобы улучшить время первого ответа, можно реализовать несколько стратегий, направленных на решение проблемы недавнего увеличения задержек. Автоматизация уведомлений о проблемах и запросах на включение может обеспечить более быстрое назначение рецензентов и сокращение времени ожидания.
Внедрение SLA (соглашений об уровне обслуживания) в отношении времени ответа может повысить подотчетность и способствовать более быстрому взаимодействию. Более того, пересмотр распределения команд и рабочей нагрузки может помочь сбалансировать обязанности, особенно в периоды высокого спроса или ограниченной доступности команды, например, в отпуске.
Поощрение межфункционального сотрудничества также может способствовать более быстрому реагированию за счет более равномерного распределения нагрузки по команде. Эти изменения могут эффективно сократить время реагирования и сохранить эффективность.
С июня по август 2024 года время выполнения изменений в репозитории Next.js постепенно увеличивалось с 3,3 дня до 4,1 дня. В июне относительно быстрый срок выполнения работ (3,3 дня) отражал эффективный рабочий процесс с четкой координацией. К июлю это время немного увеличилось до 3,6 дней, что указывает на незначительную неэффективность, возможно, из-за более длительных проверок кода или более сложных задач.
Однако к августу время выполнения достигло 4,1 дня, что указывает на более значительные задержки, вероятно, вызванные более высокой рабочей нагрузкой, узкими местами в проверках или снижением производительности команды из-за отпусков. Эта тенденция предполагает необходимость оптимизации процессов и предотвращения дальнейшего замедления.
Причины?
Увеличенное время рассмотрения. Например, PR №67498
Сложные задачи, требующие тщательного изучения и тестирования. ПР №67391
Колебания времени первого ответа (от 1,6 до 2,6 дней) приводят к неравномерному времени начала проверок, что замедляет прогресс.
Репозиторий OpenSource Next.js включает в себя множество мероприятий: от обновления функций и исправления ошибок до улучшения документации и уточнения тестов. Вот некоторые ключевые выводы:
Функции и улучшения: капитальный ремонт, включая оптимизацию производительности (PR № 67397), новые функциональные возможности (PR № 67215).
Документация: значительный вклад в документацию обеспечивает ясность и простоту внедрения (PR № 67056).
Исправления ошибок: устранение критических исправлений ошибок, отмеченных 41,5 часами (~ 1,7 днями) времени на доработку (PR № 67022).
Оптимизация производительности: повышение скорости и эффективности платформы (PR № 67065).
Эти обновления делают Next.js лидером в области веб-разработки. Однако многие области, требующие улучшения — время цикла, первое реагирование и время выполнения заказа — могут выиграть от повышения автоматизации тестирования, проверки кода и уведомлений.
Для дальнейшей оптимизации они могут отслеживать узкие места в своем конвейере, независимо от того, возникают ли эти узкие места во время проверки кода, тестирования или развертывания, и нацеливаться на эти области для повышения общей производительности. Кроме того, поощрение постоянной обратной связи посредством более частых стендапов или ретроспектив может помочь выявить и устранить разногласия. Сосредоточив внимание на этих стратегиях, вы сможете создать более эффективный и оптимизированный конвейер разработки и развертывания.
Для внутренних участников цикл быстрого развертывания — это мечта. Функции и исправления внедряются быстро, а это означает, что команда получает обратную связь практически в режиме реального времени. Однако из-за большого времени выполнения у некоторых участников может возникнуть ощущение, что они застряли в длинной очереди, ожидая, пока их работа будет опубликована.
Для внешних участников понимание этих узких мест может сформировать более четкие ожидания. Если вы вносите свой вклад в Next.js, не удивляйтесь, если объединение вашего PR займет некоторое время, хотя развертывания происходят часто.
Инвестируйте в автоматизацию: надежный конвейер CI/CD поможет обеспечить плавность развертываний.
Поощряйте небольшие, частые запросы на отправку заявок: меньшая сложность означает более быструю проверку и более быстрое развертывание.
Устраните узкие места во времени цикла: если время выполнения отстает, выясните, что является причиной задержек — время доработки или проверки.
Next.js имеет впечатляющую частоту развертывания, которая стремительно растет, но их время выполнения, время цикла и время первого ответа заслуживают некоторого внимания. С некоторыми стратегическими изменениями у них есть потенциал стать серьезным конкурентом лучшим компаниям из годового отчета Google Dora,
Next.js установил новый стандарт эффективности развертывания, сделав его лидером в мире открытого исходного кода. Благодаря непревзойденному сочетанию скорости, качества и постоянных инноваций он не оставляет конкурентам возможности догнать его. Независимо от того, являетесь ли вы активным участником или любопытным зрителем, в этом новаторском репозитории есть чем полюбоваться и чему поучиться.
Поскольку Next.js продолжает развиваться, он не просто идет в ногу с требованиями Интернета; это формирует их. Будьте готовы к новым инновационным обновлениям, которые по-новому определяют качество открытого исходного кода!
Если вам интересно глубже изучить эти идеи и пообщаться с коллегами-лидерами в области разработки, присоединяйтесь к нам в Сообществе Middle Out. и подпишитесь на рассылку, чтобы получать эксклюзивные тематические исследования и многое другое!
Next.js был создан компанией Vercel (ранее Zeit) в 2016 году и быстро завоевал популярность благодаря своим мощным функциям для создания приложений React, отображаемых на стороне сервера. Он поддерживает как генерацию статического сайта (SSG), так и рендеринг на стороне сервера (SSR), что делает его гибким выбором для разработчиков. Крупные компании, такие как Netflix, Twitch и GitHub, используют Next.js для поддержки своих веб-приложений, демонстрируя его надежность и масштабируемость.
Промежуточное ПО и метрики Dora
Руководства по непрерывной интеграции
Методология показателей Доры
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3