5 причин начать использовать BeyondJS.

Будущее уже здесь, и оно демонстрируется постоянной эволюцией и появлением новых инновационных инструментов и технологий. Эти новые технологии появляются все более быстрыми темпами, и их влияние на нашу жизнь огромно. Эти инновации, от искусственного интеллекта до виртуальной реальности, меняют то, как мы живем, работаем и взаимодействуем друг с другом.

Появление ChatGPT, использование Copilot — вот некоторые из этих очень больших изменений, к которым большая часть компьютерного сообщества все еще пытается приспособиться, а тем временем у нас появляется поток новых библиотек, фреймворков и сред выполнения. .

В этом контексте BeyondJS представляет собой альтернативу, которая стремится упростить и улучшить опыт разработки с помощью JavaScript/Typescript, а также улучшить опыт разработчиков, гарантируя, что с небольшими усилиями могут быть созданы надежные и масштабируемые пакеты или приложения.

В этой статье я рассмотрю пять причин, по которым я считаю, что вам следует попробовать BeyondJS как можно скорее.

1. Будущее JavaScript:

После вводной строки диапазон вещей, которые нужно изучить и реализовать, становится все больше. Это связано с тремя основными факторами:

  • Естественная эволюция языка создает альтернативы наиболее широко используемым фреймворкам и заставляет сообщества двигаться вперед.
  • Использование JavaScript вне Интернета.
  • Появление сред выполнения, таких как Bun (2022 г.) и Deno (2019 г.).

Неизвестно, куда в конечном итоге приведут нас все эти изменения, и целью этой статьи не является обсуждение этого вопроса. Однако важно подумать о том, как оставаться в курсе всех этих новых разработок, не теряясь при этом. Является ли стек, над которым мы работаем, лучшим вариантом, или мы рискуем упустить возможность?

И здесь на помощь приходит BeyondJS!

BeyondJS — это альтернатива, предназначенная для упрощения процессов разработки, с простой концепцией, основанной на сервере разработки, который делает код доступным для любой среды выполнения и в требуемом формате.

Да! Вы можете использовать BeyondJS для создания кода для веб-приложений и мобильных приложений, а также для создания кода в Node, Deno или любой другой среде выполнения, которая может существовать.

2. Упрощение стеков разработки

Быстрая и эффективная разработка с помощью JavaScript может стать проблемой как для опытных разработчиков, так и для новичков из-за обширной доступной экосистемы. Сложность начинается с использования всех доступных инструментов для разработки JavaScript, таких как Typescript, JSX и упаковщики.

На практике многие разработчики работают с базовыми конфигурациями этих инструментов, которых может быть достаточно, но по мере роста проектов все усложняется, и нет простого способа создать кроссплатформенный код или протестировать новые библиотеки или стеки.

BeyondJS упрощает весь этот процесс, предоставляя сервер разработки, который делает созданный код доступным для любой среды выполнения, позволяя программисту сосредоточиться исключительно на самом важном: на программировании.

Как модульная структура, она требует минимальной конфигурации и не требует дополнительных упаковщиков. Кроме того, разработка имеет естественное поведение, очень похожее на поведение в производственной среде, что упрощает процесс развертывания.

Нам нужно только определить характеристики платформы, на которой мы хотим выполнять код, концепция в BeyondJS, известная как распространение.

"distributions": [
    {
        "name": "node",
        "environment": "development",
        "platform": "web",
        "ports": {
            "bundles": 6530
        }
    }
]

Типичным случаем является необходимость поддержки реализации кода с помощью CommonJS, SystemJS или Es6. BeyondJS позволяет генерировать код в любом из этих методов разрешения, и программист может тестировать их одновременно, без необходимости сложных конфигураций.

3. Это агностическая метаструктура.

Мир JavaScript словно находится в бесконечном цикле, в котором каждый раз, когда появляется новая технология или библиотека, он не решает всего необходимого для создания проектов, поэтому для его сопровождения создается фреймворк. Таким образом, у нас столько же фреймворков, сколько библиотек, и мы тратим много времени на решение одних и тех же проблем с разными стеками, хотя все они основаны на одном языке.

Pero ¿Por que no cambiarlo?

BeyondJS — это метафреймворк, основанный на модульных принципах EcmaScript, Node.js и стандарте пакетов NPM. Он направлен на то, чтобы пакеты кода были независимыми, многократно используемыми и масштабируемыми компонентами.

Основываясь на этом принципе, он концептуально совместим с любым пакетом NPM, соответствующим стандарту Node.js. Кроме того, он позволяет создавать простые решения, требующие включения нескольких стеков разработки без возникновения коллизий между ними. Это достигается благодаря модульной концепции, где каждый модуль может иметь свою конфигурацию, процессоры и технологии.

