Полнофункциональная веб-платформа для Go. Бад пишет за вас скучный код, помогая вам быстрее запустить сайт.
Посмотрите видео, демонстрирующее, как с помощью Bud создать минимальный клон HN за 15 минут.
Прочтите документацию, чтобы узнать, как начать работу с Bud.
Bud поставляется в виде одного двоичного файла, который работает на Linux и Mac. Вы можете следить за поддержкой Windows в этом выпуске.
Самый простой способ начать — скопировать и вставить приведенную ниже команду в свой терминал:
curl -sf https://raw.githubusercontent.com/livebud/bud/main/install.sh | sh
Этот скрипт загрузит правильный двоичный файл для вашей операционной системы и переместит его в нужное место в вашем $PATH
.
Подтвердите, что вы установили Bud, набрав bud
в своем терминале.
bud -h
Вы должны увидеть следующее:
Usage:
bud [flags] [command]
Flags:
-C, --chdir Change the working directory
Commands:
build build the production server
create create a new project
run run the development server
tool extra tools
version Show package versions
Для использования Bud требуется следующее программное обеспечение.
Узел v14+
Это временное требование, которое мы планируем удалить в версии 0.3.
Перейти v1.17+
Bud в значительной степени полагается на io/fs
и в будущем будет использовать преимущества дженериков, поэтому, хотя Go v1.16 будет работать, мы предлагаем по возможности запускать Go v1.18+.
Установив Bud, вы можете создать новый проект:
$ bud create hello
$ cd hello
Команда create создаст все необходимое для начала работы с Bud.
$ ls
go.mod node_modules/ package-lock.json package.json
... что, кстати, не очень! В отличие от большинства других полностековых фреймворков, Bud начинается с минимализма. По мере того, как вы добавляете зависимости, Bud будет генерировать весь скучный код для объединения вашего приложения. Давайте посмотрим на это в действии.
Запустите сервер разработки с помощью bud run
:
$ bud run
| Listening on http://127.0.0.1:3000
Нажмите на ссылку, чтобы открыть браузер. Вас встретит страница приветствия Бада.
Поздравляю! Вы запускаете свой первый веб-сервер с Бадом. Приветственный сервер — это ваша отправная точка, чтобы узнать больше о платформе.
Посмотрите демоверсию Hacker News, прочитайте документацию, запланируйте быстрый звонок или отправляйтесь в собственное приключение. Единственное ограничение – ваше воображение.
Недавние обсуждения: Reddit, Hacker News, Twitter.
Я начал работать над Bud в апреле 2019 года, увидев, насколько продуктивными могут быть разработчики в Laravel. Я хотел того же и для Go, поэтому решил попробовать создать Laravel для экосистемы Go. Однако моя первая версия спустя 6 месяцев потребовала создания множества файлов, чтобы начать работу. Если вы работаете с Rails или Laravel, вы можете пожать плечами и считать это вполне нормальным.
К сожалению, я был избалован возрождением интерфейсных фреймворков, таких как Next.js, которые запускают базовые программы, но каждый добавляемый вами файл постепенно улучшает ваше веб-приложение. Это позволяет держать начальную сложность под контролем.
Благодаря этому дополнительному вдохновению я работал над следующей итерацией в течение следующих 18 месяцев.
Сейчас цели такие:
Создавайте файлы только по мере необходимости. Держите эти сгенерированные файлы подальше от кода вашего приложения и дайте разработчикам возможность не допускать к ним контроля исходного кода. Вам не нужно заботиться о сгенерированном коде. Вы можете быть удивлены, узнав, что Go также генерирует код для преобразования вашего кода Go в исполняемый файл, но он работает настолько хорошо, что вам не нужно об этом думать. Бад должен чувствовать себя так.
Почувствуйте, как используете современный JS-фреймворк. Это означает, что он должен работать с несколькими современными интерфейсными фреймворками, такими как Svelte и React, поддерживать живую перезагрузку и иметь серверный рендеринг для повышения производительности и SEO.
Структура должна быть расширяемой с первого дня. Бад слишком амбициозен для одного человека. Нам понадобится амбициозное сообщество, стоящее за этой структурой. Расширяемость должна обеспечиваться в первую очередь за счет добавления кода, а не за счет добавления конфигурации.
Bud должен предоставлять разработчикам высокоуровневые, типобезопасные API, одновременно генерируя производительный низкоуровневый код Go.
Bud должен скомпилироваться в один двоичный файл, содержащий все ваше веб-приложение и который можно скопировать на сервер, на котором даже не установлен Go.
Пожалуйста, обратитесь к Руководству для участников, чтобы узнать, как разрабатывать Bud на местном уровне.