Каждый раз, когда речь заходит о новом проекте, начинается вечный спор: какой фреймворк выбрать? Go или Rust для производительности? Python для скорости разработки? А может, стоит попробовать что-то на Elixir? Муки выбора знакомы многим. Вместо того чтобы в очередной раз теоретизировать, я решил пойти другим путем: взять и протестировать их все.

Так родилась идея проекта Framework DevBox — универсальной песочницы, где десять популярных фреймворков на разных языках упакованы в Docker-контейнеры и готовы к запуску одной командой.

Проблема: боль настройки

Чтобы по-настоящему «пощупать» фреймворк, недостаточно запустить "Hello, World!". Нужна полноценная среда разработки:

  • Hot-reload: Чтобы видеть изменения в коде мгновенно, а не перезапускать сервер вручную.

  • Линтер: Чтобы код был чистым и соответствовал стандартам.

  • Тесты: Чтобы убедиться, что всё работает как надо.

  • Сборка для продакшена: Чтобы понимать, как приложение будет деплоиться.

Настраивать всё это для каждого отдельного фреймворка — долго и утомительно. Можно потратить целый день на борьбу с зависимостями, версиями Node.js, виртуальными окружениями Python или переменными окружения Go, так и не дойдя до написания кода.

Я решил эту проблему раз и навсегда. Моей основной задачей стало создание такой системы, где для запуска любого фреймворка нужны только Docker и Make.

Решение: Framework DevBox

Framework DevBox — это репозиторий, в котором собраны популярные современные фреймворки, каждый в своей директории, с уже готовой инфраструктурой.

Что внутри «коробки» для каждого фреймворка?

  • Готовая среда разработки: Запускается одной командой make dev и включает hot-reload.

  • Проверка качества кода: Команда make test-prod запускает линтер и тесты, имитируя пайплайн CI/CD.

  • Раздельные Docker-файлы: Dockerfile.dev для разработки и Dockerfile.prod для оптимизированной продакшен-сборки.

  • Единая структура: Все проекты организованы одинаково, что упрощает переключение между ними.

  • Готовые эндпоинты: В каждом фреймворке уже есть простой "Hello World" и API для генерации QR-кодов.

Какие фреймворки вошли в набор?

Я старался выбирать современные и популярные решения с активным сообществом:

Как это работает?

Всё предельно просто. У вас должны быть установлены только Docker и Make.

  • Клонируете репозиторий.

  • Выбираете фреймворк, например, FastAPI.

  • Переходите в его директорию и запускаете dev-режим:

cd fastapi
make dev

Эта команда соберёт dev-образ, установит зависимости и запустит сервер с hot-reload. Ваша локальная папка app будет смонтирована внутрь контейнера, так что вы можете писать код в любимой IDE, а изменения сразу же применятся.

Хотите проверить, готов ли ваш код к продакшену?

make test-prod

Эта команда выполнит полный цикл проверки: прогонит линтер, запустит тесты и соберёт легковесный production-образ.

Единая структура — ключ к простоте

Чтобы не приходилось каждый раз разбираться в новом проекте, я привел все фреймворки к единой структуре:

.
└── [framework-name]/
    ├── app/                # Здесь живёт весь исходный код вашего приложения
    ├── Dockerfile.dev      # Dockerfile для разработки с hot-reload
    ├── Dockerfile.prod     # Многоступенчатый Dockerfile для production-сборки
    └── Makefile            # Файл с командами `dev` и `test-prod`

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

Выводы

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

  • Все языки хороши. Если выстроить прочную базу (hot-reload, линтер, тесты, CI/CD), комфортно разрабатывать можно на чём угодно.

  • Выбор зависит от задачи. На первый план выходит не сам язык, а экосистема: наличие нужных библиотек для решения конкретной проблемы, скорость разработки и простота поддержки.

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

Я не хочу навязывать какой-то конкретный фреймворк. Вместо этого я предлагаю вам самим взять и попробовать. Вы можете просто запустить make dev и начать писать код или же, наоборот, использовать репозиторий как учебное пособие, раскручивая логику от Makefile и Dockerfile.

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

Комментарии (5)


  1. randomsimplenumber
    27.09.2025 05:39

    Джентльменский набор веб разработчика, теперь с docker ;)


    1. Kahelman
      27.09.2025 05:39

      Хорошее ренегат проще всю заразу которую bpm притащит с компа убирать. :)


  1. DjUmnik
    27.09.2025 05:39

    Почему нет php?


    1. JBFW
      27.09.2025 05:39

      А что это? Наверное, на латыни или древнегреческом? /s

      В институте же рассказывали, "это устаревший язык без типизации" и немодный )

      А так-то идея засунуть всё в докер - логичная и хорошая, на каком языке не делай. Развернул локально - поработал, сделал, развернул на сервере - запустил в продакшн


      1. savostin
        27.09.2025 05:39

        Расскажите об этом WordPress’у. Посмеемся вместе.

        Холивара ради: Python, как по мне, еще менее типизирован. Хоть и модный, да.