Кроме того, BeyondJS предоставляет решения проблем архитектуры, которые часто необходимы в библиотеках веб-рендеринга, таких как маршрутизация, импорт модулей или загрузка элементов. Все это делается с использованием универсального подхода, то есть включает поддержку проблем, существующих в гибридных приложениях, что позволяет повторно использовать код для различных типов решений.

3. ГМР

«Горячая» замена модулей сегодня является важной функцией программирования на JavaScript. К сожалению, прогресс в этой области программирования на JavaScript за пределами браузера минимален.

Такие инструменты, как nodemon, полезны, но они на самом деле не используют преимущества HMR, поскольку перезапускают службу при каждом изменении, требуя перезапуска процесса выполнения. И хотя мы к этому привыкли, это потеря времени в разработке.

Между тем, BeyondJS предлагает автоматический HMR для любой среды (Bunjs, Deno, Node и Browser) и не требует дополнительной настройки, поскольку уже работает.

Кроме того, концепция HMR в BeyondJS создана в соответствии с принципами шаблона Observer, позволяя программировать с учетом разработки и сохраняя в памяти или выполняя только то, что необходимо.

Примером использования может быть сценарий, который подключается к базе данных, извлекает данные и должен обрабатывать информацию из нее. Чтобы проиллюстрировать это, давайте взглянем на следующий сегмент кода:

import { DB, hmr: hmrDB } from "my-project/db";
import { Users, hmr: hmrUsers } from "my-project/users";

export class Main {
    #db: DB;
    #users: Users;
    constructor() {
        this.#initialise();
        this.#users = new Users();
    }

    #initialise() {
        if(this.#db) {
            hmrDB.off('change', this.#initialise);    
        }
        this.#db = new DB();
        hmrDB.on('change', this.#initialise);
    }

    getData() {
        return this.#users.list();
    }
}

Как видно, модули «db» и «users» независимо экспортируют объект «hmr», позволяя программисту решать, выполнять ли задачи на основе внесенных в них изменений.

В реализованном коде новый экземпляр объекта базы данных создается только в случае его изменения. Таким образом, если кто-то разрабатывает логику управления пользователями, подключение к базе данных может храниться в памяти без необходимости перезапуска службы.

Это дает многочисленные преимущества в производительности, обеспечивая бесперебойную работу и программирование на основе состояний и событий изменений, что является частью естественного поведения языка.

4. Публикация пакетов

Файл package.json является центральным файлом при разработке проектов с использованием JavaScript, а в BeyondJS он используется в качестве файла определения проекта. Таким образом, с самого начала код практически готов к публикации в NPM и использованию в качестве зависимости в другом проекте.

В этом отношении BeyondJS следует стандарту NPM и Node, обеспечивая поддержку условного экспорта, которая полностью соответствует его модульной архитектуре.

Для каждого модуля, созданного в BeyondJS, требуется файл module.json, который позволяет определить его собственные характеристики, а каждый module.json, в свою очередь, представляет собой модуль, который нужно экспортировать в package.json. Таким образом, BeyondJS позаботится о создании package.json, гарантируя стандарт и включение всего необходимого для того, чтобы наш код был доступен на нужных нам платформах.

5. Тенденция модульного развития

Потребность в работе над проектами, предполагающими не полную разработку, а конкретные решения, которые интегрируются с другими существующими решениями, возрастает. Это проложило путь к популяризации микросервисов, функций Edge и бессерверных приложений, но также повлияло на клиентский код, где применяются аналогичные концепции, такие как микрофронтенды или составные приложения.

BeyondJS работает непосредственно в структуре этого типа без необходимости настройки. Вы можете создать клиентский пакет, представляющий микрослужбу или бессерверную функциональность, и опубликовать его. При желании вы также можете автоматически сгенерировать клиентский API, набрав его для использования.

Кроме того, в коде на стороне клиента BeyondJS обрабатывает концепцию «виджетов», которые представляют собой модули, инкапсулированные в веб-компонентах, которые автоматически функционируют как микроинтерфейсы. Вам не нужна конфигурация, просто укажите, что это тип модуля в его файле конфигурации (module.json).

Заключение

BeyondJS — это фреймворк, направленный на упрощение процесса разработки в соответствии со стандартами самых надежных сообществ в экосистеме JavaScript, но с универсальной точки зрения, чтобы предложить программистам последовательный опыт разработки.

Вы можете начать использовать его, установив его глобально.

npm i -g beyond@latest

или создайте новый проект/пакет напрямую:

npx @beyond-js/create-package@latest

Если вы дочитали до этого момента, я хотел бы поблагодарить вас за чтение. Если у вас есть какие-либо комментарии, дайте мне знать — я буду рад их обсудить.