2–3 года назад Dart не рассматривался за пределами Flutter, а бэкенд-пакеты рассматривались скорее как упражнение, а не как реальный инструмент для продакшн-разработки.
Но я авантюрист, мне очень понравилась концепция Serverpod, и мы начали использовать его ещё 3 года назад — это была версия 1.1. С тех пор было много трудностей, но глобально я не пожалел ни разу.
Сейчас Dart становится всё более распространённым, и хотел бы отрекламировать его как язык для бэкенд и fullstack разработки.
Почему это имеет смысл:
1. Dart — классный язык. Строгая типизация, sound null safety, AOT-компиляция в нативный код. На сервере он чувствует себя ничуть не хуже, чем в мобильном приложении.
Поработав с ним, я с трудом представляю, чтобы когда-то снова захотел пробовать Python или JavaScript… И причин для этого не знаю.
2. Нет context-switching. Кажется мелочью, но использование единой экосистемы и управления пакетами очень сильно разгружает голову и упрощает работу с большим репозиторием и инфраструктурой.
Бонус: один разработчик закрывает весь стек, для небольших команд это супер критично.
3. Общая логика между клиентом и сервером. Например, модели данных: описали один раз — используете везде. Никакого дрейфа между тем, что возвращает API, и тем, что ожидает приложение. Никаких
Map<String, dynamic>. Ошибка в контракте — это ошибка компиляции, а не runtime-краш в продакшне.—
Про инструменты честно:
Serverpod — не просто фреймворк, а экосистема. ORM, миграции, автогенерация клиента, кэш, WebSocket — из коробки. Но у него жёсткие рамки: только PostgreSQL, фиксированная структура, тяжеловат для простых API.
Dart Frog — противоположная философия. Минималистичный роутер, файловая маршрутизация как в Next.js, база — любая. Идеален для микросервисов и serverless. Но клиентские вызовы пишете руками.
Shelf — официальная базовая библиотека для веб-серверов на Dart. Низкоуровневая, зато без рамок — многое в экосистеме построено поверх неё.
Наш DartWay — фреймворк для fullstack Dart — сейчас базируется на Serverpod. Но в перспективе планируем уйти от него в пользу более лёгкого решения.
—
Бэкенд на Dart — уже не экзотика, а рабочий инструмент: за три года он прошёл путь от эксперимента до основы всех наших продакшн-проектов.
Тема большая, в один пост не уместить. Постараюсь регулярно делиться контентом про fullstack Dart — от архитектуры до конкретных решений из практики.